gifts2017

Простое средство для приёма заказов на товар от удаленного магазина в текстовом виде

Опубликовал Ширяев Иван (ibs10) в раздел Обработки - Рабочее место

Данная обработка служит для приёма заказов на товар в текстовом виде с рабочего места кассира ШТРИХ-М удаленного магазина. Она действует на платформе 8.2 в конфигурации УПП-1.3, но может работать на иных конфигурациях, имеющих аналогичную структуру документа "Заказ покупателя".

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

На рабочем столе windows-CE кассового аппарата установлен ярлык со ссылкой на текстовый шаблон, служащий одновременно текущим заказом. Также на кассе установлена программа типа FtpSync, осуществляющая периодическую передачу файла заказа на ftp-каталог, на котором со стороны центрального офиса предприятия существует свой обмен с каталогами локальной сети. Через тот же каталог происходит штатный обмен данными 1С кассы и центрального офиса: с кассы выгружаются данные о продажах, а с центрального офиса - справочник товара и остатки. Передача текстового файла заказа возможна любым иным способом, например, через каталог локальной сети.

Файл заказа имеет следующий вид:

Текстоый документ - шаблон заказа

В первой строке - краткое наименование магазина (для логистов).

Во второй строке - внутренний номер заказа, произвольной формы. Когда нужно сделать заказ, кассир (заведующий) ставит новый номер, например, увеличивая на единицу. Номер нужен для исключения повторного приема заказа, и в базе-приемнике записывается в поле НомерВходящегоДокументаЭлектронногоОбмена  документа "Заказ покупателя".

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

В первой колонке цифр - артикулы товара на предприятии, во второй - количество коробов (или других принятых в процессе поставки единиц товара).

Как правило, типичный ассортимент ходового товара небольшой, и кассир просто указывает необходимые количества единиц в заказе. Если артикул не нужен, можно просто поставить 0 в поле количества.

Примечание. У нас весь товар поставляется в коробах, и в обработке в функции ПолучитьЗаказИзТекста есть вот это место:

Место в программе, где указываются единицы

 

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

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

точка контроля типа файла

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

Обработка  имеет следующий вид:

Обработка загрузки заказов

 При открытии она устанавливает обработчик события таймера, принимающий файлы (если они есть в каталоге приема) каждые 5 минут. По кнопке "Принять заказ" можно осуществить прием файла в тот же момент.

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

Поля "Клиент КК" и "Контрагент" в нашем случае содержать одно и то же значение, именно - специального контрагента, на которого формируется заказ.

Наименование магазина заносится в комментарий документа "Заказ покупателя", и далее логист центрального офиса по своему усмотрению определяет из него, на какой розничный склад отгружать продукцию.

В нашем случае, центральный офис и магазины относятся к одной фирме, и потому для отгрузки на магазин создается накладная перемещения товаров на розничный склад. В штатной конфигурации УПП этого сделать нельзя, и потому в модул документа "ПеремещениеТоваров" добавлены требуемые механизмы:

 

