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