Почему произвольное правило получения факта в бюджетировании 1С:ERP не выводит данные в отчет?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет IT и автоматизация бизнеса
← На главную

При настройке подсистемы бюджетирования в 1С:ERP Управление предприятием специалисты часто сталкиваются с ситуацией, когда произвольное правило получения фактических данных (настроенное через Схему компоновки данных) работает корректно в тестовой консоли («Результат работы правил»), но при этом Бюджетный отчет остается пустым. Это происходит из-за специфических требований подсистемы к структуре запроса СКД и разницы в механизмах исполнения кода. В этой статье мы подробно разберем, как правильно настроить сбор факта, чтобы данные попадали в отчетность.

Различие между оптимизированным и неоптимизированным методами

Проанализируем механику работы системы. В 1С:ERP существует два способа получения данных для бюджета:

  1. Неоптимизированный метод: используется в форме настройки правила при нажатии кнопки «Проверить правило» или «Результат работы». Он выполняет запрос практически «как есть», что позволяет увидеть цифры даже при наличии ошибок в оформлении схемы.
  2. Оптимизированный метод: используется непосредственно при формировании Бюджетного отчета или Экземпляра бюджета. Система «оборачивает» ваш запрос в дополнительные фильтры по периоду, сценарию, организации и другим измерениям. Если ваша схема СКД не соответствует жестким стандартам платформы, этот механизм выдает пустой результат.

Выясним причину: если в консоли данные есть, а в отчете нет — значит, ваша СКД не проходит проверку оптимизированного метода.

Требования к именам полей (Псевдонимы ресурсов)

Для того чтобы подсистема бюджетирования смогла сопоставить данные из вашей схемы с ячейками отчета, ресурсы в СКД должны иметь строго определенные псевдонимы. Рассмотрим обязательные поля:

Проанализируем пример правильного псевдонима в запросе:


ВЫБРАТЬ
    ПрочиеРасходыОбороты.СуммаУпрОборот КАК Сумма,
    ПрочиеРасходыОбороты.СтатьяРасходов КАК СтатьяРасходов,
    ПрочиеРасходыОбороты.Подразделение КАК Подразделение
ИЗ
    РегистрНакопления.ПрочиеРасходы.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПрочиеРасходыОбороты

Настройка параметров периода

Одной из самых частых ошибок является некорректная работа с параметрами &НачалоПериода и &КонецПериода. Бюджетный отчет передает эти параметры «снаружи». Если в вашей произвольной схеме вы создали свои параметры (например, &ДатаНач) или зафиксировали их значения, оптимизированный метод не сможет подставить нужные даты при формировании отчета за конкретный месяц или квартал.

Посмотрим на вкладку «Параметры» в СКД: убедитесь, что параметры периода доступны для ограничения и не имеют установленных галочек «Ограничение доступности», если это не требуется логикой. Также важно, чтобы тип данных параметров соответствовал типу Дата.

Соответствие аналитик (Мэппинг)

Даже если сумма получена, системе нужно знать, в какую строку отчета её положить. Для этого в настройке правила получения факта (на закладке «Заполнение аналитик») необходимо настроить связь между полями вашей СКД и аналитиками статьи бюджета. В случае использования нескольких правил получения данных для одной статьи в ERP 2.4 может возникнуть ошибка сопоставления, для исправления которой можно использовать расширение для исправления ошибки заполнения аналитик.

Разберем ситуацию: вы тянете данные из регистра Прочие расходы и хотите видеть их в разрезе Статей расходов.

  1. В схеме СКД выберите поле СтатьяРасходов.
  2. В правиле получения факта укажите, что Аналитика 1 статьи бюджета заполняется из поля СКД СтатьяРасходов.
  3. Если аналитика в бюджете имеет тип, отличный от типа в регистре, используйте приведение типов или сопоставление через дополнительные реквизиты.

Особенности регистра «Прочие расходы»

Поскольку в 1С:ERP версии 2.4 (и выше) данные по расходам могут разделяться на управленческий и регламентированный учет, важно убедиться, что вы обращаетесь к нужным ресурсам. Если в базе не ведется регламентированный учет, запрос должен обращаться к полю СуммаУпр. Если вы попытаетесь вытянуть СуммаРег, отчет будет пустым.

Также проанализируем настройки хозяйственных операций. Для того чтобы данные попали в бюджет, операция должна быть «отражена в бюджетировании». Хотя для произвольного правила это менее критично, чем для оперучета, проверьте, чтобы в схеме не было жестких фильтров по виду деятельности, если они не заданы в отчете.

Как проверить работу правила через «Бюджетную оборотку»

В подсистеме бюджетирования есть мощный инструмент диагностики — Бюджетная оборотная ведомость (или «Обороты по статьям бюджета»).

Рассмотрим порядок действий для проверки:

  1. Сформируйте бюджетную оборотку за интересующий период.
  2. Выберите нужный Сценарий (обычно «Фактические данные»).
  3. Если в оборотке цифры появились, значит, проблема в настройках самого Бюджетного отчета (структура строк/колонок, фильтры в виде отчета).
  4. Если в оборотке пусто — проблема в Правиле получения факта (СКД, псевдонимы или параметры).

Важный момент: После любого изменения в схеме СКД произвольного правила обязательно сохраняйте статью бюджета и обновляйте настройки источника данных. В некоторых случаях (особенно в версии 2.4.11) система может кэшировать структуру запроса, и изменения вступают в силу только после перезаписи элемента справочника Правила получения фактических данных.

Подведем итог: работоспособность правила в тестовой форме — это лишь 50% успеха. Основное внимание при разработке произвольных схем для бюджетирования следует уделять именованиям полей (Сумма, Количество), корректной обработке стандартных параметров периода и правильному мэппингу аналитик. Следуя этим шагам, вы обеспечите стабильное попадание фактических данных в ваши бюджетные формы.

← На главную