Процедура ЗаполнитьТоварыПоЗаказуПокупателя(ДокументОснование) Экспорт

    Запрос = Новый Запрос;
    масНаправленияВыпуска = новый Массив;
    масНаправленияВыпуска.Добавить(Перечисления.НаправленияВыпуска.НаЗатраты);
    масНаправленияВыпуска.Добавить(Перечисления.НаправленияВыпуска.НаЗатратыСписок);
    
    Запрос.УстановитьПараметр("ДокументОснование",     ДокументОснование);
    
    ПоляЗапросаРегл = "";
    ЗаполнитьПоляЗапросаРегл(ПоляЗапросаРегл);
    
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ДокТовары.Номенклатура                    КАК Номенклатура,
    |    ДокТовары.ХарактеристикаНоменклатуры    КАК ХарактеристикаНоменклатуры,
    |    ДокТовары.СерияНоменклатуры                КАК СерияНоменклатуры,
    |    ДокТовары.ЕдиницаИзмерения                 КАК ЕдиницаИзмерения,
    |    ДокТовары.ЕдиницаИзмеренияМест             КАК ЕдиницаИзмеренияМест,
    |    ДокТовары.Коэффициент                     КАК Коэффициент,
    |    ДокТовары.СчетУчетаБУ                     КАК СчетУчетаБУ,
    |    ДокТовары.СчетУчетаНУ                     КАК СчетУчетаНУ,
    |    СУММА(ДокТовары.Количество)             КАК Количество,
    |    СУММА(ДокТовары.КоличествоМест)         КАК КоличествоМест
    |
    |ИЗ
    |    Документ.ЗаказПокупателя.Товары КАК ДокТовары
    |
    |ГДЕ
    |    ДокТовары.Ссылка = &ДокументОснование
    |
    |СГРУППИРОВАТЬ ПО
    |    ДокТовары.Номенклатура,
    |    ДокТовары.СерияНоменклатуры,
    |    ДокТовары.ХарактеристикаНоменклатуры,
    |    ДокТовары.ЕдиницаИзмерения,
    |    ДокТовары.ЕдиницаИзмеренияМест,
    |    ДокТовары.Коэффициент,
    |    ДокТовары.СчетУчетаБУ,
    |    ДокТовары.СчетУчетаНУ
    |";


    РезультатЗапроса = Запрос.Выполнить();

    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.Следующий() Цикл

        СтрокаТабличнойЧасти = Товары.Добавить();

        СтрокаТабличнойЧасти.Номенклатура                 = Выборка.Номенклатура;
        СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
        СтрокаТабличнойЧасти.СерияНоменклатуры          = Выборка.СерияНоменклатуры;
        СтрокаТабличнойЧасти.Качество                     = Справочники.Качество.Новый;
        СтрокаТабличнойЧасти.Количество                   = Выборка.Количество;
        СтрокаТабличнойЧасти.КоличествоМест               = Выборка.КоличествоМест;
        СтрокаТабличнойЧасти.ЕдиницаИзмерения             = Выборка.ЕдиницаИзмерения;
        СтрокаТабличнойЧасти.ЕдиницаИзмеренияМест         = Выборка.ЕдиницаИзмеренияМест;
        СтрокаТабличнойЧасти.Коэффициент                  = Выборка.Коэффициент;
        СтрокаТабличнойЧасти.СчетУчетаБУ                 = ПланыСчетов.Хозрасчетный.ГотоваяПродукция;
        СтрокаТабличнойЧасти.НовыйСчетУчетаБУ            = ПланыСчетов.Хозрасчетный.ГотоваяПродукция;
        СтрокаТабличнойЧасти.СчетУчетаНУ                 = ПланыСчетов.Налоговый.ГотоваяПродукция;
        СтрокаТабличнойЧасти.НовыйСчетУчетаНУ             = ПланыСчетов.Налоговый.ГотоваяПродукция;
                    
    КонецЦикла; // Выборка.Следующий()

КонецПроцедуры // ibs ЗаполнитьТоварыПоОснованию()

и в процедуру ОбработкаЗаполнения() модуля документа следующее:

 

ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда // ibs добавка для магазина


 
        // Заполним реквизиты из стандартного набора по документу основанию.
        ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, Основание);
        ЗаполнитьТоварыПоЗаказуПокупателя(Основание);

Также надо в свойстве "Ввод на основании" документа ПеремещениеТоваров указать такую возможность.

Примечание:

Данная схема формирования заказов весьма надежна, но имеет один недостаток: иногда кассиры портят заголовок шаблона, и тогда помогает только удаленное исправление или передача нового. Разумеется, для аналогичных целей лучше использовать Excel, но с его установкой на кассе, под Windows-CE могут быть проблемы, и так или иначе понадобятся мышь и стандартная клавиатура.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Прием заказов магазина из текста
.epf 18,42Kb
16.05.16
0
.epf 18,42Kb 0 Скачать

См. также

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
Ширяев Иван (ibs10) (0.10 $m)
Подписаться Добавить вознаграждение

Комментарии

1. Сергей (Che) Коцюра (CheBurator) 16.05.16 22:58
работаем по похожей схеме.
в результате - отказались от формирования заказов на точках.
все заказы для точек формируются в центральном офисе.
что позволило гораздо лучше управлять остатками и потребностями закупок/обеспечения точек товарами
(ассортимент: были фильмы, сейчас - аксессуару для мобильных телефонов)
2. Ширяев Иван (ibs10) 16.05.16 23:52
(1) CheBurator,
У нас немного другое - торговля своей продукцией в фирменных магазинах. Конфеты и другие кондитерские изделия. Отдел логистики занят в основном оптовой торговлей и ему некогда заморачиваться потребностями магазинов. Там на местах лучше знают, что продавать, тем более излишек запасов есть.
3. Сергей (Che) Коцюра (CheBurator) 17.05.16 12:55
(2) Понял, спасибо.
Ассортимент большой в магазине?
4. Ширяев Иван (ibs10) 17.05.16 14:16
(3) CheBurator,
Небольшой, примерно 300 позиций. Это специализированные кондитерские магазины.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа