MyTetra Share
Делитесь знаниями!
1С 8.2: Регистры сведений
Время создания: 30.10.2012 09:53
Текстовые метки:
Раздел: Компьютер - Windows - 1С - Готовые решения - Регистры
Запись: xintrea/mytetra_syncro/master/base/1351576387lk7np5qsxb/text.html на raw.github.com

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

Регистр сведений по сути своей ближе всего к справочнику.

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

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

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

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

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

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

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

  • Методы "Выбрать" и "ВыбратьПоРегистратору" позволяют получить выборку записей с учетом заданного отбора.
  • Метод "Получить" позволяет получить одну запись, для которой в параметрах метода передается отбор по всем ключевым реквизитам.
  • Методы "ПолучитьПервое" и "ПолучитьПоследнее" позволяют получить соответственно первую или последнюю запись периодического регистра сведений, удовлетворяющую заданному в параметрах метода отбору.
  • Методы "СрезПервых" и "СрезПоследних" позволяют получить соответственно срез первых или последних записей, удовлетворяющих заданному в параметрах метода отбору.

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

В итоге получаем объект, содержащий нужные нам одну или несколько записей.

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

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования