Для реализации методики расчета себестоимости, описываемой в подборке статей с началом названия «Расчет себестоимости», требуется хороший отбор проводок.
Поставим задачу так:
нужно выполнить запрос с параметрами по дебету и кредиту для всех измерений узла (понятие узла дано в статье Расчет себестоимости. Методология) с возможностью использовать конструкцию ИЛИ и все виды сравнения (В, В Иерархии, Равно, Содержит и так далее) а также конструкцию НЕ для всех видов сравнения. Другими словами, создать отбор в интерактивном режиме почти не уступающий отбору в одной таблице (регистр бухгалтерии), написанному на языке SQL.
Отличие от универсального конструктора запросов – наш конструктор предметно-ориентированный.
-
Устанавливаем параметры запроса из справочников
-
Используем корреспонденцию объектов
-
Используем конструкцию ИЛИ
Ниже пример простого запроса. Указываем параметры для отбора с исключением некоторых измерений.

Услуги собственных подразделений и Услуги сторонних организаций входят в группу Наши НГ (номенклатурные группы).
В отбор попадут все НГ, входящие в группу справочника Наши НГ, кроме этих двух.
Два простых запроса с корреспонденцией:

Рис.1

Сложный запрос:

Это набор простых запросов по условию ИЛИ. Каждый простой запрос имеет свой номер и цвет.
На рисунке выше в отбор идет Дебетовый оборот по счету 20 и
Подразделениям Леспромхоз и Тепловой район (пометили номером - 1).
А также дебетовый оборот счета 23 и Котельной – этот отбор имеет номер 2.
Рассматриваемый в этой статье отбор формирует условие Где запроса.
Конечно, текст запроса должен сочетаться с конструкцией Где. Например, нельзя, чтобы в тексте в конструкции Выбрать были Счет и КорСчет, а в Где используем Кт и Дт вместо Кор.
На данный момент для БП кроме счетов настроено использование справочников:
-
Подразделения
-
Номенклатурные группы
-
Статьи затрат
-
Основные средства
-
Склады
-
Номенклатура
В простом запросе одновременно могут использоваться все справочники со всеми видами сравнения:

Количество простых запросов в сложном - через конструкцию ИЛИ – неограниченно.
Отборы реализованы на классе Параметры запросов

Форма создания отбора – заполняется ТЧ для каждого справочника программно, поэтому добавить другие справочники не сложно.
В настоящее время использованы справочники для расчета себестоимости (субконто счетов 20-29, 44, 43).
Методы заложены в родительском классе. Они наследуются.

Задание параметров отбора сохраняются в Объекте (чаще всего это документы) в следующем виде:

Так выглядит ТЧ документа, созданная на форме Рис.1
Параметры хранятся в документе и при необходимости участвуют в запросе. То есть строки этой ТЧ трансформируются в конструкцию Где запроса.
Пример.

Документ Распределение косвенных затрат. Остаток на счете 25, подразделение Автотранспортный цех и НГ – Техник АТЦ равен 51 072,36.
Нужно распределить пропорционально БР Трудовые.
Ниже список всей БР - Трудовые

Нам нужно сделать отбор. Куда будем распределять остаток на счете 25, подразделение Автотранспортный цех и НГ – Техник АТЦ.
По учетной политике нужно распределить на счета 23, 20 Автотранспортного цеха.

Колонка Отметка – задает участие в отборе.

Согласно заданному отбору заполняется ТЧ документа, рассчитываются доли и суммы проводок.
Мы рассмотрели отбор (фильтр) для полной БР – Трудовые.
Но сама БР Трудовые рассчитывается тоже с помощью отбора, параметры которого указаны в справочнике баз распределения.


Текст запроса для рассматриваемого метода хранится в классе.
Для этого элемента справочника БР – Трудовые указан класс Трудовые.
Метод этого класса – пустой, он наследуется от родителя Затраты.
Вступайте в нашу телеграмм-группу Инфостарт