Объект 1С "Регистры сведений" - это прикладные объекты конфигурации, которые позволяют хранить в прикладном решении произвольные данные в разрезе нескольких измерений.
Например, в регистре сведений можно хранить курсы валют в разрезе валют, или цены предприятия в разрезе номенклатуры и типа цен.
Функциональные возможности регистра сведений
Основными функциональными возможностями, которые предоставляет регистр сведений разработчику, являются:
- создание, изменение и удаление записей;
- выбор записей в заданном интервале по заданным критериям;
- выбор записей по регистратору;
- получение значений ресурсов записей, соответствующих указанному периоду и значениям измерений;
- получение значений ресурсов наиболее ранних и наиболее поздних записей регистра, соответствующих указанному периоду и значениям измерений.
Структура объекта 1С "Регистры сведений"
Информация в регистре сведений хранится в виде записей, каждая из которых содержит:
- значения измерений регистра (описывают разрезы, в которых хранится информация);
- соответствующие им значения ресурсов (непосредственно содержат хранимую информацию).
Например, регистр сведений цены товаров может иметь следующую структуру:
где "Вид цен" может иметь значения "Оптовая", "Розничная", и т.д.
Вместе с каждой записью, находящейся в регистре сведений, в его реквизитах можно хранить дополнительную произвольную информацию.
Периодичность регистра сведений 1С
Одной из возможностей регистра сведений является хранение данных не только в разрезе указанных измерений, но и в разрезе времени.
Данное свойство позволяет добавить к списку измерений регистра дополнительное измерение — "Период".
Использование периодичности регистра сведений позволяет не просто хранить статические данные, но и отслеживать их актуальность на определенную дату или изменение во времени.
Разработчик может указать минимальную периодичность, с которой записи будут заноситься в регистр:
Периодичность может принимать следующие значения:
- Непериодический;
- В пределах секунды;
- В пределах дня;
- В пределах месяца;
- В пределах квартала;
- В пределах года.
В этом случае к каждой записи регистра будет добавляться поле "Период", хранящее дату, которой были внесены записи в регистр.
При выборе периодичности, отличной от варианта "Непериодический", система будет контролировать уникальность записей в пределах заданного промежутка времени. Если запись не уникальна, система 1C выдаст сообщение "Запись с такими ключевыми полями существует!" и не даст произвести запись в базу данных.
Например, периодический регистр сведений "Цены товаров" может не только хранить информацию о том, какова цена на определенную номенклатуру сейчас, но и о том, как она изменялась в прошлом (или будет изменяться в будущем).
Особенность периодического регистра сведений:
- Возможность получать готовые значения «Срез первых» и «Срез последних». Эта информация позволяет очень быстро получить из базы данных информацию о последнем (первом) установленном значении на определенную дату.
Подчинение регистратору
Внесение изменений в регистр сведений может выполняться:
- вручную;
- при помощи документов.
В случае, когда изменения в регистр сведений вносятся с помощью документов, к каждой записи регистра добавляется специальное поле, в котором хранится информация о регистраторе - документе, с которым связана эта запись.
Какой именно режим записи будет использоваться данным регистром сведений указывается разработчиком в процессе создания прикладного решения:
Свойство "Режим записи"может быть в значении:
- «Независимый» - записи можно произвести как программно, так и из формы списка регистра сведений;
- «Подчинение регистратору» - обязательно указание документа-регистратора записи.
Использование режима записи "Подчинение регистратору" необходимо в случае, когда логика работы прикладного решения требует того, чтобы изменения, выполняемые в регистре сведений, были жестко связаны с документами, фиксирующими факты хозяйственной деятельности.
Например, изменение цен компании может производиться только определенным кругом лиц, и каждое такое изменение должно сопровождаться "бумажным" документом. В этом случае можно использовать режим подчинения регистратору, при котором изменение цен может быть выполнено только специальным документом - "Изменение цен товаров".
Уникальность записей регистра сведений
Система обеспечивает контроль уникальности записей, хранящихся в регистре сведений. Таким образом, в регистре сведений не может находиться двух одинаковых записей (с одинаковым ключом записи). Ключ записи формируется системой автоматически, на основании значений, содержащихся в полях записи, и зависит от вида регистра сведений.
В общем случае в формировании ключа записи будут участвовать значения регистратора, периода и значения измерений.
Таким образом, например, в непериодическом регистре сведений "Цены товаров" с независимым режимом записи не может существовать двух записей о розничной цене конфет ассорти. Точно так же, как в периодическом регистре сведений "Цены товаров", подчиненном регистратору, не может существовать двух записей о розничной цене конфет ассорти, внесенных одной и той же датой, одним и тем же документом "Изменение цен товаров".
Свойства измерения регистра сведений
Особое внимание следует обратить на флаги "Ведущее" и "Основной отбор" палитры свойств измерений регистра сведений.
- Ведущее — свойство измерения, указывающее на то, что без значения этого измерения запись регистра не имеет смысл. Установка флага означает что система при удалении значения из измерения удаляет еще и запись регистра с «Ведущим» измерением. Может быть установлено только одно измерение.
- Основной отбор — если регистр независимый, то по этим измерениям будет устанавливаться регистрация изменений для плана обмена. Аналогично использование "Основной отбор" по периоду включает основной отбор для периода периодических регистров.
Программная запись в регистр сведений 1С
Добавить новые записи в регистр сведений можно двумя способами:
- с помощью менеджера записи (для одиночной записи);
- с помощью набора записей (для двух и и более записей).
Примеры отсюда:
1 2 3 4 5 6 |
НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»); НоваяЗапись.Период = Дата(31,12,2016); НоваяЗапись.Курс = 100; НоваяЗапись.Кратность = 1; НоваяЗапись.Записать(); |
1 2 3 4 5 6 7 8 9 10 11 |
НовыйНаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); //если вы не установите отбор — удалятся все записи регистра сведений НовыйНаборЗаписей.Отбор.Валюта.Установить(Доллар, Истина); НовыйНаборЗаписей.Отбор.Период.Установить(Дата(31,12,2016), Истина); //формируем непосредственно запись набора НоваяЗаписьНабора = НовыйНаборЗаписей.Добавить(); НоваяЗаписьНабора.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»); НоваяЗаписьНабора.Период = Дата(31,12,2016); НоваяЗаписьНабора.Курс = 100; НоваяЗаписьНабора.Кратность = 1; НовыйНаборЗаписей.Записать(); |
Обработка для полной программной очистки всех записей регистра сведений.
Формы объекта 1С "Регистры сведений"
Для того чтобы пользователь мог просматривать и изменять данные, содержащиеся в регистре сведений, система поддерживает несколько форм представления регистра. Система может автоматически генерировать все нужные формы регистра. Наряду с этим разработчик имеет возможность создать собственные формы, которые система будет использовать вместо форм по умолчанию.
Форма записи регистра сведений 1С
Для просмотра и изменения отдельных записей регистра сведений используется форма записи. Как правило, она представляет данные в удобном для восприятия и редактирования виде.
Форма списка регистра сведений 1С
Для просмотра данных, содержащихся в регистре сведений, используется форма списка. Она позволяет:
- выполнять навигацию по регистру;
- добавлять, помечать на удаление и удалять записи регистра;
- выполнять сортировку и отбор отображаемой информации по нескольким критериям.