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