Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Возможно ли в СКД использовать вложенную схему как расшифровку
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Система компоновки данных
AnryMc
Собственно вопрос: возможно ли в СКД использовать вложенную схему как расшифровку?

Если да, то как?
alex1c
Доброго дня! Можна.
В ОбработкаРасшифровки отримуєте з даних розшифровки необхідні поля, і формуєте з новою схемою компоновки звіт.
    ЕлементРозшифровки = ДанныеРасшифровки.Элементы[Расшифровка];
    ПолеРозшифровки = ЕлементРозшифровки.ПолучитьПоля()[0];
    Если ПолеРозшифровки.Поле = "СумаУпр" Или ПолеРозшифровки.Поле = "СумаФакт" Тогда
        СтандартнаяОбработка = Ложь;
        Форма = ПолучитьФорму("ФормаРозшифровки");
        Параметри = Новый Соответствие;
        БатьківськіЕлементи = ЕлементРозшифровки.ПолучитьРодителей();
        Для Каждого БатьківськийЕлементРозшифровки Из БатьківськіЕлементи Цикл
            Поля = БатьківськийЕлементРозшифровки.ПолучитьПоля();
            Для Каждого ЗначенняПоля Из Поля Цикл
                Параметри.Вставить(ЗначенняПоля.Поле, ЗначенняПоля.Значение);
            КонецЦикла;
        КонецЦикла;
        Если ПолеРозшифровки.Поле = "СумаУпр" Тогда
            Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Сценарій"));
            Параметри.Вставить("Сценарій", Параметр.Значение);
        Иначе
            Параметри.Вставить("Сценарій", Справочники.СценарииПланирования.ПустаяСсылка());
        КонецЕсли;        
        
        Форма.Параметри = Параметри;
        Если НЕ Форма.Открыта() Тогда
            Форма.Открыть();
        КонецЕсли;

взяв кусок коду зі свого.
AnryMc
Цитата(alex1c @ 07.08.24, 16:48) необходимо зарегистрироваться для просмотра ссылки
Можна


А можно без программного кода (у меня нет формы) в самой схеме СКД?
alex1c
Не знаю...
AnryMc
Ап!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.