Постановка
задачи
Требуется создать простую учетную систему для магазина с доставкой
на дом. Система должна учитывать остатки товаров, оформлять заказы от
клиентов и формировать путевые листы для курьеров.
Объекты
конфигурации
В конфигурации потребуется создать следующие объекты:
|
Тип
объектов
|
Объекты
|
| Справочники |
- Клиенты
- Товары
- Курьеры
- Районы
|
 |
| Документы |
- ПриходТовара
- Заказ
- СнятиеЗаказа
- ПутевойЛист
- ОтчетКурьера
|
| Регистры |
|
Регистр
|
Измерения
|
Ресурсы
|
| Остатки
(регистр остатков) |
Товар |
Количество |
| Заказы
(регистр остатков) |
Товар
Клиент
Заказ
Цена
ДатаДоставки
|
Количество
Сумма
|
Доставка
(регистр остатков)
(хранит доставляемые в данный момент товары) |
Товар
Клиент
Заказ
Цена
ДатаДоставки |
Количество
Сумма |
| Доходы
(оборотный регистр) |
Товар
Клиент |
Доход |
|
| Отчеты |
|
Справочники
Обслуживаемая магазиномом
территория делится на районы. При регистрации клиента указывается его
название / ФИО, адрес, телефон и район, в котором он находится. В справочнике
Курьеры перечислены фамилии курьеров или названия мобильных отрядов, осуществляющих
доставку товаров покупателю. Справочник товары является иерархическим
и содержит 3 уровня, т.е. товары могут быть объединены в группы. Для товара
указывается цена, по которой он продается клиентам.
Приход
товара
Экранная форма документа
выглядит следующим образом:

При проведении документа
производятся движения в регистре Остатки:
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Регистр.Остатки.Товар
= Товар;
Регистр.Остатки.Количество = Количество;
Регистр.Остатки.ДвижениеПриходВыполнить();
КонецЦикла;
КонецПроцедуры
Заказ
Экранная форма документа
выглядит следующим образом:

При проведении документа
производятся движения в регистре Заказы:
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Регистр.Заказы.Товар
= Товар;
Регистр.Заказы.Клиент = Клиент;
Регистр.Заказы.ДатаДоставки = ДатаДоставки;
Регистр.Заказы.Заказ = ТекущийДокумент();
Регистр.Заказы.Цена = Цена;
Регистр.Заказы.Количество = Количество;
Регистр.Заказы.Сумма = Сумма;
Регистр.Заказы.ДвижениеПриходВыполнить();
КонецЦикла;
КонецПроцедуры
Снятие
заказа
Документ предназначен
для отмены ранее сделанных заказов. Можно уменьшить количество заказанного
ранее товара. Экранная форма документа выглядит следующим образом:

Пользователь указывает
клиента, при этом автоматически заполняется табличная часть документа
текущими заказами по данному клиенту. Пользователь указывает нужное количество
товара в колонке "Снять".
При проведении документа
производятся движения в регистре Заказы:
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если Количество
> 0 Тогда
Регистр.Заказы.Товар
= Товар;
Регистр.Заказы.Клиент = Клиент;
Регистр.Заказы.ДатаДоставки = ДатаДоставки;
Регистр.Заказы.Заказ = Заказ;
Регистр.Заказы.Цена = Цена;
Регистр.Заказы.Количество = Количество;
Регистр.Заказы.Сумма = Сумма;
Регистр.Заказы.ДвижениеРасходВыполнить();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Путевой
лист
Данный документ является
заданием для курьера, который доставляет товары покупателю. Экранная форма
документа выглядит следующим образом:

Сначала пользователь
указывает район, при этом автоматически заполняется табличная часть -
формируется путевой лист. Программа просматривает все текущие заказы по
данному району, дата доставки которых совпадает с датой путевого листа
или просрочена. Пользователь может подредактировать доставляемое количество
в колонке "Доставить" в связи с отсутствием товара на складе
или тяжести груза для одного курьера.
После этого путевой
лист распечатывается и проводится. Печатная форма путевого листа выглядит
следующим образом:

