Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Волшебство программирования на 1С:Предприятие 7.7 Выпуск 11


Информационный Канал Subscribe.Ru

Волшебство программирования на 1С:Предприятие 7.7

Вступительное слово Волшебника

Рад приветствовать подписчиков рассылки после долгого перерыва. Защита диплома прошла успешно с оценкой "отлично". Кроме того, за это время рассылка была переведена в класс "Золотые". В этом выпуске мы рассмотрим простую учетную систему для магазина с доставкой.


Конфигурация "Доставочка"

- Драку на 50 человек заказывали?
- Нет! Что вы!
- Оплачено!

Постановка задачи

Требуется создать простую учетную систему для магазина с доставкой на дом. Система должна учитывать остатки товаров, оформлять заказы от клиентов и формировать путевые листы для курьеров.

Объекты конфигурации

В конфигурации потребуется создать следующие объекты:

Справочники

  • Клиенты
  • Товары
  • Курьеры
  • Районы

Документы

  • ПриходТовара
  • Заказ
  • СнятиеЗаказа
  • ПутевойЛист
  • ОтчетКурьера

Регистры

Регистр
Измерения
Ресурсы
Остатки (регистр остатков) Товар Количество
Заказы (регистр остатков)

Товар
Клиент
Заказ
Цена
ДатаДоставки

Количество
Сумма

Доставка (регистр остатков)
(хранит доставляемые в данный момент товары)
Товар
Клиент
Заказ
Цена
ДатаДоставки
Количество
Сумма
Доходы (оборотный регистр) Товар
Клиент
Доход

Отчеты

  • Товары
  • Сводная таблица
  • Отчет по регистру

Справочники

Обслуживаемая магазиномом территория делится на районы. При регистрации клиента указывается его название / ФИО, адрес, телефон и район, в котором он находится. В справочнике Курьеры перечислены фамилии курьеров или названия мобильных отрядов, осуществляющих доставку товаров покупателю. Справочник товары является иерархическим и содержит 3 уровня, т.е. товары могут быть объединены в группы. Для товара указывается цена, по которой он продается клиентам.

Приход товара

При проведении документа производятся движения в регистре Остатки:

Процедура ОбработкаПроведения()

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

Регистр.Остатки.Товар = Товар;
Регистр.Остатки.Количество = Количество;
Регистр.Остатки.ДвижениеПриходВыполнить();

КонецЦикла;

КонецПроцедуры

 

Заказ

Документ регистрирует заказ от клиента на 1 или несколько товаров. Указывается дата доставки каждого товара и количество. При проведении совершаются движения в регистре Заказы:

При проведении документа производятся движения в регистре Заказы:

Процедура ОбработкаПроведения()

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

Регистр.Заказы.Товар = Товар;
Регистр.Заказы.Клиент = Клиент;
Регистр.Заказы.ДатаДоставки = ДатаДоставки;
Регистр.Заказы.Заказ = ТекущийДокумент();
Регистр.Заказы.Цена = Цена;
Регистр.Заказы.Количество = Количество;
Регистр.Заказы.Сумма = Сумма;
Регистр.Заказы.ДвижениеПриходВыполнить();

КонецЦикла;

КонецПроцедуры

 

Снятие заказа

Документ предназначен для отмены ранее сделанных заказов. Можно уменьшить количество заказанного ранее товара.

Пользователь указывает клиента, при этом автоматически заполняется табличная часть документа текущими заказами по данному клиенту. Пользователь указывает нужное количество товара в колонке "Снять".

При проведении документа производятся обратные движения в регистре Заказы.

 

Путевой лист

Данный документ является заданием для курьера, который доставляет товары покупателю.

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

После этого путевой лист распечатывается и проводится. При проведении документа совершаются движения в регистрах Остатки и Доставка:

Процедура ОбработкаПроведения()

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

//доставляемые товары
Регистр.Доставка.Товар = Товар;
Регистр.Доставка.Клиент = Клиент;
Регистр.Доставка.Заказ = Заказ;
Регистр.Доставка.Цена = Цена;
Регистр.Доставка.ДатаДоставки = ДатаДоставки;
Регистр.Доставка.Количество = Количество;
Регистр.Доставка.Сумма = Сумма;
Регистр.Доставка.ДвижениеПриходВыполнить();

