В типовых конфигурациях 1С:Управление торговлей 11, 1С:ERP и 1С:Комплексная автоматизация часто возникает ситуация, когда менеджеры тратят огромное количество времени на ручное переключение статусов обеспечения в строках заказов. Особенно остро эта проблема стоит в компаниях с большим потоком заказов (например, в интернет-магазинах), где переход от состояния Не обеспечивать к Отгрузить должен происходить моментально после получения оплаты или поступления товара на склад. Рассмотрим подробно, как работает этот механизм и какими способами можно автоматизировать этот процесс.
Для начала проанализируем, какие состояния (действия) предусмотрены в системе для каждой строки заказа:
Разберем, почему система не меняет эти значения сама по себе «из коробки» (в старых релизах до 11.5). Логика разработчиков 1С заключается в том, что распоряжение на отгрузку или резервирование — это волевое решение менеджера. Однако при больших объемах работы это превращается в рутину. Выясним, как упростить жизнь пользователю.
Вместо того чтобы заходить в каждый отдельный заказ, рассмотрим использование специализированного рабочего места. Это основной инструмент для массовой работы с обеспечением.
Проанализируем алгоритм действий:
Ctrl+A) и нажмите кнопку Установить действие.Отгрузить или Резервировать на складе.Это значительно быстрее, чем ручная правка каждого документа, так как позволяет обработать сотни строк из разных заказов одновременно. Для этих целей также отлично подойдет специализированная обработка для группового изменения действий и управления резервами в заказах.
Если вы работаете в актуальных версиях (УТ 11.4 и выше), можно воспользоваться командами групповой обработки прямо из журнала заказов. Рассмотрим этот способ подробнее:
Shift или Ctrl).Система сама проанализирует каждый выбранный документ, проверит остатки и изменит поле Действие в табличных частях Товары без необходимости открывать каждый заказ.
Чтобы менеджер не пропустил момент, когда заказ оплачен и его пора переводить в статус обеспечения, настроим условное оформление списка заказов. Это поможет визуально отделить те заказы, которые пора «двигать» дальше.
Разберем шаги настройки:
Статус оплаты РАВНО Оплачен (или Процент оплаты БОЛЬШЕ 0) И Текущее состояние РАВНО Готов к обеспечению.Теперь менеджер сразу увидит яркие строки в списке и сможет применить к ним групповое действие Отгрузить.
В новых версиях программы (начиная с 11.5.7) реализован механизм Распределения запасов. Проанализируем его преимущества:
В этом режиме система в фоновом режиме сама сопоставляет свободные остатки с потребностями в заказах. Если в настройках склада и обеспечения включен этот режим, то при поступлении товара действие К обеспечению фактически начинает работать как резерв. Программа сама «понимает», под какой заказ пришел товар, и менеджеру остается только один раз нажать кнопку массового перевода в статус Отгрузить перед формированием документов печати. Для автоматизации этого процесса при поступлении товаров можно применить расширение для автоматического перевода строк заказов в статус «Отгрузить» при проведении приобретения.
Для крупных компаний и интернет-магазинов оптимальным решением будет создание небольшого расширения, которое будет автоматически менять Действие при наступлении определенных событий (например, при проведении документа «Поступление безналичных денежных средств»).
Рассмотрим пример логики кода, который может быть размещен в фоновом задании или в подписке на событие:
// Пример логики изменения действия в заказе клиента
Для Каждого СтрокаТовара Из СсылкаНаЗаказ.Товары Цикл
Если СтрокаТовара.Действие = ПредопределенноеЗначение("Перечисление.ДействияСТоварамиДляОбеспечения.НеОбеспечивать")
И ЗаказОплачен(СсылкаНаЗаказ) Тогда
// Переводим в состояние резерва или обеспечения в зависимости от остатка
Если ОстатокНаСкладе(СтрокаТовара.Номенклатура, СсылкаНаЗаказ.Склад) > 0 Тогда
СтрокаТовара.Действие = ПредопределенноеЗначение("Перечисление.ДействияСТоварамиДляОбеспечения.ЗарезервироватьНаСкладе");
Иначе
СтрокаТовара.Действие = ПредопределенноеЗначение("Перечисление.ДействияСТоварамиДляОбеспечения.КОбеспечению");
КонецЕсли;
КонецЕсли;
КонецЦикла;
При реализации такой автоматизации важно учитывать ГрафикОплаты. Если в соглашении с клиентом указано, что требуется 100% предоплата, то программный код должен проверять полную сумму оплаты, прежде чем изменять Действие на К обеспечению или Отгрузить.
Выясним, какой метод выбрать:
Помните, что автоматическая смена статуса на Отгрузить без контроля оплаты может привести к финансовым потерям, поэтому всегда комбинируйте автоматизацию с проверкой состояния взаиморасчетов.