При проведении документа
совершаются движения в регистрах Остатки и Доставка:
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
//доставляемые
товары
Регистр.Доставка.Товар = Товар;
Регистр.Доставка.Клиент = Клиент;
Регистр.Доставка.Заказ = Заказ;
Регистр.Доставка.Цена = Цена;
Регистр.Доставка.ДатаДоставки = ДатаДоставки;
Регистр.Доставка.Количество = Количество;
Регистр.Доставка.Сумма = Сумма;
Регистр.Доставка.ДвижениеПриходВыполнить();
//уменьшаются остатки по данному товару
Регистр.Остатки.Товар = Товар;
Регистр.Остатки.Количество = Количество;
Регистр.Остатки.ДвижениеРасходВыполнить();
КонецЦикла;
КонецПроцедуры
Отчет
курьера
Данный документ оформляет
результат поездки курьера по путевому листу. Отмечается количество фактически
доставленных товаров. Экранная форма документа выглядит следующим образом:

Пользователь указывает
путевой лист, по которому отчитывается курьер. При этом автоматически
заполняется табличная часть документа. Пользователь может подкорректировать
колонку "Доставлено" в соответствии с фактически доставленным
количеством товара. При установке флажка "Недоставленные товары возвращены
на склад" товары из регистра Доставка переходят в регистр Остатки,
т.е. курьер нам ничего не должен.
При проведении документа
совершаются движения в регистрах:
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если Доставлено
> 0 Тогда
Регистр.Доставка.Товар
= Товар;
Регистр.Доставка.Клиент = Клиент;
Регистр.Доставка.Цена = Цена;
Регистр.Доставка.Заказ = Заказ;
Регистр.Доставка.ДатаДоставки = ДатаДоставки;
Регистр.Доставка.Количество = Доставлено;
Регистр.Доставка.Сумма = Сумма;
Регистр.Доставка.ДвижениеРасходВыполнить();
Регистр.Заказы.Товар
= Товар;
Регистр.Заказы.Клиент = Клиент;
Регистр.Заказы.ДатаДоставки = ДатаДоставки;
Регистр.Заказы.Цена = Цена;
Регистр.Заказы.Заказ = Заказ;
Регистр.Заказы.Количество = Доставлено;
Регистр.Заказы.Сумма = Сумма;
Регистр.Заказы.ДвижениеРасходВыполнить();
Регистр.Доходы.Товар = Товар;
Регистр.Доходы.Клиент = Клиент;
Регистр.Доходы.Доход = Сумма;
Регистр.Доходы.ДвижениеВыполнить();
КонецЕсли;
Если Фл_ВозвратОстатков=1 Тогда
Если Доставлено
< Заказано Тогда
Регистр.Доставка.Товар
= Товар;
Регистр.Доставка.Клиент = Клиент;
Регистр.Доставка.Цена = Цена;
Регистр.Доставка.Заказ = Заказ;
Регистр.Доставка.ДатаДоставки = ДатаДоставки;
Регистр.Доставка.Количество = Доставлено;
Регистр.Доставка.Сумма = Сумма;
Регистр.Доставка.ДвижениеРасходВыполнить();
Регистр.Остатки.Товар = Товар;
Регистр.Остатки.Количество = Заказано - Доставлено;
Регистр.Остатки.ДвижениеПриходВыполнить();
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Отчет
"Товары"
Данный отчет показывает
текущую картину по товарам и оценивает дефицит товаров на указанный будущий
период. Экранная форма диалога отчета выглядит следующим образом:

Пользователь может
ограничить выборку конкретной группой товаров. Кроме того, пользователь
указывает период времени в днях, за который учитываются заказы. Это позволяет
заранее определить дефицитные товары и не допустить срыва поставок.
Пример работы отчета
представлен ниже:

Дефицит определяется
по формуле:
Дефицит = (Заказано
- Доставляется) - Остаток;
Доходы
Определять доходы
магазина можно по регистру Доходы с помощью отчетов СводнаяТаблица и ОтчетПоРегистру,
разработанных фирмой КИНТ.
Что
можно скачать
Скачать конфигурацию
"Доставочка" (45К)
|