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