Как исправить ошибку «не найден документ-регистратор движения графика движения товаров по распоряжению» в 1С

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

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

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

Почему возникает эта ошибка: технический анализ

Начиная с версии 11.4 в ERP-решениях 1С была существенно переработана архитектура взаиморасчетов (так называемые «онлайн-взаиморасчеты»). В рамках новой концепции система использует специализированные регистры для планирования отгрузок, оплат и поставок. Одним из таких регистров является График движения товаров.

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

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

Главный виновник — «битые» данные при переносе

Как показывает практика, чаще всего эта ошибка проявляется на документах, оформленных по договорам или соглашениям, которые были перенесены в новую базу данных программным путем (например, при переходе с 1С:УПП 1.3, 1С:УТ 10.3 или через внешние обработки обмена данными).

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

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

К таким скрытым реквизитам относятся:

  1. ВариантОформленияЗакупок (Вариант оформления закупок)
  2. ВариантПриемкиТоваров (Вариант приемки товаров)
  3. ДетализацияРасчетов (Способ детализации расчетов)

Шаг 1. Локализация проблемы с помощью консоли запросов

Чтобы убедиться, что проблема действительно заключается в пустых скрытых реквизитах соглашений или договоров, мы можем использовать консоль запросов или написать простой отчет. Давайте сравним значения реквизитов рабочего соглашения (созданного вручную в новой базе) и проблемного соглашения (перенесенного из старой системы).

Выполним следующий запрос в консоли:


ВЫБРАТЬ
    Соглашения.Ссылка КАК Соглашение,
    Соглашения.ВариантОформленияЗакупок КАК ВариантОформленияЗакупок,
    Соглашения.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
    Соглашения.ДетализацияРасчетов КАК ДетализацияРасчетов
ИЗ
    Справочник.СоглашенияСПоставщиками КАК Соглашения
ГДЕ
    Соглашения.Ссылка В (&СоглашениеРабочее, &СоглашениеПроблемное)

При анализе результата запроса мы увидим, что у проблемного соглашения поля ВариантОформленияЗакупок и ВариантПриемкиТоваров будут содержать пустые значения (или значения по умолчанию, не соответствующие логике проведения), в то время как у рабочего соглашения они будут четко определены.

Шаг 2. Способы решения проблемы

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

Способ А. Групповое изменение реквизитов (рекомендуемый для массового исправления)

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

  1. Перейдем в раздел НСИ и администрирование -> Обслуживание -> Корректировка данных и откроем ссылку Групповое изменение реквизитов.
  2. В поле «Выбирать элементы типа» укажем Соглашения с поставщиками (или Договоры контрагентов, если закупки ведутся по договорам).
  3. Рекомендуется настроить отбор по конкретным проблемным элементам (например, по признаку переноса или по конкретному контрагенту), чтобы не перезаписать лишние данные.
  4. Нажмем кнопку Дополнительные параметры внизу формы и обязательно установим флажок Показывать служебные реквизиты. Без этого действия нужные нам поля не отобразятся в списке доступных для изменения.
  5. В появившемся списке реквизитов найдем и заполним следующие поля:
    • Вариант оформления закупок — установим значение Не разделять (или иное требуемое бизнес-логикой вашей компании).
    • Вариант приемки товаров — установим значение Разделена только по накладным (или Может отличаться по накладным и ордерам, если используется ордерный склад).
  6. Нажмем кнопку Изменить реквизиты и дождемся завершения выполнения операции.

После группового изменения служебных полей проведение документа Приобретение товаров и услуг должно пройти успешно.

Способ Б. Временное включение функциональных опций

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

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

Способ В. Выполнение регламентного задания по расчету взаиморасчетов

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

Для исправления этой ситуации выполним следующие действия:

  1. Перейдем в раздел НСИ и администрирование -> Обслуживание -> Регламентные операции -> Регламентные и фоновые задания.
  2. Найдем в списке регламентное задание Выполнение отложенных движений по расчетам с клиентами и поставщиками.
  3. Вызовем контекстное меню и нажмем кнопку Выполнить сейчас. Система произведет перерасчет всех накопившихся задержек по взаиморасчетам и актуализирует служебные документы-регистраторы.

Регулярное выполнение данного задания (обычно настраивается расписание с интервалом в несколько минут или часов) позволяет избежать подобных коллизий при интенсивной многопользовательской работе в системе.

← На главную