Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦОО_ИСБУ_Лек1.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
374.27 Кб
Скачать

Описание набора записей регистра сведений

Набор записей позволяет оперировать сразу несколькими запися­ми регистра. Набор записей можно целиком прочитать из базы данных, добавить в него записи или изменить их, целиком запи­сать в базу данных. Это основной способ программного добавления и редакти­рования записей регистра сведений.

У документов есть свойство Движения, которое предоставляет доступ к наборам записей этого документа по каждому регистру. Как правило, при проведении документов сначала добавляются записи в набор, а затем набор записывается в базу данных.

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

Пример:

//создадим новый пустой набор записей, действующий на весь регистр

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

//установим отбор по дате и валюте

//если этого не сделать, то весь регистр

//будет переписан новым набором

Набор.Отбор.Валюта.Значение = ВыбВалюта;

Набор.Отбор.Период.Значение = ВыбДата;

//признак использования элемента отбора в фильтре. Если свойство //имеет значение Истина, то будет выполняться фильтрация по данному //элементу отбора, иначе элемент отбора не будет участвовать в //фильтрации.

Набор.Отбор.Валюта.Использование = Истина;

Набор.Отбор.Период.Использование = Истина;

//добавим запись в набор (не в базу данных)

НовЗапись = Набор.Добавить();

НовЗались.Валюта = ВыбВалюта;

НовЗапись.Период = ВыбДата;

НовЗапись.Курс = НовыйКурс;

//запишем набор в базу данных

//записи по заданному отбору будут переписаны

Набор.Записать(Истина);

Замечание. Если отбор в наборе записей не установлен, то та­кой набор перепишет весь регистр. Чтобы этого не произошло, необходимо установить отбор по измерениям регистра, а для пе­риодических регистров дополнительно - по полю Период, если же регистр имеет периодичность «По позиции регистратора», то еще и по полю Регистратор. При записи набора с параметром Истина сначала удаляются все записи с заданным отбором, а за­тем на их место записываются новые.

Через набор записей можно обращаться к уже существующим за­писям регистра сведений. Для этого нужно установить свойство Отбор и прочитать записи из базы данных.

Например:

//создадим новый не пустой набор записей

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

//установим условие отбора по дате

Набор.Отбор.Период.Значение = ВыбДата;

Набор.Отбор.Период.Использование = Истина;

//прочитаем записи из базы данных

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

Если НЕ Набор.Выбран() Тогда

Сообщить("Набор не был прочитан");

КонецЕсли;

//1-й вариант обхода записей набора

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

Сообщить(СокрЛП(запись.Валюта) + " " + СокрЛП(запись.Курс));

КонецЦикла;

//2-й вариант обхода записей набора

//индексация записей в наборе начинается с 0

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

запись = Набор[н];

Сообщить(СокрЛП(запись.Валюта) + " " + СокрЛП(запись.Курс));

КонецЦикла;

Записи набора можно выгружать в таблицу значений с помощью метода Выгрузить или, наоборот, загружать записи в набор из таблицы значений с помощью метода Загрузить:

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

тзЗаписи = Набор.Выгрузить();

Набор.3агрузить(тз3аписи);

Набор.Записать();

При выгрузке структура таблицы значений полностью соответст­вует структуре набора. При загрузке загружаются только те ко­лонки, имена которых в наборе и таблице значений совпадают.

Можно выгружать в массив и загружать из массива только одну колонку набора записей, для чего предназначены методы ВыгрузитьКолонку и ЗагрузитьКолонку. Выгружаются и загружаются записи, имеющие тот же индекс, что и элементы массива (индек­сация записей набора и элементов массива начинается с 0).

МассивКурсов = Набор.ВыгрузитьКолонку("Курс");

Набор.ЗагрузитьКолонку(МассивКурсов,"Курс");

Для удаления записей из набора существует два метода: Удалить и Очистить. Первый метод удаляет запись с заданным индексом, хотя в качестве параметра можно передавать и саму запись (объ­ект типа РегистрСведенийЗапись). Второй метод полностью очи­щает набор, удаляя все записи. Обратите внимание, что записи удаляются из набора, а не из регистра сведений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]