Почему непроведенный возврат между организациями делает движения по резервам в УТ 11.5

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В процессе работы с конфигурацией 1С:Управление торговлей 11.5 многие пользователи и технические специалисты сталкиваются с неочевидным поведением системы: документ Возврат товаров между организациями, находясь в статусе «не проведен» (или просто записан), внезапно создает записи в регистре накопления Резервы товаров организаций. На первый взгляд это кажется программной ошибкой или следствием некорректной доработки конфигурации, однако на самом деле это результат глубокой переработки механизма Intercompany (перепродажи между собственными юридическими лицами).

В данной статье мы разберем, почему программа ведет себя именно так, для чего нужны эти «фантомные» движения и как правильно обслуживать систему, чтобы виртуальные резервы не блокировали реальную работу склада.

Природа регистра «Резервы товаров организаций» в современных релизах

Начнем с того, что проанализируем роль регистра Резервы товаров организаций. В ранних версиях УТ 11 (до ветки 11.5) этот регистр использовался преимущественно для фиксации факта продажи одной организацией товара, который фактически принадлежит другой организации (так называемая схема «Продажа товаров другой организации»).

Однако, начиная с релизов 11.5.7 и выше, архитектура была изменена. Теперь этот регистр является фундаментом для механизма оперативного планирования передач. Разберем основные причины появления движений при записи документа:

  1. Управление очередью распоряжений. Когда вы создаете и записываете документ возврата или передачи, система должна понимать, что это количество товара уже «занято» в рамках цепочки взаиморасчетов. Даже если документ не проведен, он является «намерением», которое должно учитываться в рабочем месте Оформление передач и возвратов.
  2. Предотвращение двойного использования. Чтобы избежать ситуации, когда на основании одного и того же распоряжения (например, реализации или возврата) два бухгалтера одновременно создадут два разных документа, система «столбит» остаток через записи в регистре резервов сразу при записи объекта.
  3. Технический реверс (+/-). Часто в регистре можно увидеть парные движения: «Приход» и «Расход» на одно и то же количество. Это механизм автокорректировки. Система временно уменьшает свободный остаток одной организации и увеличивает «виртуальный» остаток другой, чтобы актуализировать данные для фоновых заданий.

Механизм Intercompany и рабочее место «Оформление передач и возвратов»

Проанализируем ситуацию через призму пользовательского интерфейса. Основным потребителем данных регистра Резервы товаров организаций является рабочее место «Оформление передач и возвратов» (раздел Финансовый результат и контроллинг). Рассмотрим, как это работает по шагам:

Шаг 1. Происходит хозяйственная операция, требующая корректировки остатков между юрлицами (например, возврат товара покупателем в магазин 1, хотя товар закупался на магазин 2).

Шаг 2. В системе возникает «распоряжение» на оформление возврата между организациями. Это распоряжение еще не является документом, это запись во внутренних таблицах.

Шаг 3. Как только вы создаете документ Возврат товаров между организациями и просто нажимаете кнопку «Записать», документ связывается с этим распоряжением.

Шаг 4. В этот момент срабатывают подписки на события или встроенные механизмы проведения, которые делают записи в Резервы товаров организаций. Это необходимо для того, чтобы в списке «К оформлению» количество товара уменьшилось, и другие пользователи не видели этот остаток как доступный для оформления другого документа.

Почему это кажется нелогичным и как с этим бороться

Многие специалисты отмечают, что такое поведение нарушает классический принцип 1С: «движения делает только проведенный документ». В случае с Интеркампани мы имеем дело с гибридной схемой, где часть данных хранится в регистре для обеспечения оперативной работы очереди.

Если вы столкнулись с тем, что документ помечен на удаление или распроведен, но резервы «висят» и не уходят, рассмотрим подробнее способы решения:

Способ 1: Актуализация через рабочее место оформления

Первым делом необходимо проверить, не осталось ли «зависших» распоряжений. Перейдем в раздел Финансовый результат и контроллинг — Оформление передач и возвратов. Проанализируем список документов к оформлению. Если там висит строка с требованием оформить возврат, а ваш документ уже создан, но не проведен — система будет держать резерв. Попробуйте удалить черновик документа и обновить список распоряжений.

Способ 2: Запуск регламентных заданий

В УТ 11.5 многие процессы очистки регистров вынесены в фоновые задания. Выясним причину задержки очистки, проверив следующие задания:

Способ 3: Закрытие месяца

Как ни странно, это самый эффективный способ «вылечить» регистры Интеркампани. В процессе закрытия месяца (обработка Регламентные операции по финансовому учету) система выполняет полную перепроверку цепочек передач. Рассмотрим, что происходит при закрытии:

  1. Система анализирует все продажи/возвраты за период.
  2. Сопоставляет их с оформленными передачами/возвратами между организациями.
  3. Если документ не проведен, его движения по резервам могут быть обнулены или скорректированы специальной процедурой очистки неактуальных данных.

Технический взгляд: программная очистка

Если вы разработчик и вам необходимо программно понять, откуда берутся эти движения, обратите внимание на модуль менеджера документа или специализированные классы, отвечающие за Интеркампани. Часто логика записи в регистр зашита не в процедуру ОбработкаПроведения, а вызывается из ПередЗаписью или ПриЗаписи при определенных условиях (например, если заполнен реквизит Распоряжение).

Пример программного анализа остатков по этому регистру может выглядеть так:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Резервы.Организация,
    |	Резервы.Номенклатура,
    |	Резервы.КоличествоОстаток
    |ИЗ
    |	РегистрНакопления.РезервыТоваровОрганизаций.Остатки(&Период, ) КАК Резервы";
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Результат = Запрос.Выполнить();

Проанализировав результат, вы увидите, что регистратором для многих записей могут выступать непроведенные документы. Это подтверждает, что в УТ 11.5 данный регистр выполняет роль «оперативного черновика».

Резюме

Подведем итог: движения от непроведенного возврата между организациями в УТ 11.5 — это не баг, а фича архитектуры Intercompany. Система использует регистр резервов для управления очередью оформления документов. Чтобы эти движения не мешали работе:

Такой подход позволит вам эффективно управлять товарными потоками между организациями, не опасаясь блокировок склада виртуальными резервами.

← На главную