РегистрСведенийМенеджерЗаписи.<имя>. Позволяет читать, записывать и удалять отдельную запись регистра сведений. Используется только для регистров сведений, не изменяемых регистраторами, т. е. для которых в конфигураторе установлен режим записи Независимый.
РегистрСведенийЗапись.<имя>. Предоставляет доступ к записи регистра сведений. Объект не создается непосредственно, а предоставляется другими объектами, связанными с регистром сведений. Например, данный объект представляет записи регистра в наборе записей.
РегистрСведенийКлючЗаписи.<имя>. Представляет собой набор значений, однозначно идентифицирующих запись регистра. Объект используется в тех случаях, когда необходимо сослаться на определенную запись. Например, он выступает в качестве значения свойства ТекущаяСтрока табличного поля, отображающего список записей регистра.
Использование объектов:
// РегистрыСведений
// Пример: Получить текущую цену из периодического регистра сведений Цены
Элемент = Справочники.Номенклатура.НайтиПоКоду(4);
Отбор = Новый Структура("Номенклатура",Элемент);
ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(ТекущаяДата(), Отбор);
// .<имя регистра сведений>
// [<имя регистра сведений>]
// Для Каждого … Из … Цикл … КонецЦикла;
// Пример: Открыть форму списка регистра сведений Цены
ИмяРегистра = "Цены";
Форма = РегистрыСведений[ИмяРегистра].ПолучитьФормуСписка();
Форма.Открыть();
// СоздатьКлючЗаписи()
// Пример: Активизировать требуемую строку списка регистра сведений
СтруктураКлючевыхПолей = Новый Структура;
СтруктураКлючевыхПолей.Вставить("Период", Дата("20040331000000"));
СтруктураКлючевыхПолей.Вставить("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("0000006"));
ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока = РегистрыСведений.Цены.СоздатьКлючЗаписи(СтруктураКлючевыхПолей);
// СоздатьНаборЗаписей()
// Пример: Показать номенклатуру, цена на которую была установлена в заданную дату и время
Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей();
Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина);
Набор.Прочитать();
Для Каждого ОчереднаяЗапись Из Набор Цикл
Сообщить("Номенклатура = " + ОчереднаяЗапись.Номенклатура + ", цена = " + ОчереднаяЗапись.Цена);
КонецЦикла;
// СоздатьМенеджерЗаписи()
// Пример: Добавить новое значение цены в регистр Цены
Запись = РегистрыСведений.Цены.СоздатьМенеджерЗаписи();
Запись.Период = ТекущаяДата();
Запись.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("0000005");
Запись.Цена = 568;
Запись.Записать();
// [<индекс элемента коллекции>]
// Для Каждого … Из … Цикл … КонецЦикла;
// Пример: Показать номенклатуру, цена на которую была установлена в заданную дату и время
Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей();
Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина);
Набор.Прочитать();
Для Каждого ОчереднаяЗапись Из Набор Цикл
Сообщить("Номенклатура = " + ОчереднаяЗапись.Номенклатура + ", цена = " + ОчереднаяЗапись.Цена);
КонецЦикла;
// ПолучитьМенеджерЗаписи()
// Пример: Удалить все записи регистра сведений за текущий месяц
Выборка = РегистрыСведений.Цены.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));
Пока Выборка.Следующий() цикл
Выборка.ПолучитьМенеджерЗначения().Удалить();
КонецЦикла;
// Выбрать()
// ВыбратьПоРегистратору()
// Пример: Показать изменение цен на элемент номенклатуры в течение года
Отбор = Новый Структура("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("0000005"));
Выборка = РегистрыСведений.Цены.Выбрать(НачалоГода(ТекущаяДата()),ТекущаяДата(),Отбор);
Пока Выборка.Следующий() Цикл
Сообщить("Дата = " + Выборка.Период + ", цена = " + Выборка.Цена);
КонецЦикла;
Работа с формой записи регистра сведений осуществляется при помощи объекта РегистрСведенийМенеджерЗаписи.<имя>, который, в свою очередь, использует объект РегистрСведенийНаборЗаписей.<имя>.
Особенности внутренней реализации объекта РегистрСведенийМенеджерЗаписи.<имя> таковы, что в случае запоминания существующей записи регистра сведений обработчики события ПередЗаписью() и ПриЗаписи() модуля набора записей будут вызваны дважды: сначала для «старого» набора записей (с количеством записей 0) и затем для «нового» (с количеством записей 1).
|