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

       

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


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

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

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



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

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

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

//  РегистрыНакопления

//Пример: Открыть форму списка регистра ОстаткиМатериалов

Форма = РегистрыНакопления.ОстаткиМатериалов.ПолучитьФормуСписка();

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

//  .<имя регистра накопления>

//  [<имя регистра накопления >]

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

//Пример: Рассчитать итоги регистра ОстаткиМатериалов на указанную дату

УказаннаяДата = ЗаданнаяДата;

ИмяРегистра = "ОстаткиМатериалов";

РегистрыНакопления[ИмяРегистра].УстановитьПериодРассчитанныхИтогов(УказаннаяДата);

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

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

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

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

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

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






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

//Пример: Получить движения документа

НужныйДокумент = Документы.ПриходнаяНакладная.НайтиПоНомеру(4);

Движения = РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();

Движения.Отбор.Регистратор.Значение = НужныйДокумент;

Движения.Прочитать();



//  Выбрать()

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

//Пример: Выбрать все записи регистра ОстаткиМатериалов за текущий месяц

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

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

   Сообщить("Регистратор: " + Выборка.Регистратор + " Материал: " + Выборка.Материал + " Кол-во: " + Выборка.Количество);

КонецЦикла;



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

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

//Пример: Получить движения документа

НужныйДокумент = Документы.ПриходнаяНакладная.НайтиПоНомеру(4);

Движения = РегистрыНакопления.ОстаткиМатериалов.СоздатьНаборЗаписей();

Движения.Отбор.Регистратор.Значение = НужныйДокумент;

Движения.Прочитать();

Для Каждого ОчередноеДвижение Из Движения Цикл

   //алгоритм обработки движений

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

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