Есть простой тестовый кейс процесса подготовки отчетности в УХ, см. скин, при нажатии на кнопки "Заполнить пробную отчетность" формируются документы первого этапа и все, дальше этапы по элиминирующим компаниям и консолидирующим не формируются.
Если нажать "Создать документы этапа" и "Заполнить по регламенту" документы формируются.
в отладчике УХа пытается вызывать консолидирующий этап(N3) после этапа (N1) но поскольку есть не сформированный этап N2, формировать не дает.
Подскажите кто сталкивался как заставить сформироваться этап N2(Элиминирующий) перед этапом N3 ?
В форме можно указать срок действия Модели бюджетирования, установить разделения по организациям и подразделениям, а также установить необходимость утверждения бюджетов.
План подготовки бюджетов
План подготовки бюджетов по сути является Регламентом бюджетного процесса.
проверил в демо базе УХ3.1
поведение системы такое же, первый этап формируется, элиминация нет
коллеги может есть у кого-то возможность набросать тестовый кейс в своей УХе и проверить.
Есть интересная фунция см ниже
СоответствиеПериметров это Соответствие ключем которого есть СправочникСсылка.Организации значение Група компаній "Наша"
ТекТаблицаОрганизацийРегламента это СтрокаТаблицыЗначений
тогда в строке СоответветствиеТекОрганизации = СоответствиеПериметров.Получить(ТекТаблицаОрганизацийРегламента) всегда будет Неопределено поскольку ключ это справочник ссылка а ищем по СтрокаТаблицыЗначений
вот только не понятно что з логику закладывали разработчики и как же это исправлять.. и будет ли результат для проблемы выше...
// Возвращает все организации, по которым необходимо заполнение этапов-
// предшественников по этапу ЭтапВход и организации ОрганизацияВход.
Функция ПолучитьМассивНеобходимыхОрганизацийПредшественниковЭтапа(ЭтапВход, ОрганизацияВход, СценарийВход, ВерсияРегламентаВход, ПериодВход)
РезультатФункции = Новый Массив;
ИспользуемыйТипОрганизаций = ЭтапВход.ТипОрганизацийЭтапа;
Если ИспользуемыйТипОрганизаций = Перечисления.ТипыОрганизационныхЕдиниц.Обычная Тогда
// Для обычной организации добавим только её саму.
РезультатФункции.Добавить(ОрганизацияВход);
ИначеЕсли ИспользуемыйТипОрганизаций = Перечисления.ТипыОрганизационныхЕдиниц.Консолидирующая Тогда
// Для этапа с консолидирующими организациями, добавим все организации этапа и входящие в их периметр.
ТаблицаОрганизацийРегламента = ПолучитьТаблицуОрганизацийЭтапаПоРегламенту(ЭтапВход, ВерсияРегламентаВход);
Для Каждого ТекТаблицаОрганизацийРегламента Из ТаблицаОрганизацийРегламента Цикл
ТекОрганизацияРегламента = ТекТаблицаОрганизацийРегламента.Организация;
МассивЗависимых = МассивОрганизацийКонсолидации(ВерсияРегламентаВход, СценарийВход, ТекОрганизацияРегламента);
Для Каждого ТекМассивЗависимых Из МассивЗависимых Цикл
РезультатФункции.Добавить(ТекМассивЗависимых);
КонецЦикла;
КонецЦикла;
ИначеЕсли ИспользуемыйТипОрганизаций = Перечисления.ТипыОрганизационныхЕдиниц.Элиминирующая Тогда
// Для элиминирующей организации возьмём организации того же уровня.
ТаблицаОрганизацийРегламента = ПолучитьТаблицуОрганизацийЭтапаПоРегламенту(ЭтапВход, ВерсияРегламентаВход);
Для Каждого ТекТаблицаОрганизацийРегламента Из ТаблицаОрганизацийРегламента Цикл
СоответствиеПериметров = УправлениеРабочимиПроцессамиУХ.ПолучитьПериметры(СценарийВход, ПериодВход);
СоответветствиеТекОрганизации = СоответствиеПериметров.Получить(ТекТаблицаОрганизацийРегламента);
Если СоответветствиеТекОрганизации <> Неопределено Тогда
РезультатФункции = Новый Массив;
Для Каждого ТекСоответветствиеТекОрганизации Из СоответветствиеТекОрганизации Цикл
РезультатФункции.Добавить(ТекСоответветствиеТекОрганизации.Ключ);
КонецЦикла;
Иначе
// Пропускаем организацию.
КонецЕсли;
КонецЦикла;
ИначеЕсли ИспользуемыйТипОрганизаций = Перечисления.ТипыОрганизационныхЕдиниц.ПустаяСсылка() Тогда
// Пустое значение. Возьмём исходную организацию.
РезультатФункции.Добавить(ОрганизацияВход);
Иначе
// Неизвестный вариант.
ТекстСообщения = НСтр("ru = 'Неизвестный тип организационных единиц %ТипОрганизационныхЕдиниц% в этапе %Этап%';uk='Невідомий тип організаційних одиниць %ТипОрганизационныхЕдиниц% у етапі %Этап%'");
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ТипОрганизационныхЕдиниц%", Строка(ИспользуемыйТипОрганизаций));
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ИспользуемыйТипОрганизаций%", Строка(ЭтапВход));
ОбщегоНазначенияУХ.СообщитьОбОшибке(ТекстСообщения);
КонецЕсли;
РезультатФункции = ОбщегоНазначенияКлиентСервер.СвернутьМассив(РезультатФункции);
Возврат РезультатФункции;
КонецФункции // ПолучитьМассивНеобходимыхОрганизацийПредшественниковЭтапа()