При работе с ордерной схемой документооборота в 1С:Управление торговлей часто возникает потребность жестко регламентировать процесс отгрузки. Пользователи хотят быть уверенными, что документ Реализация товаров и услуг не будет создан до тех пор, пока кладовщик не оформит Расходный ордер на товары. Давайте разберемся, как реализовать такой контроль, учитывая, что типовая конфигурация не содержит «волшебной кнопки» для блокировки этого действия.
Система УТ 11.4 спроектирована как гибкая платформа, поддерживающая различные сценарии работы. Настройка в разделе Администрирование — Склад и доставка — Порядок оформления накладных и расходных ордеров определяет лишь последовательность документов в цепочке, но не запрещает пользователю создать Реализацию вручную или на основании заказа. Для обеспечения жесткого контроля нам потребуется выйти за рамки стандартных настроек и применить процессные или программные методы.
Самый правильный путь с точки зрения архитектуры 1С — это перенос ответственности за создание реализации на тех пользователей, которые работают с завершенным процессом отгрузки. Рассмотрим этот подход пошагово:
Реализация товаров и услуг. Менеджеры должны работать только с Заказами клиентов.КОформлениюНакладных. В этой форме доступна кнопка Оформить по заказам.Если бизнес-процесс требует строгого запрета, даже при наличии прав, лучшим решением будет использование расширения конфигурации. Мы можем перехватить событие перед записью или проведением документа Реализация товаров и услуг и проверить наличие проведенного ордера.
Разберем логику проверки. Мы должны убедиться, что для каждого товара в строках реализации существует соответствующий расходный ордер в статусе К отгрузке или Отгружен. Реализовать это можно через подписку на событие ОбработкаПроведения.
Рассмотрим примерную логику кода, которую можно внедрить в расширение:
Процедура ПроверитьНаличиеОрдераПриПроведении(Отказ, ДокументОбъект)
// Запрос к регистру ТоварыКОтгрузке или поиск ордеров по заказу
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| РасходныйОрдерТовары.Ссылка КАК Ордер
|ИЗ
| Документ.РасходныйОрдерНаТовары.Товары КАК РасходныйОрдерТовары
|ГДЕ
| РасходныйОрдерТовары.Ссылка.Распоряжение = &Заказ";
Запрос.УстановитьПараметр("Заказ", ДокументОбъект.ЗаказКлиента);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Запрещено проводить реализацию без оформленного расходного ордера!";
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Важным аспектом является работа с регистром накопления ТоварыКОтгрузке. Этот регистр является «сердцем» ордерной схемы. При проведении реализации система списывает товары, которые числятся в этом регистре как готовые к отгрузке. Если вы попытаетесь списать товар, по которому нет складской готовности, система сама выдаст ошибку в рамках стандартной логики 1С.
Рекомендуем при анализе складских проблем всегда проверять этот регистр. Если в процессе реализации возникает конфликт, это означает, что цепочка Заказ -> Ордер -> Реализация была нарушена. Правильно выстроенный процесс — это когда менеджер видит статус К отгрузке в заказе только после того, как кладовщик фактически собрал и отгрузил товар.
Чтобы добиться максимальной дисциплины в учете, рекомендуем комбинировать методы:
Реализация товаров и услуг для рядовых менеджеров.КОформлениюНакладных.Такой комплексный подход обеспечит целостность складских остатков и исключит «человеческий фактор» при оформлении первичных документов в вашей базе 1С:Управление торговлей.