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

Набор записей регистра накопления

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

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

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

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

Набор.Отбор.Регистратор.Значение = ВыбДок;

Движ = Набор.Добавить();

Движ.Регистратор = ВыбДок;

Движ.Номенклатура = ВыбТовар;

Движ.Контрагент = ВыбКонтрагент;

Движ.Период = РабочаяДата;

Движ.Количество = Количество;

Движ.Сумма = Сумма;

Набор.Записать{Ложь); //добавить к набору записей по документу

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

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

Например:

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

Набор.Отбор.Регистратор.Значение = ВыбДок;

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

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

Сообщить(движ.Сумма);

КонецЦикла;

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

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

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

…

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

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

Можно выгружать в массив и загружать из массива только одну колонку набора записей, для чего предназначены методы ВыгрузитьКолонку и ЗагрузитъКолонку:

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

…

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

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

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

Для чтения записей или итогов регистра, кроме методов Выбрать, Остатки и Обороты, могут быть использованы запросы.

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