Разработка и Конфигурация · 11 мин
Что такое регистратор в 1С и зачем он нужен
Регистратор в 1С — документ, создающий записи в регистрах. Как найти регистратор, проверить движения, исправить ошибки и избежать типичных проблем с проведением.
Регистратор в 1С — это документ, который создаёт записи в регистрах при проведении. Каждый документ, участвующий в учёте (поступление товара, реализация, списание, начисление зарплаты), при проведении формирует набор записей — движений — в одном или нескольких регистрах. Сам документ при этом становится регистратором этих записей: в каждой строке регистра хранится ссылка на документ, который её породил.
Такая связь решает ключевую задачу учётной системы — прослеживаемость. По любой записи в регистре можно открыть документ-источник и понять, откуда взялись остатки, обороты или начисления. Обратно: по документу можно увидеть все его движения через кнопку «Дт/Кт» или команду «Движения документа», а при отмене проведения все записи регистратора удаляются автоматически.
Без регистраторов регистры превратились бы в набор анонимных цифр, которые невозможно проверить и исправить. Поэтому платформа 1С жёстко контролирует целостность связи «документ → записи»: запись в регистре, подчинённом регистратору, не может существовать без документа-владельца.
Как устроена связь документа и регистра
В конфигураторе у каждого регистра (накопления, сведений, бухгалтерии, расчёта) есть свойство «Регистраторы» — список видов документов, которым разрешено делать в него записи. У документа, в свою очередь, на закладке «Движения» перечислены регистры, по которым он проводится. Эти настройки зеркальны: если документ «Поступление товаров» проводится по регистру «Остатки товаров», то в регистре он указан как регистратор.
Физически в таблице регистра есть служебное поле «Регистратор», содержащее ссылку на документ. Платформа использует его для отбора записей, построения отчётов и контроля целостности. Режим записи регистра при этом — «Подчинение регистратору»: такие регистры не позволяют вносить записи вручную без документа, в отличие от независимых регистров сведений.
При проведении документа платформа сначала удаляет его старые движения (если документ перепроводится), затем вызывает обработчик проведения, который формирует новые записи, и записывает их в регистры. Вся операция выполняется в одной транзакции: если формирование движений завершилось ошибкой, документ не проводится, а регистры остаются в прежнем состоянии.
Какие регистры подчиняются регистратору
Не все виды регистров требуют регистратора. Различие важно понимать, потому что от него зависит, как исправлять данные и где искать источник записи.
| Вид регистра | Нужен регистратор | Типичное использование |
|---|---|---|
| Регистр накопления | Да, всегда | Остатки товаров, взаиморасчёты, продажи |
| Регистр бухгалтерии | Да, всегда | Проводки по плану счетов |
| Регистр расчёта | Да, всегда | Начисления и удержания зарплаты |
| Регистр сведений (подчинённый) | Да | Данные, привязанные к документу (например, статусы) |
| Регистр сведений (независимый) | Нет | Курсы валют, цены, настройки — записи вводятся напрямую |
Если вы видите в базе запись подчинённого регистра, у неё обязательно есть регистратор. Если записи в независимом регистре сведений выглядят «лишними», документа-источника у них нет — их создали вручную, обработкой или обменом данными.
Как найти регистратор и движения документа
В пользовательском режиме посмотреть, какие записи создал документ, можно прямо из его формы. В типовых конфигурациях для этого есть команда «Движения документа» (в «1С:Бухгалтерии» — кнопка «Дт/Кт», показывающая проводки). Откроется список регистров, по которым документ проведён, с наборами записей по каждому.
Обратная задача — найти регистратор по записи — решается через поле «Регистратор» в списке регистра: откройте регистр (через «Все функции» в режиме тонкого клиента или через отчёт), найдите запись и перейдите по ссылке в колонке «Регистратор». В отчётах типа «Оборотно-сальдовая ведомость» или «Остатки товаров» расшифровка по регистраторам включается настройкой группировки — добавьте поле «Регистратор», и отчёт покажет, какими документами сформированы суммы.
- 1Откройте проведённый документ в режиме предприятия
- 2Нажмите кнопку «Дт/Кт» или команду «Ещё → Движения документа»
- 3Выберите нужный регистр в списке слева и изучите записи
- 4Для анализа по регистру откройте отчёт и добавьте группировку «Регистратор»
- 5Сверьте суммы движений с данными самого документа
Что происходит при проведении и отмене проведения
При проведении документ-регистратор формирует движения по алгоритму, заложенному в модуле объекта (в типовых конфигурациях — через процедуры проведения общих модулей). Движения могут быть стандартными для вида документа или зависеть от заполнения: например, реализация с комиссионным товаром сделает другие записи, чем обычная продажа.
При отмене проведения платформа удаляет все записи документа во всех регистрах, где он числится регистратором. Это атомарная операция: нельзя отменить проведение «частично». При пометке документа на удаление проведение отменяется автоматически, и движения исчезают вместе с ним.
Важный нюанс — последовательности и итоги. В конфигурациях с механизмом последовательностей перепроведение «задним числом» сдвигает границу последовательности, и документы после изменённого требуют перепроведения для восстановления актуальности итогов. В современных конфигурациях на управляемых формах вместо последовательностей часто используется отложенное проведение и актуализация итогов регламентными заданиями.
Типичные проблемы с регистраторами и их решение
Самая частая ситуация — «битая ссылка» в поле регистратора: вместо документа отображается «Объект не найден». Такое случается после некорректного обмена данными или физического удаления документа в обход контроля ссылочной целостности. Лечится тестированием и исправлением информационной базы с включённой проверкой ссылочной целостности, либо восстановлением документа из копии.
Вторая проблема — документ проведён, но движений нет или они не те. Причины: документ не включён в состав регистраторов нужного регистра (при доработке конфигурации), ошибка в модуле проведения, либо движения очищены обработкой. Проверка проста: откройте движения документа и сравните с ожидаемым набором регистров; перепроведите документ и посмотрите, восстановились ли записи.
Третья ситуация — расхождение отчёта и документов. Обычно причина в непроведённых документах, документах вне границы итогов или в ручных операциях, которые пользователь забыл. Группировка отчёта по регистраторам быстро показывает, какие документы сформировали цифру, а каких не хватает.
Регистратор при разработке и доработке
Если вы добавляете в конфигурацию новый документ, который должен влиять на учёт, порядок действий фиксированный: создайте документ, на закладке «Движения» отметьте нужные регистры, затем в модуле объекта опишите формирование записей в обработке проведения. Платформа автоматически добавит документ в список регистраторов выбранных регистров.
Пример минимального кода формирования движения по регистру накопления:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого Строка Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = Строка.Номенклатура;
Движение.Количество = Строка.Количество;
КонецЦикла;
КонецПроцедуры
Ссылку на регистратор платформа проставит сама при записи движений — вручную заполнять поле «Регистратор» не нужно и нельзя. Если требуется сделать записи от имени другого документа, это признак ошибки проектирования: правильнее провести тот документ или использовать корректировочный документ.
При отладке проведения удобно ставить точку останова в обработке проведения и смотреть набор записей до вызова Записать(). Так видно, какие именно движения сформирует документ, ещё до того, как они попадут в базу.
Как проверить корректность движений регистратора
После перепроведения документов или доработки конфигурации результат нужно проверить, а не принимать на веру. Базовый контроль — сопоставление данных документа и его движений: суммы и количества в табличной части должны совпадать с записями в регистрах.
Для массовой проверки используйте отчёты с группировкой по регистраторам и сверку с аналогичными отчётами по документам. В типовых конфигурациях есть штатные инструменты: «Экспресс-проверка ведения учёта» в 1С:Бухгалтерии, обработки восстановления последовательностей, помощники корректности остатков.
Как проверить результат
Записи есть во всех регистрах, по которым документ должен проводиться
Регистр пуст или часть записей отсутствует
Ссылка открывает сам документ
«Объект не найден» — битая ссылка
Расшифровка по регистраторам сходится с итогом
Есть суммы без документов или лишние документы
Все движения документа удалены из регистров
Записи остались — признак ручного вмешательства или сбоя
Частые вопросы
Может ли один документ быть регистратором нескольких регистров?
Да, это нормальная практика. Например, документ реализации одновременно делает движения по регистрам остатков товаров, продаж, взаиморасчётов и формирует проводки в регистре бухгалтерии. Состав регистров определяется настройкой «Движения» в конфигураторе.
Можно ли удалить регистратор, не удаляя записи регистра?
Штатно — нет. При пометке документа на удаление его проведение отменяется и движения удаляются. Записи подчинённого регистра не могут существовать без регистратора; искусственное сохранение таких записей создаёт «битые ссылки» и проблемы при обменах и отчётности.
Чем регистратор отличается от документа корректировки?
Регистратор — роль любого документа, создающего движения. Корректировочный документ — тоже регистратор, но его назначение — внести исправительные записи поверх движений исходного документа, не изменяя сам исходный.
Почему в отчёте сумма есть, а документ-регистратор не открывается?
Чаще всего это битая ссылка после обмена данными или удаления объекта в обход контроля целостности. Запустите тестирование и исправление базы с проверкой ссылочной целостности и восстановите документ из резервной копии или из базы-источника обмена.
Нужно ли заполнять поле «Регистратор» в коде при проведении?
Нет. Платформа проставляет ссылку на регистратор автоматически при записи набора движений. Достаточно добавить записи в коллекцию Движения и установить признак Записывать = Истина.
Что делать, если документ не делает движений по нужному регистру?
Проверьте, что документ включён в список движений регистра в конфигураторе, что в обработке проведения формируются записи именно по этому регистру и что документ реально проведён. После доработки перепроведите документ и откройте его движения для контроля.
Что важно запомнить
Регистратор — это документ, создающий записи в регистрах при проведении и владеющий ими. Связь обеспечивает прослеживаемость учёта: любую сумму можно расшифровать до документов. Исправляйте данные через документы, а не через записи регистров, и после перепроведений проверяйте итоги отчётами с группировкой по регистраторам.