Регистры сведений
Регистр сведений является прикладным объектом и предназначен для хранения информации, развернутой по комбинации измерений.
В базе данных часто требуется хранить не только текущие сведения, а "помнить" историю изменения значений. Для решения подобных задач создается периодический регистр сведений. Система автоматически добавляет в периодический регистр сведений системное измерение "Период" типа "Дата", что позволяет получать не только текущие сведения об объекте, но также и сведения на определенный момент времени.
Тип хранимой информации в ресурсах регистра сведений может быть как один из примитивных типов данных (число, строка, дата, булево), так и ссылка на объект базы данных (элемент справочника, документ, значение перечисления и т.д.), а также ХранилищеЗначений и составной тип данных.
Регистр сведений хранит информацию по комбинации измерений, причем каждая запись однозначно определяется комбинацией измерений. Если в регистр добавить запись с точно такими же измерениями, как уже существующая, то новая запись перезапишет прежнюю, или будет выдано сообщение об ошибке, в зависимости от варианта записи.
Некоторые измерения регистра можно назначить ведущими, что возможно только для измерений, которые являются ссылками на объекты базы данных. Это нужно сделать, если записи регистра не имеют смысла без данного объекта. Тогда удаление объекта базы данных приведет к автоматическому удалению записи регистра сведений, ссылающихся на этот объект.
Порядок расстановки измерений регистра сведений имеет важное значение. Измерения, к которым необходим быстрый доступ, следует располагать в начале списка измерений.
При создании регистра сведений, кроме измерений и ресурсов, можно определить реквизиты регистра. Реквизиты содержат сопроводительную информацию для каждой записи регистра.
В качестве практического задания для хранения истории цен реализации, необходимо разработать регистр сведений, позволяющий хранить периодическую информацию.
Для создания нового регистра сведений, используйте пункт меню "Добавить", вызываемый правой кнопкой мыши на дереве "Регистры сведений".
Введите имя и синоним (пользовательское представление) регистра сведений. А также укажите периодичность и режим записи.
На закладке "Данные" определите состав измерений и ресурсов регистра сведений. Нам будет необходимо одно измерение "Материал" типа "СправочникСсылка.Материалы" и один ресурс "Цена" типа Число формата 12.2.
Создадим форму списка для данного регистра.
Теперь вернемся к нашему ранее созданному документу "Приказ об изменении цен" и на закладке движения выберем регистр сведений "ЦеныРеализации".
С помощью конструктора движений, построим процедуру обработки проведения.
После окончания работы конструктора, вы увидите следующий, сформированный конструктором, код модуля обработки проведения документа:
Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаМатериалы Из Материалы Цикл // регистр ПродажныеЦены Движение = Движения.ПродажныеЦены.Добавить(); Движение.Период = Дата; Движение.Материал = ТекСтрокаМатериалы.Материал; Движение.Цена = ТекСтрокаМатериалы.Цена; КонецЦикла; // записываем движения регистров Движения.ПродажныеЦены.Записать(); //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры