3.1.1. Экстакторы

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

Параметры title и unit имеют значение, аналогичные обычным позициям. В параметр extractor может быть подставлен один из перечисленных ниже макросов. Вместо <month> могут быть подставлены значения $month, $nextmonth, $prevmonth, $prev2month, $prev3month, означающие в данном контексте месяц, за который производится выборка. Вместо <mid> подставляется код экземпляра соответствующего модуля.

KERNEL_CHARGES(<month>, <коды типов расх>) - расходы договора в каком-то месяце. Тип расхода становится названием позиции, количество расходов данного типа - количеством. При не указании кодов типов расходов выбираются все типы расходов;
KERNEL_CHARGES_EXCEPT(<month>, <коды типов расходов, которые исключаются>) - аналогичен предыдущему, но указываются коды типов расходов, которые не выбираются;
NPAY_SERVICES(<mid>, <month>, <коды услуг>) - начисления абонплат в каком-то месяце. Название услуги абонплаты становится названием позиции, количество абонплат данного типа, установленных в договоре на данный месяц - количеством. При не указании кодов услуг выбираются все начисленные на договор абонплаты;
NPAY_SERVICES_EXCEPT(<mid>, <month>, <коды услуг, которые исключаются>) - аналогичен предыдущему, но указываются коды услуг, которые не выбираются;
RSCM_SERVICES(<mid>, <month>, <коды услуг>) - начисления по услугам RSCM в каком-то месяце. Название услуги RSCM становится названием позиции, количество услуги - количеством оказанной услуги . Единица измерения услуги - единица измерения счета При не указании кодов услуг выбираются все услуги RSCM оказанные для данного договора;
RSCM_SERVICES_EXCEPT(<mid>, <month>, <коды услуг, которые исключаются>) - аналогичен предыдущему, но указываются коды услуг, которые не выбираются;
EXT-экстракторы (KERNEL_CHARGES_EXT, KERNEL_CHARGES_EXT_EXCEPT, NPAY_SERVICES_EXT, NPAY_SERVICES_EXT_EXCEPT и т.д.) - расширенные (EXTended) экстракторы, которые в отдельную позицию выделяют каждый расход (для ядра) и каждую услугу (для модулей), даже если они имею одинаковый тип (код). Аргументы для экстрактора те же, что и для аналогичных нерасширенных.

Позиция экстрактора "распадается" в момент генерации документа на множество позиций в зависимости от реального количества начислений на договоре.

В unit указывается единица измерения - простая строка.

Пример 9.3. Пример экстрактора

Получение всех расходов за месяц:

bill.pos.3.title=Расходы
bill.pos.3.name=Расход
bill.pos.3.extractor=KERNEL_CHARGES($month)