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