1С-Предприятие 8.0. Практическое пособие разработчика

       

Объекты встроенного языка для работы с регистрами сведений


*Заливкой выделен объект манипулирования данными

Узнай больше!

Про основные виды объектов встроенного языка можно прочитать в главе "Виды объектов встроенного языка, предназначенные для работы с данными прикладных объектов конфигурации" на странице 551.



РегистрСведенийМенеджерЗаписи.<имя>. Позволяет читать, записывать и удалять отдельную запись регистра сведений. Используется только для регистров сведений, не изменяемых [593] регистраторами, т.е. для которых в конфигураторе установлен режим записи "Независимый".

РегистрСведенийЗапись.<имя>. Предоставляет доступ к записи регистра сведений. Объект не создается непосредственно, а предоставляется другими объектами, связанными с регистром сведений. Например, данный объект представляет записи регистра в наборе записей.

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

Использование объектов:

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

//Прнмер: Получить текущую цену из периодического регистра сведений Цены

Элемент = Справочники.Номенклатура.НайтиПоКоду(4);

Отбор = Новый Структура("Номенклатура",Элемент);

ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(ТекущаяДата(), Отбор);

//  .<имя регистра сведений>

//  [<имя регистра сведений>]

//  Для Каждого ... Из ... Цикл ... КонецЦикла;

//Пример: Открыть форму списка регистра сведений Цены

ИмяРегистра= "Цены";

Форма = РегистрыСведений[ИмяРегистра].ПолучитьФормуСписка();

Форма.Открыть();[594]

//  СоздатьКлючЗаписи()

//Пример: Активизировать требуемую строку списка регистра сведений




СтруктураКлючевыхПолей = Новый Структура;

СтруктураКлючевыхПолей.Вставить("Период", Дата("20040331000000"));

СтруктураКлючевыхПолей.Вставить("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("0000006"));

ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока = РегистрыСведений.Цены.СоздатьКлючЗаписи(СтруктураКлючевыхПолей);



//  СоздатьНаборЗаписей()

//Пример: Показать номенклатуру, цена на которую была установлена в заданную

//дату и время

Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей();

Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина);

Набор.Прочитать();

Для Каждого ОчереднаяЗапись Из Набор Цикл

   Сообщить("Номенклатура = "+ОчереднаяЗапись.Номенклатура+", цена = "+ОчереднаяЗапись.Цена);

КонецЦикла;



//  СоздатьМенеджерЗаписи()

//Пример: Добавить новое значение цены в регистр Цены

Запись = РегистрыСведений.Цены.СоздатьМенеджерЗаписи();

Запись.Период = ТекущаяДата();

Запись.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("0000005");

Запись.Цена = 568;

Запись.Записать(); [595]



//  [<индекс элемента коллекции>]

//  Для ... По ... Цикл ... КонецЦикла;

//Пример: Показать номенклатуру, цена на которую была установлена в заданную

//дату и время

Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей();

Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина);

Набор.Прочитать();

Для сч_к = 0 По Набор.Количество() - 1 Цикл

   Сообщить("Номенклатура = "+Набор[сч_к].Номенклатура+", цена = "+Набор[сч_к].Цена);

КонецЦикла;



//  ПолучитьМенеджерЗаписи()

//Пример: Удалить все записи регистра сведений за текущий месяц

Выборка = РегистрыСведений.Цены.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));

Пока Выборка.Следующий() цикл

   Выборка.ПолучитьМенеджерЗаписи().Удалить();

КонецЦикла;



//  Выбрать()

//  ВыбратьПоРегистратору()

//Пример: Показать изменение цен на элемент номенклатуры в течение года

Отбор = Новый Структура("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("0000005"));

Выборка = РегистрыСведений.Цены.Выбрать(НачалоГода(ТекущаяДата()),ТекущаяДата(),Отбор);

Пока Выборка.Следующий() Цикл

   Сообщить("Дата = "+Выборка.Период+ ", цена = "+Выборка.Цена);

КонецЦикла; [596]

Содержание раздела