//уменьшаются остатки по данному товару
Регистр.Остатки.Товар = Товар;
Регистр.Остатки.Количество = Количество;
Регистр.Остатки.ДвижениеРасходВыполнить();

КонецЦикла;

КонецПроцедуры

 

Отчет курьера

Данный документ оформляет результат поездки курьера по путевому листу. Отмечается количество фактически доставленных товаров. Экранная форма документа выглядит следующим образом:

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

При проведении документа совершаются движения в регистрах:

Процедура ОбработкаПроведения()

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

Если Доставлено > 0 Тогда

Регистр.Доставка.Товар = Товар;
Регистр.Доставка.Клиент = Клиент;
Регистр.Доставка.Цена = Цена;
Регистр.Доставка.Заказ = Заказ;
Регистр.Доставка.ДатаДоставки = ДатаДоставки;
Регистр.Доставка.Количество = Доставлено;
Регистр.Доставка.Сумма = Сумма;
Регистр.Доставка.ДвижениеРасходВыполнить();

Регистр.Заказы.Товар = Товар;
Регистр.Заказы.Клиент = Клиент;
Регистр.Заказы.ДатаДоставки = ДатаДоставки;
Регистр.Заказы.Цена = Цена;
Регистр.Заказы.Заказ = Заказ;
Регистр.Заказы.Количество = Доставлено;
Регистр.Заказы.Сумма = Сумма;
Регистр.Заказы.ДвижениеРасходВыполнить();

Регистр.Доходы.Товар = Товар;
Регистр.Доходы.Клиент = Клиент;
Регистр.Доходы.Доход = Сумма;
Регистр.Доходы.ДвижениеВыполнить();

КонецЕсли;

Если Фл_ВозвратОстатков=1 Тогда

Если Доставлено < Заказано Тогда

Регистр.Доставка.Товар = Товар;
Регистр.Доставка.Клиент = Клиент;
Регистр.Доставка.Цена = Цена;
Регистр.Доставка.Заказ = Заказ;
Регистр.Доставка.ДатаДоставки = ДатаДоставки;
Регистр.Доставка.Количество = Доставлено;
Регистр.Доставка.Сумма = Сумма;
Регистр.Доставка.ДвижениеРасходВыполнить();

Регистр.Остатки.Товар = Товар;
Регистр.Остатки.Количество = Заказано - Доставлено;
Регистр.Остатки.ДвижениеПриходВыполнить();

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецПроцедуры

 

Отчет "Товары"

Данный отчет показывает текущую картину по товарам и оценивает дефицит товаров на указанный будущий период.

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

Дефицит определяется по формуле: Дефицит = (Заказано - Доставляется) - Остаток;

 

Отчеты по доходам

Определять доходы магазина можно по регистру Доходы с помощью отчетов СводнаяТаблица и ОтчетПоРегистру, разработанных фирмой КИНТ.

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

 

Что можно скачать

Скачать конфигурацию "Доставочка" вы можете по адресу http://www.mista.ru/tutor_1c/files
Размер 45К


Заключительное слово Волшебника

Официальный сайт рассылки: Информационные системы www.mista.ru
Архив рассылки находится по адресу: http://subscribe.ru/archive/comp.soft.prog.magic1c

В прошлых выпусках мы рассмотрели:

  1. Конфигурация "Мини-склад" (простейший складской учет)
  2. Конфигурация "Денежки" (учет семейных доходов и расходов)
  3. Конфигурация "Работенка" (поиск вакансий работодателей и резюме соискателей)
  4. Игра "Реверси" (классическая игра с элементами искусственного интеллекта)
  5. Конфигурация "Мини-библиотека" (учет книг и читателей)
  6. Программирование справочников
  7. Конфигурация "Почтальон Печкин" (почта + чат в среде 1С:Предприятие)
  8. Программирование документов
  9. Программирование регистров
  10. Игра "Охота на лис"

С уважением,
Волшебник Станислав

stasmit@mail.ru



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное