При работе в режиме Конфигуратор разработчики 1С нередко сталкиваются с критической ошибкой: «Ни один из документов не является регистратором для регистра». Эта ошибка блокирует обновление конфигурации базы данных и делает невозможным дальнейшую разработку или эксплуатацию системы. В данной статье мы подробно разберем, почему возникает эта ситуация, как она связана с архитектурой базы данных и какими способами можно оперативно восстановить работоспособность системы.
Для начала проанализируем, что именно сообщает нам система. В платформе «1С:Предприятие» существуют объекты метаданных, которые предназначены для хранения итогов или записей в разрезе времени — это регистры накопления, регистры бухгалтерии и регистры расчета. В отличие от справочников, эти объекты не могут существовать сами по себе. Каждая запись в таком регистре должна быть жестко привязана к событию, которое ее породило. Этим событием выступает Документ, который в терминах платформы называется Регистратором.
Рассмотрим основные причины, по которым возникает данная ошибка:
РегистрНакопления.ПеревозкаМатериальныхЦенностей), определил его ресурсы и реквизиты, но забыл указать, какие именно документы имеют право записывать в него данные.РегистрСведений был переведен из режима «Независимый» в режим «Подчинение регистратору», он мгновенно начинает требовать наличия хотя бы одного документа-регистратора.Давайте заглянем «под капот» системы. На уровне SQL-сервера таблицы регистров накопления и расчета содержат обязательные поля, такие как _RecorderTRef (тип регистратора) и _RecorderRRef (ссылка на конкретный документ). Если в метаданных не указан ни один документ, платформа не может определить составной тип данных для поля _RecorderTRef. В результате СУБД не может создать структуру таблиц, так как не понимает, ссылки на какие таблицы документов разрешить в этой колонке. Именно поэтому проверка логической целостности выдает ошибку еще на этапе сохранения конфигурации. Для наглядного исследования таблиц и реквизитов на уровне СУБД можно использовать отчет по структуре хранения базы данных 1С.
Если вы столкнулись с этой ошибкой в основной конфигурации, выполним следующие шаги для ее устранения:
Шаг 1: Идентификация проблемного объекта. В окне сообщений об ошибках четко указывается имя регистра. Найдем его в дереве метаданных. Например, это может быть РегистрыНакопления -> ПеревозкаМатериальныхЦенностей.
Шаг 2: Открытие свойств регистра. Щелкнем правой кнопкой мыши по регистру и выберем пункт «Открыть дерево объектов» или дважды кликнем по нему. Нас интересует вкладка «Регистраторы».
Шаг 3: Назначение регистраторов. На этой вкладке представлен список всех документов, существующих в системе. Нам необходимо отметить галочками те документы, которые будут формировать движения по данному регистру. Проанализируем логику бизнес-процесса: если регистр отражает перевозку ценностей, логично выбрать документы типа ТТН, ПеремещениеТоваров или ПутевойЛист.
Шаг 4: Настройка движений в документе. Мало просто отметить галочку в регистре. Нужно убедиться, что и в самом документе на вкладке «Движения» этот регистр выбран. Рассмотрим ситуацию: если мы отметили документ регистратором в окне регистра, платформа автоматически обновит свойства документа, но нам все равно потребуется написать код в модуле набора записей или использовать «Конструктор движений», чтобы данные действительно начали записываться.
Выясним причину, почему ошибка часто проявляется именно в расширениях. Когда мы добавляем новый регистр в расширение, он изолирован от основной базы, пока мы не свяжем его с документами. Разберем алгоритм действий:
Важно помнить: если вы просто заимствуете документ, но не укажете его регистратором для расширяемого или нового регистра именно в контексте расширения, система выдаст ошибку целостности при попытке применения изменений. Для комплексного анализа связей между объектами конфигурации и расширениями можно применить веб-инструмент для анализа зависимостей конфигураций 1С.
В крупных конфигурациях с сотнями объектов легко пропустить пустой регистр. Чтобы быстро найти всех «виновников», проанализируем возможности встроенной проверки платформы:
Система просканирует все метаданные и выведет список всех регистров, у которых отсутствует связь с регистраторами. Это позволит исправить все ошибки за один раз, не дожидаясь сбоя при обновлении базы данных.
Мы выяснили, что ошибка «Ни один из документов не является регистратором для регистра» — это не просто формальное предупреждение, а ограничение, связанное с физической структурой хранения данных в 1С. Чтобы избежать подобных ситуаций в будущем, рекомендуем придерживаться следующих правил:
Следуя этим инструкциям, вы сможете быстро устранить проблему и обеспечить корректную структуру метаданных вашей информационной системы.