К статье
Практический материал

Разработка и Конфигурация · 11 мин

Что такое регистраторы в 1С и как они работают

Что такое регистратор в 1С: роль документа-регистратора, виды регистров, движения, отборы и типичные ошибки при работе с регистрами в конфигурациях 1С.

Регистратор в 1С — это документ, который создаёт записи в регистре. Любая строка в регистре сведений, накопления, бухгалтерии или расчёта существует не сама по себе: она всегда привязана к конкретному документу, который её породил. Именно этот документ и называется регистратором. Без регистратора запись в регистре появиться не может — это фундаментальное правило платформы.

Практический смысл регистратора — прослеживаемость данных. Когда бухгалтер видит в отчёте остаток товара на складе, он может провалиться до движений регистра и увидеть, какие именно документы «Приходная накладная» и «Реализация товаров» сформировали этот остаток. Поле «Регистратор» в каждой строке регистра — это ссылка на первичный документ, основание записи.

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

Как устроена связь «документ — регистр — регистратор»

Регистры в 1С хранят учётные данные: остатки товаров, взаиморасчёты, проводки, курсы валют. Но регистр — это пассивное хранилище. Сам по себе он ничего не делает: записи в него попадают только при проведении документа. В момент проведения документ формирует набор записей (движения), и платформа записывает их в регистр, автоматически проставляя в каждой строке ссылку на документ-регистратор.

Технически поле «Регистратор» — системный реквизит любого регистра (кроме независимых регистров сведений). Его тип — составная ссылка на все виды документов, которые назначены регистраторами этого регистра в конфигураторе. Удалить или изменить значение этого поля вручную нельзя: оно заполняется только платформой при записи движений.

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

Какие регистры подчиняются регистратору, а какие нет

Не все регистры требуют регистратора. Платформа делит регистры сведений на два класса: подчинённые регистратору и независимые. Регистры накопления, бухгалтерии и расчёта всегда подчинены регистратору — у них нет другого режима. А вот регистр сведений может быть независимым: например, регистр «Курсы валют» часто заполняется вручную или обработкой, и его записи не привязаны к документам.

Вид регистраРегистраторТипичное содержимое
Регистр накопленияОбязателенОстатки товаров, взаиморасчёты, продажи
Регистр бухгалтерииОбязателенПроводки по счетам
Регистр расчётаОбязателенНачисления и удержания зарплаты
Регистр сведений (подчинённый)ОбязателенЦены номенклатуры, статусы документов
Регистр сведений (независимый)ОтсутствуетКурсы валют, адреса, настройки

Различие важно при поиске данных. Если искомая информация лежит в независимом регистре сведений, искать документ-источник бессмысленно — его нет. Если же регистр подчинён регистратору, правильный путь анализа всегда один: от записи регистра к документу, который её создал.

Как найти регистратор конкретной записи

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

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

Как найти регистратор записи регистра
  1. 1
    Откройте отчёт или список регистра, где обнаружена сомнительная запись
  2. 2
    Найдите в строке колонку «Регистратор» — это ссылка на документ
  3. 3
    Перейдите по ссылке и откройте документ
  4. 4
    Проверьте дату, суммы и статус проведения документа
  5. 5
    При необходимости откройте движения документа и сопоставьте их с записью в регистре

Разработчику для анализа доступен запрос с отбором по регистратору. Например, выбрать все движения конкретного документа по регистру накопления можно условием ГДЕ Регистратор = &Ссылка. Это стандартный приём при отладке проведения и при построении отчётов по документам.

Роль регистратора при проведении и отмене проведения

При проведении документа платформа вызывает обработчик проведения, в котором код формирует движения, а затем записывает наборы записей. Все записанные строки получают ссылку на проводимый документ. Если документ перепроводится, старые движения сначала удаляются, затем записываются новые — ссылка на регистратор остаётся той же.

При отмене проведения платформа удаляет все движения документа из всех регистров. Это важно понимать при исправлении ошибок: нельзя «отменить» одну строку движений — отменяется проведение всего документа целиком, и все его записи исчезают из учёта. Для точечной корректировки в типовых конфигурациях предусмотрены специальные документы корректировки, которые сами становятся регистраторами новых, исправляющих записей.

Типичные ситуации и ошибки при работе с регистраторами

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

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

Типичные ошибки
01
Не добавлен вид документа в регистраторы регистра — при проведении возникает ошибка обращения к движениям
02
Прямая запись в регистр обработкой без документа-регистратора — записи невозможно отследить и они ломают логику отчётов
03
Удаление документов закрытого периода — исчезают движения, меняются итоги и расходится сданная отчётность
04
Ручная корректировка движений без фиксации изменений — при перепроведении правки теряются, а причина расхождений неизвестна

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

Как разработчику настроить регистраторы для нового регистра

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

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

bsl
Процедура ОбработкаПроведения(Отказ, Режим)
	Движения.ОстаткиТоваров.Записывать = Истина;
	Для Каждого Строка Из Товары Цикл
		Движение = Движения.ОстаткиТоваров.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
		Движение.Период = Дата;
		Движение.Номенклатура = Строка.Номенклатура;
		Движение.Количество = Строка.Количество;
	КонецЦикла;
КонецПроцедуры

Проверка результата проста: проведите тестовый документ, откройте его движения и убедитесь, что записи появились в регистре с правильными измерениями и суммами. Затем постройте отчёт по регистру и проверьте, что новые записи корректно влияют на итоги. Наконец, отмените проведение — все движения должны исчезнуть.

Контрольные точки

Как проверить результат

Движения документа в регистре
Норма

Строки присутствуют, поле «Регистратор» ссылается на документ

Тревожный признак

Записей нет или ссылка на регистратор пустая/битая

Поведение при отмене проведения
Норма

Все движения документа удаляются из регистра

Тревожный признак

Записи остаются после отмены проведения

Итоги в отчёте по регистру
Норма

Остатки изменяются ровно на сумму движений документа

Тревожный признак

Итоги не меняются или меняются дважды

Часто задаваемые вопросы

Может ли одна запись регистра иметь несколько регистраторов?

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

Что будет, если удалить документ-регистратор?

При пометке документа на удаление платформа отменяет его проведение и удаляет все движения из регистров. Итоги по регистрам пересчитываются. Если документ относится к закрытому периоду, это приведёт к расхождению учёта с ранее сформированной отчётностью, поэтому удалять такие документы следует только после анализа последствий.

Можно ли записать данные в регистр без документа?

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

Почему в отчёте не видно, какой документ сформировал цифру?

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

Один документ может быть регистратором нескольких регистров?

Да, и это норма. Например, документ «Реализация товаров» в типовой конфигурации одновременно делает движения по регистрам остатков товаров, продаж, взаиморасчётов и формирует проводки в регистре бухгалтерии. Состав регистров, по которым проводится документ, определяется настройками в конфигураторе.

Как исправить ошибочные движения документа?

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

Итог

Что важно запомнить

Регистратор — это документ, создавший записи в регистре. Каждая запись подчинённого регистра ссылается на свой документ, что обеспечивает прослеживаемость учёта. Исправляйте учёт через документы, а не прямой записью в регистры, и не удаляйте регистраторы закрытых периодов без анализа последствий.