В системе 1С:ERP управление предприятием бюджетные отчеты являются мощным инструментом для план-фактного анализа. Однако пользователи часто сталкиваются с тем, что привычные механизмы настройки отчетов (через "Изменить вариант" в системе компоновки данных) здесь не работают. Это связано с тем, что бюджетный отчет строится динамически на основе настроек справочника Виды бюджетов. Разберем подробно, как добавить отбор по Направлению деятельности в уже существующий отчет.
Для начала проанализируем, почему нельзя просто добавить поле в отборы, как в обычном бухгалтерском отчете. Типовой бюджетный отчет — это не классический отчет на СКД. Его структура, состав строк, колонок и доступных фильтров определяются в метаданных конкретного Вида бюджета. Когда мы открываем форму отчета, система обращается к программным модулям подсистемы бюджетирования, которые "собирают" отчет из кусочков: правил получения факта, настроек ячеек и заданных измерений. Поэтому и решение задачи всегда лежит в плоскости изменения настроек самого вида бюджета.
Это основной и наиболее правильный способ добавления сквозного отбора в шапку отчета. Рассмотрим последовательность действий:
Организация и Подразделение.Направление деятельности в список измерений отчета. Если нет, его необходимо добавить.Важное замечание: Чтобы отбор работал корректно, Направление деятельности должно быть указано как аналитика для всех статей бюджетов, входящих в этот отчет. Если хотя бы одна статья в структуре не поддерживает данную аналитику, система может вести себя некорректно при попытке наложить общий фильтр.
Если по каким-то причинам добавление через общие измерения невозможно (например, из-за сложной иерархии), мы можем воспользоваться механизмом группировки. Проанализируем этот путь подробнее:
Вида бюджета перейдем на закладку Структура бюджета.Направление деятельности и установить интересующее нас значение.Хотя этот способ менее удобен для конечного пользователя (так как для смены направления деятельности придется заходить в настройки структуры), он является надежным средством жесткого ограничения данных в отчете без программирования.
Выясним причину, по которой данные могут не фильтроваться, даже если отбор выведен в шапку. Часто проблема кроется в Правилах получения фактических данных. Разберем по шагам, что нужно проверить:
Направление деятельности.Если связь не настроена, система "не понимает", какое значение НД соответствует конкретной сумме факта, и фильтр в отчете просто будет игнорировать эти данные.
Если типовые настройки не позволяют добиться желаемого результата (например, нужно реализовать сложную логику исключения данных по НД), придется прибегнуть к расширению конфигурации. Поскольку бюджетный отчет не имеет фиксированной схемы компоновки, доработка производится через перехват процедур формирования данных.
Рассмотрим пример логики, которую можно внедрить через расширение в модуле менеджера или в специализированных классах формирования отчетов бюджетирования. Нам необходимо найти место, где формируется структура отборов перед отправкой запроса к базе данных. Примерный программный контекст будет выглядеть так:
// Пример логики добавления отбора в структуру параметров отчета
// Это схематичный код, который внедряется в процедуры формирования отчета
Процедура ПриДобавленииОтборовБюджетногоОтчета(СтруктураПараметров, ТекущийОтбор) Экспорт
Если СтруктураПараметров.Свойство("НаправлениеДеятельности") Тогда
// Добавляем условие в запрос или в коллекцию отборов СКД,
// которая используется "под капотом" генератора отчета
НовыйЭлемент = ТекущийОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НаправлениеДеятельности");
НовыйЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлемент.ПравоеЗначение = СтруктураПараметров.НаправлениеДеятельности;
НовыйЭлемент.Использование = Истина;
КонецЕсли;
КонецПроцедуры
Однако помните, что бюджетный отчет крайне чувствителен к изменениям в коде, так как он активно использует кэширование и временные таблицы. Любая ошибка в доработке может привести к значительному замедлению формирования отчета или выводу пустых строк.
Для настройки отбора по Направлению деятельности в типовом отчете 1С:ERP рекомендуем следующий алгоритм:
Вида бюджета и добавьте НД в измерения на закладке "Основные параметры".Такой подход позволит вам сохранить отчет на поддержке и избежать сложностей при обновлении конфигурации.