- •Назначение
- •6.2. Непериодические регистры сведений
- •6.3. Периодические регистры сведений
- •6.4. Реквизиты регистра сведений
- •6.5. Режим записи
- •6.6. Приемы программирования регистров сведений
- •Описание менеджера регистра сведений
- •Описание набора записей регистра сведений
- •Выборка из регистра сведений
- •Описание менеджера записи регистра сведений
- •Модуль набора записей
- •6.4. Формы регистра сведений
Модуль набора записей
У набора записей регистра есть собственный модуль, который открывается из окна редактирования свойств регистра.
Можно считать, что модуль набора записей является аналогом модуля любого другого прикладного объекта, например, модуля справочника или модуля документа.
В модуле набора записей регистра могут располагаться процедуры-обработчики событий ПередЗаписью и ПриЗаписи:
ПередЗаписью
Это событие возникает перед записью набора регистра сведений. В процедуре-обработчике можно проверить набор записей на наличие ошибок и отказаться от записи.
ПриЗаписи
Данное событие возникает после записи набора в информационную базу, но до окончания транзакции. В обработчике события также можно отказаться от записи набора.
Процедура ПриЗаписи(Отказ, Замещение)
// Вставить содержимое обработчика.
КонецПроцедуры
Выборка из регистра сведений
Объект РегистрСведенийВыборка предназначен для динамического обхода записей регистра сведений. При этом записи считываются из базы данных порциями по мере выборки. Такая схема рационально использует память и позволяет перебрать множество записей регистра, например:
Выборка = РегистрыСведений.КурсыВалют.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(СокрЛП(Выборка.Валюта) + " " + СокрЛП(
Выборка. Период) + " " + СокрЛП(Выборка.Курс));
КонецЦикла;
Выборку можно ограничить только нужными записями, используя параметры метода Выбрать.
Синтаксис метода Выбрать следующий:
• Для непериодического регистра сведений:
Выбрать ( <0тбор>, <Порядок>)
• Для периодического регистра сведений:
Выбрать{<Начало интервала>, <Конец интервала>, <0тбор>, <Порядок>)
Параметр Отбор - это структура только с одним элементом, которая задает фильтр по полю. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться измерения, для которых в Конфигураторе задан признак индексирования или которые являются ведущими.
Параметры Начало интервала и Конец интервала позволяют задать границы интервала и могут иметь тип «дата», МоментВремени или Граница.
Приведем пример выборки записей периодического регистра сведений за определенный период по заданной валюте:
Нач = Новый МоментВремени(ВыбДатаВремяНачала);
Кон = Новый Граница(ВыбДатаВремяОкончания,ВидГраницы.Включая);
Отбор = Новый Структура("Валюта", ВыбВалюта);
Выборка = РегистрыСведений.КурсыВалют.Выбрать(Нач,Кон,Отбор);
Пока Выборка.Следующий() Цикл
Сообщить (СокрЛП(Выборка.Валюта) + " " + СокрЛП(Выборка.Период) + " " +
СокрЛП(Выборка.Курс));
КонецЦикла;
Описание менеджера записи регистра сведений
Для операций над одной записью регистра сведений применяется объект РегистрСведенийМенеджерЗаписи. Этот объект существует только у независимого регистра сведений, т.е. не подчиненного регистратору.
Например, следующая программа удаляет безвозвратно все записи из регистра сведений КурсыВалютРасчетаЗарплаты:
Выборка = РегистрыСведений.КурсыВалютРасчетаЗарплаты.Выбрать();
Пока Выборка.Следующий() Цикл
МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи();
МенеджерЗаписи.Удалить();
КонецЦикла;
