При торговле продукцией с коротким сроком годности (например, цветами, продуктами питания или лекарственными средствами) возникает необходимость снижать отпускную цену по мере старения партии. Разберем, как правильно выстроить архитектуру учета, чтобы автоматизировать контроль остатков, расчет скидок и предотвратить ошибки персонала на кассе.
Типовой сценарий предполагает регулярную проверку сроков хранения (например, через 5 и 10 дней после поступления) и применение ступенчатой уценки к остаткам конкретных партий. Однако при попытке реализовать этот процесс напрямую через регламентные задания разработчики сталкиваются с техническими ограничениями платформы 1С:
ОткрытьФорму недоступен и вызывает исключение. Диалоговые окна и интерфейсы ручного подтверждения нельзя вызывать напрямую из сервера.Рассмотрим проверенные практические подходы к реализации задачи.
Вместо создания множества характеристик под каждый процент скидки наиболее методологически правильным решением является учет по сериям номенклатуры с контролем сроков годности:
Если специфика учета требует реализации через конфигурацию 1С:Управление торговлей 10.3 без полного перехода на серийный учет, расчет скидок можно вынести в глобальные функции получения цен.
Разберем по шагам логику доработки:
ПолучитьЦенуНоменклатуры переопределяем алгоритм, запрашивающий дату оприходования конкретной партии.Посмотрим на пример структуры запроса для получения даты партии и расчета срока нахождения на складе:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПартииТоваровНаСкладах.Номенклатура КАК Номенклатура,
| ПартииТоваровНаСкладах.ДокументОприходования.Дата КАК ДатаПоступления,
| РАЗНОСТЬДАТ(ПартииТоваровНаСкладах.ДокументОприходования.Дата, &ТекущаяДата, ДЕНЬ) КАК ДнейНаСкладе,
| ПартииТоваровНаСкладах.КоличествоОстаток КАК Количество
|ИЗ
| РегистрНакопления.ПартииТоваровНаСкладах.Остатки(
| &Период,
| Номенклатура = &Номенклатура
| И Склад = &Склад) КАК ПартииТоваровНаСкладах";
Полученное значение ДнейНаСкладе передается в алгоритм определения процента наценки или скидки.
Для предотвращения зависания кассовых рабочих мест (РМК) эффективнее использовать схему с фоновой подготовкой данных и утренним подтверждением:
ОчередьУценки или формирует непроведенный документ установки цен / скидок.ПодключитьОбработчикОжидания на клиенте проверяется наличие записей в очереди. При их обнаружении пользователю открывается форма со списком позиций и кнопками утверждения переоценки.КомплектацияНоменклатуры, где качественный товар списывается, а уцененный приходуется с новой характеристикой или категорией качества.Проанализируем ключевые организационные моменты, без которых автоматизация не даст результата: