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

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

В системе 1С:ERP подсистема бюджетирования построена как гибкий конструктор. В отличие от плановых данных, которые фиксируются напрямую в регистрах при проведении бюджетных экземпляров, получение фактических данных требует понимания архитектуры связей между оперативными регистрами и специализированным регистром накопления бюджетирования. Рассмотрим подробно, как извлечь факт по статьям бюджетов и на какие ресурсы следует опираться.

1. Ключевой целевой регистр: Фактические данные бюджетирования

Основным ресурсом, в котором аккумулируется вся «признанная» системой фактическая информация для нужд бюджетирования, является регистр накопления ФактическиеДанныеБюджетирования. Проанализируем его структуру: в отличие от регистра ОборотыБюджетов, который чаще всего хранит плановые значения, именно в ФактическиеДанныеБюджетирования стекаются данные из всех контуров учета (оперативного, регламентированного, международного).

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

2. Механизм трансляции: Правила получения фактических данных

Разберем процесс формирования записей в целевом регистре. Чтобы данные попали в факт бюджета, для каждой СтатьиБюджетов должны быть настроены «Правила получения фактических данных». Выясним, что именно указывается в этих правилах:

  1. Раздел источника данных: Мы можем выбрать, откуда забирать цифры — из оперативного учета (самый оперативный вариант), из бухгалтерского учета (хозрасчетный план счетов) или из МФУ.
  2. Схема компоновки данных (СКД): Система предлагает предопределенные шаблоны, такие как ВыручкаИСебестоимость, ДвиженияДенежныхСредств, РасчетыСКлиентами. Также существует возможность создать произвольный запрос на СКД к любым таблицам базы данных.
  3. Настройка смещения: Позволяет учитывать данные сдвигом по периоду, если это необходимо для сопоставления.

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

3. Оперативные регистры — первичные источники данных

Зачастую программисту требуется понять, откуда именно система «черпает» информацию до того, как она попадет в бюджет. Рассмотрим основные регистры накопления, которые выступают источниками для СКД правил получения факта:

4. Роль справочника Хозяйственные операции

Как отмечалось в обсуждении на форуме, справочник ХозяйственныеОперации играет критическую роль в фильтрации данных. В настройках правил получения факта почти всегда указывается фильтр по конкретным операциям. Рассмотрим пример: для статьи бюджета «Поступление оплаты от покупателей» источником будет регистр денежных средств, но фильтрация будет идти строго по хозяйственной операции ПоступлениеОплатыОтКлиента. Если при разработке запроса не учитывать этот фильтр, данные бюджета не сойдутся с данными оперативного контура.

5. Режимы отражения данных: Online и Offline

Выясним причину, по которой данные могут отсутствовать в регистре ФактическиеДанныеБюджетирования, даже если правила настроены верно. В настройках параметров бюджетирования существует два режима:

  1. On-line отражение: Записи в регистр факта создаются в момент проведения первичного документа (например, «Реализация товаров и услуг»). Это создает дополнительную нагрузку на систему, но дает мгновенный результат.
  2. Off-line отражение: Данные попадают в бюджет только после запуска регламентного задания или использования обработки Отражение фактических данных бюджетирования. Если вы пишете запрос к регистру факта, обязательно убедитесь, что процедура отражения была выполнена за интересующий вас период.

6. Работа с аналитиками (Аналитика 1 — Аналитика 6)

Рассмотрим техническую особенность хранения данных. В регистре ФактическиеДанныеБюджетирования нет явных полей «Контрагент» или «Номенклатура». Вместо этого используются 6 универсальных измерений Аналитика1...Аналитика6.

Чтобы понять, что хранится в Аналитика1, нужно проанализировать настройки конкретной СтатьиБюджетов. В ней определен список аналитик. Система сопоставляет их в правилах получения данных. Например, если в статье первая аналитика — «Партнер», то при трансляции из регистра ВыручкаИСебестоимостьПродаж значение из поля АналитикаУчетаПоПартнерам.Партнер будет записано в Аналитика1 регистра факта.

7. Использование регистра Обороты бюджетов для факта

Важно упомянуть нюанс, озвученный в экспертных материалах: фактические данные *могут* находиться в регистре ОборотыБюджетов. Это происходит в том случае, если в справочнике Сценарии для конкретного сценария (например, с названием «ФАКТ») установлен флаг «Использовать для отражения фактических данных». В этом случае система будет дублировать записи. Однако в современных архитектурах ERP рекомендуется использовать специализированный регистр ФактическиеДанныеБюджетирования, так как он оптимизирован для хранения больших объемов транзакционных данных из разных источников.

Пример программного обращения к данным

Посмотрим на пример структуры запроса, который позволяет получить обороты факта в разрезе статей:


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

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

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

← На главную