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

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

Как создать регистр сведений в 1С

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

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

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

Ниже разобран полный цикл: от выбора вида регистра до заполнения его данными и проверки результата. Инструкция применима к конфигурациям на управляемых формах (платформа 8.3), но общие принципы одинаковы и для обычного приложения.

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

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

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

Выбор вида регистра: периодичность и режим записи

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

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

Какой режим выбрать

Независимый непериодический

Для текущих значений без истории: штрихкоды, адреса, настройки. Можно редактировать вручную.

Независимый периодический

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

Периодический, подчинён регистратору

Для истории, меняемой документами: цены, кадровые данные. Записи создаются только проведением документа.

Пошаговое создание регистра в конфигураторе

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

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

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

Настройка измерений, ресурсов и реквизитов

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

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

Формы, права и размещение в интерфейсе

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

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

Заполнение регистра данными

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

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

bsl
МенеджерЗаписи = РегистрыСведений.ЦеныНоменклатуры.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = ТекущаяДатаСеанса();
МенеджерЗаписи.Номенклатура = Товар;
МенеджерЗаписи.Цена = 1500;
МенеджерЗаписи.Записать();

Проверка результата и типичные ошибки

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

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

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

Открытие списка регистра
Норма

Список открывается, отображаются колонки измерений и ресурсов

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

Ошибка открытия формы или пустой набор колонок

Создание записи
Норма

Запись сохраняется, повторная запись с тем же ключом не создаётся

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

Дубли с одинаковым ключом или ошибка уникальности

Срез последних
Норма

Запрос возвращает значение на указанную дату

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

Возвращаются устаревшие значения или пустой результат

Права доступа
Норма

Пользователь с нужной ролью видит и редактирует записи

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

Регистр не виден в интерфейсе или недоступен для записи

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

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

Частые вопросы о регистрах сведений

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

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

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

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

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

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

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

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

Почему записи регистра не видны пользователю?

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

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

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

Итог

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

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