- •7.1. Назначение
- •Регистры остатки и регистры оборотов
- •Регистры остатков
- •Регистры оборотов
- •Активность записей
- •7.2. Приемы программирования
- •Менеджер регистров накопления
- •Менеджер регистра накопления
- •Набор записей регистра накопления
- •Модуль набора записей
- •Выборка из регистра накопления
- •7.3. Формы регистра накопления
Менеджер регистров накопления
Менеджер регистров накопления
Объект РегистрыНакопленияМенеджер через свои свойства предоставляет доступ к объектам РегистрНакопленияМенеджер.
Например:
РегОстатки = РегистрыНакопления.ОстаткиТоваров;
РегПродажи = РегистрыНакопления.Продажи;
Менеджер регистра накопления
Объект РегистрНакопленияМенеджер предоставляет доступ к действиям с конкретным регистром. Этот объект позволяет открыть нужную выборку с помощью методов Выбрать и ВыбратьПоРегистратору, создать новый набор записей, получить форму и макет регистра накопления.
Примеры:
РегОстатки = РегистрыНакопления.Остатки;
Выборка = РегОстатки.Выбрать();
МенеджерЗаписи = РегОстатки.СоздатьМенеджерЗаписи();
Набор = РегОстатки.СоздатьНаборЗаписей();
ФормаСписка = РегОстатки.ПолучитьФормуСписка();
ОсновнойМакет = РегОстатки.ПолучитьМакет("Основной");
Объект РегистрНакопленияМенеджер позволяет обращаться к итогам регистра. Под итогами регистра накопления понимаются сумма значений ресурсов по заданным измерениям. Для обращения к итогам обычно применяются методы Обороты и Остатки, а также запросы. При получении итогов можно не указывать одно или несколько измерений, тогда будут получены сводные итоги по ресурсам с учетом только указанных измерений.
Метод Остатки применим только для регистра остатков и не применим для регистра оборотов. Метод Обороты применим как для регистра оборотов, так и для регистра остатков.
Метод Остатки имеет следующий синтаксис:
Остатки(<Момент времени>, <Отбор>, <Измерения>, <Ресурсы>)
Ниже описаны параметры метода Остатки:
Момент времени
Параметр может содержать дату, момент времени или объект типа Граница. Он указывает, на какой момент времени нужно получить остатки регистра.
Отбор
Структура должна содержать ключи, соответствующие именам измерений регистра (в произвольном порядке). В качестве значений структуры передаются значения измерений, по которым следует осуществлять отбор.
Измерения
Содержит список измерений через запятую, для которых надо разворачивать обороты. Если параметр не указан, то остатки будут сформированы по всем измерениям.
Ресурсы
Содержит список ресурсов, для которых надо получить остатки. Если не указано, то будут рассчитаны остатки по всем ресурсам.
Метод Остатки возвращает таблицу значений, содержащую колонки с измерениями, указанными в параметре Измерения, и колонки с ресурсами, указанными в параметре Ресурсы.
Следующий пример извлекает из регистра СтоимостнойУчетНоменклатуры количество и стоимость выбранного товара:
РегМенеджер = РегистрыНакопления. СтоимостнойУчетНоменклатуры;
Отбор = Новый Структура("Номенклатура",ВыбТовар);
тзОстатки = РегМенеджер.Остатки(,Отбор);
Если тзОстатки.Количество() > 0 Тогда
КоличествоТовара = тзОстатки[0].Количество;
СтоимостьТовара = тзОстатки[0].Сумма;
КонецЕсли;
Метод Обороты имеет следующий синтаксис:
Обороты(<Начало периода>, <Конец периода>, <Отбор>, <Измерения>, <Ресурсы>)
Параметры Начало периода и Конец периода могут содержать дату, момент времени или объект типа Граница. Они указывают, за какой период нужно получить обороты. Остальные параметры аналогичны таким же параметрам метода Остатки.
Метод Обороты также возвращает таблицу значений, содержащую колонки с измерениями, указанными в параметре Измерения. Если производится обращение к регистру остатков, то названия колонок для ресурсов формируются следующим образом «<Имя ресурса>Приход» и «<Имя ресурса>Расход». При обращении к регистру оборотов названия колонок совпадают с именами ресурсов, как показано в следующем примере:
//обращение к регистру остатков
Отбор = Новый Структура("Номенклатура",ВыбТовар);
тзОбороты = РегистрыНакопления.УчетНоменклатуры.Обороты (,,Отбор);
Если тзОбороты.Количество () > 0 Тогда
ПриходТовара = тзОбороты[0].КоличествоПриход;
РасходТовара = тзОбороты[0].KoличecтвoPacxoд;
KoнeцEcли;
//обращение к регистру оборотов
Отбор = Новый Структура("Номенклатура",ВыбТовар);
тзОбороты = РегистрыНакопления.Продажи.Обороты(,,Отбор);
Если тзОбороты.Количество() > 0 Тогда
ОборотТовара = тзОбороты[0].Сумма;
КонецЕсли;
Менеджер регистра накопления позволяет пересчитывать итоги и устанавливать границу периода, по которую итоги будут считаться рассчитанными. Для этого предназначены следующие методы:
ПересчитатьИтоги
Позволяет осуществить полный пересчет итогов регистра накопления.
ПолучитьПериодРассчитанныхИтогов
Возвращает дату, по которую рассчитаны итоги регистра накопления.
УстановитьПериодРассчитанныхИтогов
Устанавливает месяц, на который рассчитывается итоги. Обратите внимание, что доступ к итогам регистра возможен всегда. Граница рассчитанных итогов влияет лишь на производительность получения итогов по данному регистру.
Актуальность итогов регистров можно также установить интерактивно, используя пункт меню «Операции -> Управление итогами»:
