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