Как закрыть записи в регистре «График поступления товаров» в 1С:УТ 11, ERP и КА

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

В процессе работы с программами на базе 1С:ERP (Управление торговлей 11, Комплексная автоматизация, ERP) пользователи часто сталкиваются с ситуацией, когда товар уже фактически поступил на склад, документы Приобретение товаров и услуг и Заказ поставщику полностью оформлены и закрыты, однако в отчетах или регистрах (в частности, в Графике поступления товаров) продолжают висеть «ожидаемые» остатки. Это создает путаницу при планировании закупок и искажает данные о доступности товаров.

В данной статье мы подробно разберем, почему записи в регистре накопления ГрафикПоступленияТоваров могут не очищаться автоматически, проанализируем внутреннюю логику системы и рассмотрим несколько способов решения проблемы: от простых пользовательских манипуляций до внесения изменений в программный код.

Причины возникновения проблемы

Регистр ГрафикПоступленияТоваров является вспомогательным и служит для оперативного планирования. Записи в нем появляются при проведении документа Заказ поставщику в статусе «Подтвержден». В норме эти записи должны сторнироваться (удаляться) при фактическом поступлении товара. Однако механизм закрытия этого графика в современных редакциях 1С достаточно сложен и зависит от цепочки документов, используемых настроек склада (ордерный или нет) и заполнения скрытых реквизитов.

Рассмотрим основные причины, по которым график «подвисает»:

  1. Несоответствие распоряжений: В приходном ордере или накладной указано не то распоряжение, которое сформировало запись в графике.
  2. Скрытый реквизит «Закрывать график поступления»: В документе Приходный ордер на товары существует служебный флаг, который не выведен на форму, но критически важен для очистки регистра.
  3. Разрыв аналитики «Назначение»: Если заказ оформлен под конкретное назначение, а поступление — без него, система не сможет сопоставить эти события.
  4. Ошибки при ручном создании документов: Создание ордеров копированием или вручную, минуя специализированные рабочие места (АРМ), часто приводит к недозаполнению связей.

Решение 1: Ручная корректировка Приходного ордера

Проанализируем ситуацию на ордерном складе. Как выяснилось в ходе разбора проблемы, за очистку регистра ГрафикПоступленияТоваров отвечает именно Приходный ордер на товары. В его структуре есть реквизит ЗакрыватьГрафикПоступления. Если этот флаг имеет значение Ложь, ордер примет товар на остатки, но не «сообщит» системе, что ожидание по заказу выполнено.

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

  1. Откроем проблемный документ Приходный ордер на товары.
  2. Перейдем к полю Распоряжение.
  3. Нажмем кнопку выбора и перевыберем тот же самый Заказ поставщику (или Приобретение товаров и услуг), который там уже указан.
  4. При перевыборе распоряжения в форме документа срабатывает серверная процедура РаспоряжениеВыборСервер, которая проверяет наличие движений по заказу и принудительно устанавливает скрытый флаг ЗакрыватьГрафикПоступления в значение Истина.
  5. Проведем документ. Проверим движения: запись в регистре ГрафикПоступленияТоваров должна исчезнуть.

Решение 2: Программная автоматизация заполнения реквизита

Если документов много, ручной перевыбор распоряжений становится неэффективным. Кроме того, в некоторых версиях конфигураций процедура установки флага не вызывается при автоматическом создании документов (например, через расширения или обработки). В этом случае программисту необходимо доработать модуль формы документа Приходный ордер на товары.

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


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

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


Решение 3: Проверка аналитики «Назначение» и Соглашений

Часто проблема кроется не в программных ошибках, а в методике ведения учета. Проанализируем влияние аналитики на закрытие графиков. В 1С:УТ 11/ERP регистр ГрафикПоступленияТоваров хранит данные в разрезе Назначений (обособленный учет под заказ).

Выясним основные моменты, требующие проверки:

  1. Единство назначений: Проверьте, чтобы в Заказе поставщику и в итоговом Приобретении товаров и услуг (а также в ордере) было указано идентичное назначение. Если в заказе товар зарезервирован под конкретного клиента, а приход оформлен как «свободный склад», график по заказу не закроется — система будет считать, что товар «под клиента» все еще ожидается.
  2. Наличие Соглашения: В ряде релизов отсутствие связи с Соглашением в цепочке документов приводило к потере связи между заказом и фактической поставкой. Рекомендуется использовать групповую обработку для заполнения соглашений в документах, если они были пропущены.
  3. Статусы строк заказа: Если вы получили товар не в полном объеме и больше поставок не планируется, недостаточно просто закрыть Заказ поставщику. Необходимо зайти в заказ и для непоступивших строк установить флаг Отменено (с указанием причины). Только в этом случае ожидание по этим строкам удалится из графика.

Решение 4: Использование АРМ «Приемка товаров»

Самый надежный способ избежать проблем с регистром ГрафикПоступленияТоваров — отказаться от ручного создания документов Приходный ордер на товары. Разработчики 1С заложили основную логику связей в Рабочее место кладовщика (Приемка).

Разберем правильный алгоритм работы:

  1. Менеджер оформляет Заказ поставщику и переводит его в статус «Подтвержден».
  2. Кладовщик открывает раздел Склад и доставка -> Приемка.
  3. В списке распоряжений он видит ожидаемый заказ.
  4. Нажимает кнопку Создать ордер.

При таком способе создания система автоматически заполняет все служебные реквизиты, включая ЗакрыватьГрафикПоступления, и корректно связывает складскую операцию с финансовым распоряжением.


Заключение

Подведем итоги. Если вы обнаружили лишние записи в Графике поступления товаров, действуйте по следующему плану:

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

← На главную