Что такое регистры сведений в 1с
Что такое регистры сведений в 1с
2. Виды регистров сведений
3. Измерения, ресурсы, реквизиты регистра сведений
4. Периодический регистр сведений
5. Свойства регистра и измерений
6. Добавление записи в регистр сведений
7. Изменение значения ресурса записи регистра сведений
8. Удаление выбранных записей в регистре сведений
9. Очистка регистра сведений от записей
10. Получить значение ресурса регистра сведений на дату
Регистр сведений предназначен для хранения показателей состояния в разрезе измерений. В отличии от других регистров, ресурсы регистра сведений могут содержать не только числовые значения, в том числе может быть составным.
2. Виды регистров сведений
Измерения – описывают разрезы, в которых хранится информация.
Ресурсы – содержат хранимую информацию в разрезе измерения.
Тип ресурса сведений может быть как примитивный (число, строка, дата, булево), так и ссылочный (СправочникСсылка, ПеречислениеСсылка и т.д.). В ресурсе можно хранить даже картинки и другие неструктурированные сведения, поскольку можно создать ресурс типа «ХранилищеЗначения». Ресурс может быть составным типом.
4. Периодический регистр сведений
5. Свойства регистра и измерений
6. Добавление записи в регистр сведений
Добавление через МенеджерЗаписи, подойдет для добавления одной записи.
Добавление через НаборЗаписей, подойдет для добавления одной или нескольких записей.
7. Изменение значения ресурса записи регистра сведений
Изменение значение ресурса записи через НаборЗаписей, подойдет для изменения одной или нескольких записей.
8. Удаление выбранных записей в регистре сведений
Удаление записей через НаборЗаписей, подойдет для удаления одной или нескольких записей.
9. Очистка регистра сведений от записей
Очистка регистра от записей через НаборЗаписей.
Объект 1С «Регистры сведений»
Например, в регистре сведений можно хранить курсы валют в разрезе валют, или цены предприятия в разрезе номенклатуры и типа цен.
Функциональные возможности регистра сведений
Основными функциональными возможностями, которые предоставляет регистр сведений разработчику, являются:
Структура объекта 1С «Регистры сведений»
Информация в регистре сведений хранится в виде записей, каждая из которых содержит:
Например, регистр сведений цены товаров может иметь следующую структуру:
где » Вид цен» может иметь значения «Оптовая», «Розничная», и т.д.
Вместе с каждой записью, находящейся в регистре сведений, в его реквизитах можно хранить дополнительную произвольную информацию.
Периодичность регистра сведений 1С
Одной из возможностей регистра сведений является хранение данных не только в разрезе указанных измерений, но и в разрезе времени.
Данное свойство позволяет добавить к списку измерений регистра дополнительное измерение — «Период».
Использование периодичности регистра сведений позволяет не просто хранить статические данные, но и отслеживать их актуальность на определенную дату или изменение во времени.
Разработчик может указать минимальную периодичность, с которой записи будут заноситься в регистр:
Периодичность может принимать следующие значения:
В этом случае к каждой записи регистра будет добавляться поле «Период», хранящее дату, которой были внесены записи в регистр.
Например, периодический регистр сведений «Цены товаров» может не только хранить информацию о том, какова цена на определенную номенклатуру сейчас, но и о том, как она изменялась в прошлом (или будет изменяться в будущем).
Особенность периодического регистра сведений:
Подчинение регистратору
Внесение изменений в регистр сведений может выполняться:
Какой именно режим записи будет использоваться данным регистром сведений указывается разработчиком в процессе создания прикладного решения:
Свойство «Режим записи»может быть в значении:
Использование режима записи «Подчинение регистратору» необходимо в случае, когда логика работы прикладного решения требует того, чтобы изменения, выполняемые в регистре сведений, были жестко связаны с документами, фиксирующими факты хозяйственной деятельности.
Уникальность записей регистра сведений
Система обеспечивает контроль уникальности записей, хранящихся в регистре сведений. Таким образом, в регистре сведений не может находиться двух одинаковых записей (с одинаковым ключом записи). Ключ записи формируется системой автоматически, на основании значений, содержащихся в полях записи, и зависит от вида регистра сведений.
В общем случае в формировании ключа записи будут участвовать значения регистратора, периода и значения измерений.
Таким образом, например, в непериодическом регистре сведений «Цены товаров» с независимым режимом записи не может существовать двух записей о розничной цене конфет ассорти. Точно так же, как в периодическом регистре сведений «Цены товаров», подчиненном регистратору, не может существовать двух записей о розничной цене конфет ассорти, внесенных одной и той же датой, одним и тем же документом «Изменение цен товаров».
Свойства измерения регистра сведений
Особое внимание следует обратить на флаги «Ведущее» и «Основной отбор» палитры свойств измерений регистра сведений.
Программная запись в регистр сведений 1С
Добавить новые записи в регистр сведений можно двумя способами:
Регистры сведений в 1С. Примеры программной работы
В статье рассмотрено описание и предназначение регистров сведений, а также примеры работы с регистрами сведений средствами встроенного языка 1С — создание и редактирование наборов записей, отдельных записей, работа с ключом записи.
Содержание
Регистры сведений в 1С 8
Что такое регистр сведений
Регистр сведений — это объект конфигурации, который предназначен для хранения произвольной информации в разрезе нескольких измерений. Например, можно хранить соответствие материально-ответственных лиц и складов, курсы валют или цену на товары. Можно представить регистр сведений как многомерную таблицу, где на каждом пересечении измерений хранятся значения, которые называются Ресурсы.
Помимо измерений и ресурсов, у регистров сведений могут быть определены реквизиты — вспомогательная информация, служащая для уточнения данных — например, ответственный пользователь, комментарий и т.п.
Значения в регистре сведений могут храниться не только в разрезах измерений, но также они могут быть развернуты во времени. В этом случае к записям добавляется стандартное измерение Период. Регистры с информацией, развернутой во времени, называются периодическими.
Периодические регистры сведений позволяют получить информацию о срезе наиболее ранних или наиболее поздних записей.
Строки в многомерной таблице регистра сведений называются записями. Уникальность записей регистра сведений определяется как комбинация измерений и периода. В случае, если регистр сведений не периодический, то период будет не заполнен, и уникальные записи будут отличаться по комбинации измерений. Платформа не допускает создания двух записей с одинаковым набором измерений и периодом. Измерения и период образуют т.н. составной ключ, и называются ключевыми полями.
Записи в регистр сведений могут вноситься как вручную, независимо одна от другой, так и при помощи документов, единым набором. Документ, которым вносится запись в регистр сведений, называется регистратором.
Свойства регистра сведений. Основные настройки
Основные свойства регистра сведений, уникальные только для этого объекта метаданных — это Периодичность и Режим записи. Рассмотрим создание и настройку регистра сведений на примере хранения тарифов работников.
Периодичность регистра сведений
Данное свойство отвечает за доступность стандартного реквизита Период. Периодичность может быть
В случае, если регистр сведений подчинен регистратору (см. ниже), становится доступным еще один вариант периода — по позиции регистратора.
Поле Период входит в составной ключ записи; можно добавлять записи с одинаковым составом измерений, но с разным периодом. Если периодичность — по позиции регистратора, то дата документа может совпадать с точностью до секунды — все равно это будут разные записи, т.к. в этом случае позиция регистратора будет определяться как момент времени (Дата + ссылка на документ). В зависимости от выбранной периодичности, период записи будет автоматически приводиться к началу периода в свойстве Периодичность. Например, если указана периодичность «В пределах дня», то к началу суток, если «В пределах месяца» — то соответственно к первому числу месяца, и т.д.
Режим записи регистра сведений 1С
Режим записи определяет, можно ли редактировать записи регистра сведений вручную, или они будут вноситься движениями документа-регистратора. Для регистров сведений с режимом записи «Независимый» можно указывать основной отбор для измерений. В случае, если при этом регистр сведений периодический, становится возможным указание флажка Основной отбор по периоду.
Что такое ведущее измерение и основной отбор?
Флаг Ведущее у измерения регистра сведений означает, то данная запись имеет смысл пока существует объект, ссылка на который хранится в данном измерении. Например, если удалить из базы данных сотрудника «Иванов Иван», то автоматически из регистра сведений будут удалены все записи по тарифам, где в измерении «Сотрудник» был указан Иванов Иван. Если данный флаг не установлен, то при удалении объекта, записи остались бы в регистре с битой ссылкой на него.
Также свойство «Ведущее» у измерения отвечает за построение пользовательского интерфейса. В карточке объекта, который является ведущим измерением, появляется гиперссылка для быстрого перехода к регистру сведений с отбором по текущему объекту.
Если регистр независимый, по этим измерениям будет устанавливаться регистрация изменений для плана обмена. Аналогично использование Основной отбор по периоду включает основной отбор для период для периодических регистров.
Проектирование структуры регистра сведений
Следует стараться избегать архитектурных решений, когда значение одного ресурса регистра сведений меняется значительно чаще чем значение другого. В этом случае целесообразно выделить такие ресурсы в отдельный регистр сведений. Это связано с тем, что в момент записи записываются все ресурсы, а не только измененный, что приводит к неоправданной нагрузке на СУБД.
Получение данных из нескольких ресурсов одного регистра сведений выполняется быстрее, чем получение одного ресурса из нескольких регистров
Следует внимательно отнестись к вопросу — какие поля многомерной таблицы должны быть измерениями, а какие — ресурсами. В зависимости от прикладной задачи, подход может быть различным.
Например, мы хотим знать, какие материально ответственные лица закреплены за тем или иным складским помещением. Если таких МОЛ более одного человека, то правильная архитектура регистра будет такая:
Измерения: МОЛ
Ресурсы: Склад
Если же нам требуется гарантировать, что у одного склада может быть только одно материально ответственное лицо, то состав регистра сведений будет следующий:
Регистр сведений
Регистры сведений — это прикладные объекты конфигурации. Они позволяют хранить в прикладном решении произвольные данные в разрезе нескольких измерений. Например, в регистре сведений можно хранить курсы валют в разрезе валют, или цены предприятия в разрезе номенклатуры и типа цен.
Структура
Информация в регистре сведений хранится в виде записей, каждая из которых содержит значения измерений и соответствующие им значения ресурсов.
Измерения регистра описывают разрезы, в которых хранится информация, а ресурсы регистра непосредственно содержат хранимую информацию. Например, для регистра сведений Цены товаров, который имеет следующую структуру:
записи, хранимые в базе данных, будут выглядеть следующим образом:
Вместе с каждой записью, находящейся в регистре сведений, можно хранить дополнительную произвольную информацию. Для этого служат реквизиты регистра сведений.
Периодичность
Одной из возможностей регистра сведений является хранение данных не только в разрезе указанных измерений, но и в разрезе времени. Разработчик может указать минимальную периодичность, с которой записи будут заноситься в регистр:
В этом случае к каждой записи регистра будет добавляться поле Период, хранящее дату, которой были внесены записи в регистр. Использование периодичности регистра сведений позволяет не просто хранить статические данные, но и отслеживать их изменение во времени.
Например, периодический регистр сведений Цены товаров может не только хранить информацию о том, какова цена на определенную номенклатуру сейчас, но и о том, как она изменялась в прошлом (или будет изменяться в будущем):
Подчинение регистратору
Внесение изменений в регистр сведений может выполняться как вручную, так и при помощи документов. В случае, когда изменения в регистр сведений вносятся с помощью документов, к каждой записи регистра добавляется специальное поле, в котором хранится информация о регистраторе — документе, с которым связана эта запись. В процессе создания прикладного решения разработчик указывает, какой именно режим записи будет использоваться данным регистром сведений:
Использование режима записи Подчинение регистратору может потребоваться в случае, когда логика работы прикладного решения требует того, чтобы изменения, выполняемые в регистре сведений, были жестко связаны с документами, фиксирующими факты хозяйственной деятельности.
Например, изменение цен компании может производиться только определенным кругом лиц, и каждое такое изменение должно сопровождаться «бумажным» документом. В этом случае можно использовать режим подчинения регистратору, при котором изменение цен может быть выполнено только специальным документом — Изменение цен товаров.
Уникальность записей
Система обеспечивает контроль уникальности записей, хранящихся в регистре сведений. Таким образом, в регистре сведений не может находиться двух одинаковых записей. Одинаковыми считаются записи, у которых совпадает ключ записи. Ключ записи формируется системой автоматически, на основании значений, содержащихся в полях записи, и зависит от вида регистра сведений.
В общем случае в формировании ключа записи будут участвовать значения регистратора, периода и значения измерений. Таким образом, например, в непериодическом регистре сведений Цены товаров с независимым режимом записи не может существовать двух записей о розничной цене конфет ассорти. Точно так же, как в периодическом регистре сведений Цены товаров, подчиненном регистратору, не может существовать двух записей о розничной цене конфет ассорти, внесенных одной и той же датой, одним и тем же документом Изменение цен товаров.
Формы
Для того чтобы пользователь мог просматривать и изменять данные, содержащиеся в регистре сведений, система поддерживает несколько форм представления регистра. Система может автоматически генерировать все нужные формы регистра. Наряду с этим разработчик имеет возможность создать собственные формы, которые система будет использовать вместо форм по умолчанию:
Форма списка
Для просмотра данных, содержащихся в регистре сведений, используется форма списка. Она позволяет выполнять навигацию по регистру, добавлять, помечать на удаление и удалять записи регистра. Форма списка позволяет выполнять сортировку и отбор отображаемой информации по нескольким критериям:
Форма записи
Для просмотра и изменения отдельных записей регистра сведений используется форма записи. Как правило, она представляет данные в удобном для восприятия и редактирования виде:
Регистр сведений в 1С 8.3
Независимый регистр сведений
Регистр сведений позволяет хранить некую информацию в разрезе измерений. Можно сказать, что это некий многомерный массив, где на пересечении каждого измерения хранится какое-то значение. Например, можно хранить цены на товары в разрезе товаров и типов цен:
Товар | Тип цен | Цена |
---|---|---|
Шкаф | Оптовая | 1000 |
Шкаф | Розничная | 2000 |
Тумбочка | Оптовая | 500 |
Тумбочка | Розничная | 1200 |
На закладке Данные можно настроить состав измерений и ресурсов регистра сведений. Ресурсы — это как раз та самая информация, которая хранится в разрезе измерений:
При сохранении конфигурации базы данных будет создана таблица с тремя колонками: Товар, ТипЦен и Цена.
В пользовательском режиме можно добавлять в регистр новые записи:
При этом нельзя добавить две записи с одинаковым значением измерений. Если попытаться добавить еще одну цену на шкаф для оптовой цены, то при записи будет выброшено исключение: «Запись с такими ключевыми полями существует!»:
Контроль уникальности записей выполняется при записи и при изменении состава измерений в конфигураторе. Если удалить у регистра сведений измерение Тип цен и попытаться обновить конфигурацию базы данных, то при реструктуризации базы данных будет выдана ошибка «Имеются записи с одинаковыми измерениями», потому что после удаления измерения Тип цен стало по две записи с товарами Шкаф и Тумбочка:
В свойствах измерений можно установить флаг Запрет незаполненных значений, тогда перед записью будет выполняться контроль заполнения данного измерения:
Если попытаться добавить запись с пустым товаром, то будет выброшено исключение «Запись не верна! Значение поля «Товар» не может быть пустым!»:
Флаг Ведущее у измерения регистра сведений означает, то данная запись имеет смысл пока существует элемент базы данных, ссылка на который хранится в данном измерении. Если удалить из базы данных товар Шкаф, то автоматически из регистр сведений будут удалены все записи, где в измерении Товар был указан Шкаф. Если бы данный флаг не был установлен, то записи остались бы в регистре с битой ссылкой.
А также в карточке товара появляется гиперссылка для быстрого перехода к регистру сведений с отбором по текущему товару:
Флаг Основной отбор используется при регистрации записей в плане обмена и будет рассмотрен в соответствующей главе.
Помимо измерений и ресурсов у регистра сведений могут быть реквизиты. Реквизиты используются для хранения дополнительных сведений. Они не входят в состав ключа записи регистра сведений. Для каждого реквизита в таблице базы данных будет создана отдельная колонка. По внутренней структуре реквизиты почти ничем не отличаются от ресурсов, кроме того, что реквизиты можно индексировать.
Регистр сведений, который был рассмотрен нами называется независимым, потому что в него можно добавлять и удалять записи вручную. У такого регистра на закладке Основные свойство режим записи равно Независимый:
Периодический регистр сведений
На закладке Основные есть свойство Периодичность. Если там выбрать значение отличное от Непериодический, то в таблицу регистра будет автоматически добавлено поле Период. Периодичность бывает:
Поле Период входит в ключ записи, поэтому теперь можно добавлять записи с одинаковым составом измерений, но с разным периодом. При этом период автоматически приводится к началу периода, указанного в свойстве Периодичность. То есть ли указать периодичность В пределах месяца и добавить запись с периодом 19 апреля 2021 года, то период будет автоматически преобразован в 1 апреля 2021 года. Поле период обязательно для заполнения, нельзя добавить запись с пустым периодом:
В первой и во второй строке совпадают значения измерений, но отличается период, поэтому такие записи были успешно добавлены в регистр сведений.
С помощью периодических регистров сведений можно хранить историю изменения ресурсов регистра.
Регистр сведений подчиненный регистратору
На закладке Основные в свойстве Режим записи можно установить значение Подчинение регистратору:
В этом случае в таблицу регистра будет добавлено еще три колонки:
В роли регистратора всегда выступает документ. Список возможных документов-регистраторов указывается на закладке Регистраторы. Если не указать ни один документ, то при сохранении конфигурации базы данных будет ошибка: «РегистрСведений.ЦеныНаТовары: Ни один из документов не является регистратором для регистра».
Создадим новый документ УстановкаЦенНаТовары и отметим его как регистратор:
Теперь нельзя вручную добавлять новые записи в регистр. Записи должны формироваться документами-регистраторами при проведении. Добавим в обработку проведения документа УстановкаЦенНаТовары следующий код: