Объект конфигурации: регистр сведений. Измерения, ресурсы, реквизиты.

Регистр сведений – прикладной объект конфигурации, предназначенный для хранения данных, развёрнутых по определённой совокупности измерений, и, при необходимости, развернутых по времени.

Одна из основных задач, решаемых регистром сведений – хранение истории изменения информации.

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

Ресурсы – подчинённые объекты конфигурации, для учёта которых и создаётся регистр.

Регистр сведений только с ресурсом эквивалентен константе. В такой регистр можно занести только одну запись.

Измерение – подчинённый объект конфигурации, в разрезе которого, учитываются данные ресурсов (Пример: регистр сведений Цены с ресурсом цена и измерением номенклатура). Можно указать несколько значений ресурса, соответствующих различным значениям измерения. С точки зрения базы данных измерения являются ключевыми полями.

Хранение истории изменения данных достигается за счёт установки регистру сведений свойства периодичности. Это приводит к появлению у регистра системного изменения период с типом дата. Таким образом, информация хранится в разрезе дата/время.

Каждая запись в периодическом регистре сведений устанавливает новое значение ресурсов по определённой совокупности измерений.

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

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

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

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

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

Пример:

Исходная таблица:

Объект конфигурации: регистр сведений. Измерения, ресурсы, реквизиты. - student2.ru

Перед нами стоит задача получить записи с наименьшей датой в 2013 году, когда номенклатура стоила дороже 2000.

Запрос.Текст = "

|ВЫБРАТЬ

| ЦеныНоменклатурыСрезПервых.Период,

| ЦеныНоменклатурыСрезПервых.Номенклатура,

| ЦеныНоменклатурыСрезПервых.Цена

|ИЗ

| РегистрСведений.ЦеныНоменклатуры.СрезПервых(ДАТАВРЕМЯ(2013, 1, 1), Цена > 2000)

| КАК ЦеныНоменклатурыСрезПервых";

Задача будет успешно решена

Объект конфигурации: регистр сведений. Измерения, ресурсы, реквизиты. - student2.ru

но если фильтр по цене перенести в секцию ГДЕ:

Запрос.Текст="|ВЫБРАТЬ| ЦеныНоменклатурыСрезПервых.Период,| ЦеныНоменклатурыСрезПервых.Номенклатура,| ЦеныНоменклатурыСрезПервых.Цена|ИЗ<| РегистрСведений.ЦеныНоменклатуры.СрезПервых(ДАТАВРЕМЯ(2013, 1, 1), ) КАК| ЦеныНоменклатурыСрезПервых|ГДЕ| ЦеныНоменклатурыСрезПервых.Цена > 2000";

В результате получим только одну запись [02.01.2013 Кресло 5200]. Так происходит потому, что к реальной таблице регистра сведений сначала был применен фильтр на срез первых

Наши рекомендации