- •7.1. Назначение
- •Регистры остатки и регистры оборотов
- •Регистры остатков
- •Регистры оборотов
- •Активность записей
- •7.2. Приемы программирования
- •Менеджер регистров накопления
- •Менеджер регистра накопления
- •Набор записей регистра накопления
- •Модуль набора записей
- •Выборка из регистра накопления
- •7.3. Формы регистра накопления
Регистры остатков
Рассмотрим в качестве примера отслеживание взаиморасчетов предприятия с покупателями ее продукции.
Для того, чтобы оперативно получать информацию о взаимной задолженности предприятия и покупателя, можно завести регистр Взаиморасчеты, в котором для каждого покупателя будет храниться сумма задолженности. При совершении хозяйственной операции состояние регистра будет соответствующим образом изменяться, каждый раз отражая текущее состояние взаиморасчетов. Таким образом, регистр Взаиморасчеты - это регистр остатков.
Регистры оборотов
Однако из регистра Взаиморасчеты нельзя быстро получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени. Можно проанализировать все движения, имеющие отношение к данному покупателю, и вычислить общую сумму закупок. Но когда необходимо получать эти сведения оперативно (например, по условиям договора при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ может не подойти.
В этом случае решением проблемы может быть использование регистра оборотов. В таком регистре - назовем его ОбъемЗакупок - в разрезе покупателей будет храниться информация об объеме закупок (об обороте покупателя). При создании регистра оборотов можно указывать, с какой периодичностью будет накапливаться информация: день, месяц и т.д.
Теперь, при совершении хозяйственных операций, необходимо будет добавлять запись не только в регистр Взаиморасчеты, но и в регистр ОбъемЗакупок. В этот регистр при совершении клиентом каждой покупки будет заноситься информация о сумме покупки. В результате в регистре будет постоянно накапливаться информация об общем объеме закупок клиента.
Но оборотный регистр дает не только ускорение получения данных за период. При добавлении еще одного измерения Товар, он сможет предоставлять принципиально новую информацию - обороты в разрезе товаров и контрагентов. Например, можно будет легко узнать, сколько конкретный контрагент закупил за период данного товара. Без оборотного регистра получение такой информации было бы очень затруднительно.
Активность записей
Активность записей регистра означает, что они будут использованы при подсчете итогов. Если записи сделать неактивными, то на итоги регистра накопления они влиять не будут. Позже можно включить активность записей, тогда они сразу повлияют на итоги регистра. При переборе записей регистра неактивные записи регистра также включаются в выборку.
7.2. Приемы программирования
Для работы с регистром накопления средствами встроенного языка применяются, следующие объекты:
РегистрыНакопленияМенеджер
Предоставляет доступ к объектам РегистрНакопленияМенеджер через свои свойства.
РегистрНакопленияМенеджер
Операции над регистром накопления, получение выборки, создание новых наборов записей, доступ к формам и макетам регистра накопления.
РегистрНакопленияНаборЗаписей
Обеспечивает операции над несколькими записями, их одновременное считывание и запись в базу данных.
РегистрНакопленияЗапись
Обеспечивает доступ к одной записи набора регистра накопления. Этот объект возвращается методами других объектов, например, методом Добавить у объекта РегистрНакопленияНаборЗаписей.
РегистрНакопленияВыборка
С помощью этого объекта можно организовать обход записей регистра накопления (перебор).
РегистрНакопленияСписок
Обеспечивает управление списком записей регистра накопления в форме в элементе управления ТабличноеПоле.
РегистрНакопленияКлючЗаписи
Этот объект нужен для идентификации записи в списке. Он используется для позиционирования в списке на конкретной записи регистра.
Объекты для работы с регистрами накопления взаимосвязаны друг с другом. Из одних объектов с помощью свойств и методов можно получить другие объекты. Графически эту взаимосвязь можно представить следующим образом:
Далее более подробно описаны типичные действия над регистром накопления с помощью этих объектов.
