Автоматизация процесса закупки и пополнения складских запасов (автозаказ) — одна из ключевых задач торговых компаний. При внедрении такой системы перед бизнесом и техническими специалистами всегда встает выбор: настраивать типовой функционал 1С, разрабатывать собственный инструмент с нуля или приобретать готовые решения. Проанализируем, как правильно подойти к решению этой задачи в конфигурации «1С:Управление торговлей 11» (УТ 11.2 и новее).
Перед тем как приступать к доработкам или покупке сторонних модулей, разберем встроенные возможности конфигурации. В «1С:Управление торговлей 11» реализован развитый механизм поддержания запасов и формирования заказов по потребностям.
Логика работы стандартного функционала опирается на две основные составляющие:
Если в компании используется планирование продаж, также можно привлекать документы ПланПродаж и ПланЗакупок для формирования объемов под конкретный период.
В случаях, когда типовой функционал кажется слишком сложным или требует специфических алгоритмов расчета, программисты создают собственные обработки. Посмотрим на базовый принцип создания документа ЗаказПоставщику программным путем.
Алгоритм работы простейшего автозаказа включает в себя:
ЗаказПоставщику.Рассмотри пример кода 1С, который демонстрирует логику программного создания документа пополнения запаса:
НовыйЗаказ = Документы.ЗаказПоставщику.СоздатьДокумент();
НовыйЗаказ.Дата = ТекущаяДата();
НовыйЗаказ.Партнер = НайтиПоставщикаНоменклатуры(СтрокаТовара.Номенклатура);
НовыйЗаказ.Контрагент = ПолучитьКонтрагентаПартнера(НовыйЗаказ.Партнер);
НовыйЗаказ.Организация = ЭлементыОрганизация;
НовыйЗаказ.Склад = СкладЗакупки;
ТабличнаяЧастьТовары = НовыйЗаказ.Товары;
Для Каждого СтрокаТЧ Из ТаблицаПотребностей Цикл
СтрокаНовая = ТабличнаяЧастьТовары.Добавить();
СтрокаНовая.Номенклатура = СтрокаТЧ.Номенклатура;
СтрокаНовая.Количество = СтрокаТЧ.КоличествоЗаказа;
СтрокаНовая.Цена = СтрокаТЧ.ЦенаПоставщика;
СтрокаНовая.Сумма = СтрокаНовая.Количество * СтрокаНовая.Цена;
КонецЦикла;
НовыйЗаказ.Записать(РежимЗаписиДокумента.Запись);
Автоматическое формирование заказов без учета нюансов может привести к затовариванию склада или, наоборот, к дефициту товара. Выясним, какие логические риски необходимо заложить в алгоритм (как типовой, так и самописный):
При работе с широким ассортиментом (тысячи номенклатурных позиций) расчет потребностей «на лету» прямым тяжелым запросом к регистрам может вызывать длительное зависание базы данных и блокировки таблиц.
Для решения этой проблемы рекомендуется использовать архитектуру предварительных расчетов:
РегистрСведений.ЗаказПоставщику быстро, выбирая готовые данные из этого регистра за считанные секунды.Таким образом, сочетание типовых механизмов 1С, грамотных алгоритмов расчета спроса и оптимизации производительности позволяет создать надежную систему автозаказа, минимизирующую влияние человеческого фактора.