1с8 Регистры сведений

1с8 Регистры сведений

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

Во-первых регистр сведений не имеет ссылочной структуры, то есть у его записей нет уникальной ссылки, попросту свойства "Ссылка", поэтому на запись регистра сведений нельзя ссылаться.

Во-вторых регистр сведений имеет назначаемый разработчиком состав ключевых реквизитов, называемых измерениями.

1с8 Регистры сведений

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

Во-первых регистр сведений не имеет ссылочной структуры, то есть у его записей нет уникальной ссылки, попросту свойства "Ссылка", поэтому на запись регистра сведений нельзя ссылаться.

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

В-третьих возможен режим записи в регистр сведений с подчинением регистратору.
То есть записи в регистр сведений будут выполняться документами и при отмене проведения этих документов в случае автоматического удаления движений эти записи будут удаляться.

И в-четвертых регистр сведений может быть периодическим.
То есть информация в нем может быть различной на разные моменты времени.
Классический пример – это курсы валют, сегодня курс один, завтра курс той же самой валюты может быть другой.
Именно поэтому информацию, меняющуюся во времени, нужно хранить в регистре сведений, поскольку методы работы с регистром сведений позволяют использовать агрегатные таблицы "Срез первых" и "Срез последних", в которых можно получить записи, действующие на заданный момент времени.

Ну и напоследок ответ на вопрос, как осуществлять чтение и запись регистра сведений.

Чтение регистра сведений лучше всего осуществлять с помощью запроса.
Работа с запросами является отдельной темой и в рамках данной статьи не рассматривается.
Однако можно читать записи и без запроса с помощью нескольких методов объекта "РегистрСведенийМенеджер".
Методы "Выбрать" и "ВыбратьПоРегистратору" позволяют получить выборку записей с учетом заданного отбора.
Метод "Получить" позволяет получить одну запись, для которой в параметрах метода передается отбор по всем ключевым реквизитам.
Методы "ПолучитьПервое" и "ПолучитьПоследнее" позволяют получить соответственно первую или последнюю запись периодического регистра сведений, удовлетворяющую заданному в параметрах метода отбору.
Методы "СрезПервых" и "СрезПоследних" позволяют получить соответственно срез первых или последних записей, удовлетворяющих заданному в параметрах метода отбору.
Кроме этих методов есть еще два метода, "СоздатьМенеджерЗаписи" и "СоздатьНаборЗаписей", с помощью которых можно создать соответсвенно объект "РегистрСведенийМенеджерЗаписи" или "РегистрСведенийНаборЗаписей", после чего задать значения всех или некоторых ключевых реквизитов и с помощью метода объекта "Прочитать" выполнить чтение в объект записей из базы, удовлетворяющих присвоенным значениям ключевых реквизитов.
В итоге получаем объект, содержащий нужные нам одну или несколько записей.

Запись же в регистр сведений производится с помощью уже упомянутых методов "СоздатьМенеджерЗаписи" и "СоздатьНаборЗаписей" объекта "РегистрСведенийМенеджер".
Можно либо создать объект, после чего заполнить реквизиты записи или список записей и записать объект с помощью метода "Записать".
Либо создать объект, задать значения всех или некоторых ключевых реквизитов, чтобы с помощью метода объекта "Прочитать" выполнить чтение в объект записей из базы, удовлетворяющих присвоенным значениям ключевых реквизитов, после чего выполнить метод "Очистить", после чего уже выполнить метод "Удалить" или заполнить реквизиты записи или список записей и записать объект с помощью метода "Записать".

 

 

Взято с http://www.kb.mista.ru/article.php?id=467