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

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

Независимый регистр сведений в 1С: что это значит и как с ним работать

Что значит независимый регистр сведений в 1С: отличия от подчинённого, режимы записи, периодичность, типовые ошибки и практические примеры работы с данными.

Независимый регистр сведений в 1С — это объект конфигурации, который хранит данные в виде таблицы, где каждая запись существует сама по себе и не привязана к документу-регистратору. Записи в такой регистр добавляет либо пользователь вручную через форму списка, либо программный код, а не процедура проведения документа. Типичные примеры из типовых конфигураций: курсы валют, адресный классификатор, значения настроек, штрихкоды номенклатуры, ответственные лица организации.

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

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

Что такое регистр сведений и какие у него режимы

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

У регистра сведений есть два режима подчинения: независимый и подчинённый регистратору. В подчинённом режиме каждая запись обязательно ссылается на документ-регистратор: запись появляется при проведении документа и исчезает при отмене проведения. В независимом режиме поля «Регистратор» в таблице просто нет — записи живут отдельно от документооборота.

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

Чем независимый регистр отличается от подчинённого

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

ПараметрНезависимыйПодчинённый регистратору
Кто создаёт записиПользователь, обработка, код, обменДокумент при проведении
Поле «Регистратор»ОтсутствуетОбязательно, ссылка на документ
Удаление записейВручную или программноАвтоматически при отмене проведения
Восстановление данныхТолько повторный ввод или загрузкаПерепроведение документов
Типовое назначениеКурсы валют, настройки, штрихкодыЦены по документу, статусы, движения
Итоги и срезыСрез последних/первых для периодическихАналогично, но в разрезе регистратора

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

Сравнение вариантов

Независимый регистр

Подходит для справочных данных, настроек и нормативов. Ограничение: нет автоматической связи с документами, актуальность контролируете вы.

Подчинённый регистратору

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

Справочник вместо регистра

Подходит, если нужны иерархия, коды, права на элементы. Ограничение: справочник не хранит историю по измерениям и периодам так естественно, как регистр.

Где встречаются независимые регистры в типовых конфигурациях

В конфигурациях «1С:Бухгалтерия», «1С:Управление торговлей», «1С:ERP» и зарплатных решениях независимые регистры сведений используются массово. Самый известный пример — регистр «Курсы валют»: периодический, независимый, измерение «Валюта», ресурс «Курс» (и «Кратность»). Пока в нём нет записи на нужную дату, пересчёт сумм в валюте в документах будет выполняться некорректно или с нулевым курсом.

Другие типовые примеры: «Штрихкоды номенклатуры» (непериодический, связывает штрихкод с товаром и характеристикой), «Ответственные лица организаций» (периодический, хранит историю назначений), регистры настроек обмена данными, адресные сведения, учётная политика организаций. Все они объединены одним свойством: данные вводятся один раз и используются многократно.

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

В форме списка нет колонки «Регистратор»Признак независимого режима

Откройте список регистра: если нет ссылки на документ — записи создаются напрямую

Кнопка «Создать» доступнаЗаписи добавляются вручную

В подчинённом регистре ручное создание обычно недоступно

В конфигуратореСвойство «Режим записи»

Независимый / Подчинение регистратору — смотрите в палитре свойств объекта

Как создать и настроить независимый регистр в конфигураторе

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

При проектировании важно правильно выбрать измерения, потому что они образуют уникальный ключ записи. Две записи с одинаковым набором измерений (и периодом, если регистр периодический) существовать не могут. Например, для регистра «Цены поставщиков» разумны измерения «Номенклатура» и «Поставщик», а ресурс — «Цена». Если забыть измерение, система не даст хранить два значения для разных поставщиков.

Порядок создания регистра
  1. 1
    Откройте конфигуратор, ветка «Регистры сведений», команда «Добавить»
  2. 2
    Задайте имя и убедитесь, что режим записи — «Независимый»
  3. 3
    Выберите периодичность: непериодический или с нужной точностью
  4. 4
    Добавьте измерения — ключевые поля, определяющие уникальность записи
  5. 5
    Добавьте ресурсы — хранимые значения, и при необходимости реквизиты
  6. 6
    Настройте права доступа для ролей и включите объект в подсистемы
  7. 7
    Обновите конфигурацию базы данных и проверьте создание записи в режиме Предприятия

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

Как работать с записями: вручную и программно

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

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

Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();

Запись.Период = ТекущаяДатаСеанса();

Запись.Валюта = ВалютаСсылка;

Запись.Курс = 90.5;

Запись.Записать();

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

Типичные ошибки и ограничения

Самая частая ошибка разработчика — выбрать независимый режим для данных, которые логически порождаются документами. Например, хранить «цены продажи» в независимом регистре, хотя они устанавливаются документом «Установка цен». Итог: при отмене документа цены остаются, данные расходятся с учётом, и исправить их перепроведением уже нельзя.

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

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

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

Как проверить корректность данных и выбрать действие

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

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

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

Наличие актуальных записей
Норма

На текущую дату есть запись по каждому ключевому измерению

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

Срез последних возвращает пустоту или устаревшую дату

Уникальность
Норма

Одна запись на комбинацию измерений и период

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

Ошибки о дублировании при записи, конфликты при обмене

Использование в расчётах
Норма

Документы и отчёты подтягивают корректные значения

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

Нулевые курсы, пустые цены, старые ответственные лица в печатных формах

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

Маршрут решения

Как выбрать действие

Нужно хранить справочные значения, не связанные с документамиИспользуйте независимый регистр сведений
Данные рождаются и отменяются вместе с документомВыбирайте регистр, подчинённый регистратору
Нужна история изменения значенияСделайте регистр периодическим и читайте данные через СрезПоследних
В отчётах пустые или нулевые значения нормативовПроверьте соответствующий независимый регистр и загрузите недостающие записи

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

Итог

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

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

Частые вопросы

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

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

Почему в документе нулевой курс валюты, хотя документ проведён без ошибок?

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

Чем независимый регистр сведений лучше справочника для хранения настроек?

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

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

Используйте виртуальную таблицу СрезПоследних с параметром даты и отбором по измерениям. Например: ВЫБРАТЬ Курс ИЗ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта). Это выполняется одним обращением к индексированной таблице и работает значительно быстрее перебора записей.

Что произойдёт с записями независимого регистра при удалении элемента справочника, на который они ссылаются?

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

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

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