Ошибка №1 внедрения "Бюджетирования" в 1С:ERP2 и 1С:КА2: настройка статей бюджетов и статей ДДС 1-в-1

Управление - Пользователю системы

В цикле статей я хочу поделиться ошибками во внедрении подсистемы «Бюджетирование», которые мне приходится исправлять после коллег на реальных проектах, и лучшими приемами по автоматизации бюджетирования на 1С:ERP 2 и 1C:КА 2. Сегодня поговорим и о самой распространенной ошибке – настройке статей бюджетов 1-в-1 к справочнику «Статьи ДДС».

Коллеги, я являюсь счастливым автоматизатором: сначала я разрабатывал бюджетирование в 1С:ERP2 и 1С:КА2, а теперь его внедряю. В цикле статей я хочу поделиться ошибками во внедрении подсистемы «Бюджетирование», которые мне приходится исправлять после коллег на реальных проектах, и лучшими приемами по автоматизации бюджетирования на 1С:ERP 2 и 1C:КА 2.

Сегодня поговорим и о самой распространенной на мой взгляд ошибке – настройке статей бюджетов 1-в-1 к справочнику «Статьи ДДС». В базе это выглядит так:

 

 

 

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

 

 

 

 

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

 

 

 

Т.е в каждой статье бюджетов автоматизаторы в правиле получения фактических данных прописывали отбор по соответствующей статье ДДС. Во-первых, это очень трудоемко. Во-вторых, это приведет к неприятным последствиям в будущем, которые мы сейчас посмотрим. Есть и в-третьих – так мы лишаем нашего заказчика возможности самостоятельно редактировать бюджеты.

В данной модели при добавлении статьи ДДС нужно вводить новую статью бюджетов, настраивать отбор и модифицировать виды бюджетов. Т.е невозможно добавить статью ДДС в бюджеты без специалиста по автоматизации.

Теперь немного технических подробностей: разберем как получаются фактические данные в подсистеме «Бюджетирование».  В зависимости от версии конфигурации и применяемого решения (КА или ERP) могут сработать следующие схемы:

1. Получение факта для каждой статьи отдельной компоновкой и выгрузка в сводную таблицу значений. Тут всем очевидно, что выполнение СКД в цикле – ничего хорошего не сулит. Особенно с ростом базы данных и количества статей бюджетов

2. Компоновка всех необходимы правил в одну СКД. При этом на основании уникальных отборов будут сформированы однотипные запросы, но с разными параметрами отборов, и объединены в рамках набор с типом «Объединение» одной СКД. Получится большая компоновка с кучей наборов в «Объединении». На практике так же выполняться будет неприятно.

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

 

 

 

Таким образом, для этого примера, мы более чем в 2 раза сократили количество запросов для получения фактических данных, а соответственно более чем в 2 раза оптимизировали формирование бюджетных отчетов.

В такой модели, при правильной настройке фактических данных, мы получим систему бюджетирования, в которой пользователи самостоятельно могут добавлять «Статьи ДДС» в бюджетах. И в план-фактных отчетах такие добавленные статьи будут отображаться без изменения видов бюджетов, т.е автоматически. Как правильно настроить фактические данные для статей бюджетов мы рассмотрим в следующей статье.

Также пишите в комментариях, какие темы по подсистеме «Бюджетирование» ERP 2 интересны Вам, с какими непонятными ситуациями сталкивались – рассмотрим, а самые интересные проблемы разберем подробно в последующих статьях.

См. также

Комментарии
1. Николай Крылов (Nikola23) 375 18.06.18 09:49 Сейчас в теме
ИМХО - главная сложность в перенавороченном механизме получения данных, строго последовательно.

Для этого механизма, где как ни старайся будут тяжелые запросы в цикле, приходится дорабатывать и оптимизировать код.
Не сложно же было написать параллельные вычисления! В моем примере один из отчетов собирал данные 8-12 часов, пока не провели оптимизацию кода. Ускорили до 10 минут.

Ну а добавить статью в бюджет можно и без автоматизаторов, не велика сложность. Наши пользователи освоили с первой попытки.

"Не знаешь как - спроси меня" (С)
2. Сергей Наумов (SergeyN) 96 18.06.18 13:22 Сейчас в теме
(1) можете пример такого бюджет привести? С замером производительности.
3. Николай Крылов (Nikola23) 375 18.06.18 15:00 Сейчас в теме
(2)
) можете пример такого бюджет привести? С замером производительности.
1
В заголовке статьи указано, что Вы являлись разработчиком, а теперь внедряете. Я готов поработать совместно, если это окажет влияние на подсистему в будущих релизах и принесет бонусы заказчику.
Ради спортивного интереса - не готов.

Замеры могу предоставить только по ускоренной версии. Полагаю, что выгрузит в xml настройки тоже получится договориться.
4. Сергей Наумов (SergeyN) 96 18.06.18 19:57 Сейчас в теме
(3) я писал в статье, что могу разобрать интересные случаи в последующих статьях для сообщества. Учтет это вендор или нет я прогнозировать не берусь.

Что касается формирования 12 часов - то я полагаю что скорее дело в неверной настройке, а не в коде. Перенастроить виды бюджетов как правило быстрее чем переписывать код подсистемы. Если вид бюджета не переписывался - то могу посмотреть на типовой как его можно было бы ускорить.
5. Николай Крылов (Nikola23) 375 18.06.18 20:39 Сейчас в теме
(4) Полагаю, не имеет смысла. Конкретная задача решена.

Расскажите, зачем там 2 алгоритма формирования "РассчитатьФактПоВидуБюджетаАльтернативный" и "РассчитатьФактПоВидуБюджета"? В моем случае результат в данных одинаковый, а у альтернативного варианта - производительность на порядок ниже. Да и в релизе только этот вариант используется.

Технические различия понятны по комментариям. На практике - зачем?
Оставьте свое сообщение