← Назад к вопросам

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

2.0 Middle🔥 151 комментариев
#Регистры

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Записи в регистре сведений без регистратора

Это один из фундаментальных вопросов архитектуры информационной базы в 1С. Ответ зависит от типа регистра сведений и его конфигурации.

Основной ответ

Да, записи могут существовать без регистратора, но с важными оговорками.

Когда записи создаются без регистратора

1. Для подчиненных регистров (Подчинённый = Истина)

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

// Записи подчинённого регистра создаются в контексте регистратора
Регистр.МойПодчинённыйРегистр.Добавить();
Регистр.МойПодчинённыйРегистр.Запомнить();

Однако записи могут существовать без регистратора если регистр был создан с флагом "Подчинённый" = Ложь или если эти записи были созданы напрямую, без связи с конкретным документом.

2. Для независимых регистров (Подчинённый = Ложь)

Независимые регистры сведений в принципе создаются без регистратора:

// Независимый регистр сведений
Регистр.КурсыВалют.Добавить();
Регистр.КурсыВалют.Дата = ТекущаяДата();
Регистр.КурсыВалют.Валюта = Справочник.Валюты.НайтиПоКоду("USD");
Регистр.КурсыВалют.Курс = 75.50;
Регистр.КурсыВалют.Запомнить();

Эти записи существуют независимо и не имеют привязки к какому-либо регистратору.

Регистры, требующие регистратора

Регистры накопления (AccumulationRegister) ВСЕГДА требуют регистратора. Это обусловлено архитектурой:

// Регистр накопления связан с документом-регистратором
Документ = Документы.Документ.ПолучитьОбъект(Ссылка);

// Движения регистра создаются как часть движений документа
Движение = Движения.МойРегистрНакопления.Добавить();
Движение.Счёт = ...;
Движение.Сумма = ...;

Попытка создать запись в регистре накопления без регистратора приведёт к ошибке.

Регистры с заданным типом регистратора

Если регистр сведений имеет явно указанный тип регистратора (например, только документы определённого типа), то:

// Если регистр привязан к конкретному типу документа
Процедура ПриЗаписи() Экспорт
    Если ТипЗнач(Регистратор) <> Тип("ДокументСсылка.МойДокумент") Тогда
        ВызватьИсключение "Неверный тип регистратора";
    КонецЕсли;
КонецПроцедуры

Это проверяется на уровне кода, а не на уровне платформы.

Важные особенности

Виртуальные таблицы регистров:

Регистры сведений создают две виртуальные таблицы:

  • Таблица остатков (для остаток-ориентированных регистров)
  • Таблица движений (для накопления)

Записи в таблице движений регистра накопления обязательно связаны с регистратором на уровне платформы.

Удаление регистратора:

Для подчинённых регистров при удалении регистратора:

Процедура ПередУдалением(Отказ) Экспорт
    // Подчинённые записи удалятся автоматически
КонецПроцедуры

Практические рекомендации

  1. Используйте независимые регистры для справочной информации (курсы, коэффициенты)
  2. Подчинённые регистры применяйте для детализированных данных документов
  3. Регистры накопления всегда создавайте как движения документов
  4. Проверяйте типы регистраторов в коде, если это критично
  5. Документируйте зависимость регистров в технической документации

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

Может ли быть в регистре сведений запись без регистратора? | PrepBro