Имя: Пароль:
1C
1С v8
Подскажите как в подчиненном отчете скд заставить работать расшифровку?
0 inkvizitr
 
02.12.19
10:10
В СКД не очень силен, требуется ваша помощь...
Есть внешний отчет, у которого имеется два макета СКД "Основной" и "Подчиненный", логика такова, что при формировании основного отчета я тыкаю по записи и должна сформироваться расшифровка на основе второго отчета "Подчиненный"
Тек запроса для основного макета я формирую программно, пример формировании "основного" отчета

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    
    //Получаем наш внешний набор данных ТЗ
    Запрос = Новый Запрос;
    Запрос.Текст =
    "...";
                
    ТЗИтог = Запрос.Выполнить().Выгрузить();
    
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();

    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;    
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);    
    
    ВнешнийНаборДанных = Новый Структура("ВнешняяТаблицаИсточника", ТЗИтог); //Внешний набор данных записываем в структуру, где ключ = имени внешнего набора данных в СКД
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки); //Устанавливаем в СКД внешний набор данных
    
    ДокументРезультат.Очистить();
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);    
    
КонецПроцедуры

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("ЗаголовокПодчиненойФормы") Тогда
        ЭтаФорма.Заголовок = Параметры.ЗаголовокПодчиненойФормы;
    КонецЕсли;
    
    Если Параметры.Свойство("ПараметрРасшифровки") ТОгда
        ПараметрРасшифровки = Параметры.ПараметрРасшифровки;
    КонецЕсли;    
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    СформироватьОтчетНаСервере(Результат, ПараметрРасшифровки);
    
    Элементы.Результат.ОтображениеСостояния.Видимость = Ложь;
    Элементы.Результат.ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.НеИспользовать;
КонецПроцедуры

&НаСервере
Процедура СформироватьОтчетНаСервере(ТаблДок, параметр)
    
    ОбъектОтчет = РеквизитФормыВЗначение("Отчет");
    
    ОСКД = ОбъектОтчет.ПолучитьМакет("МакетПодчиненый");
    НастройкиОСКД = ОСКД.НастройкиПоУмолчанию;
    ОСКД.Параметры.КодБюджетнойСтатьи.Значение = параметр;
    
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных(;
    
    
    КомпоновщикМакетаОСКД = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, НастройкиОСКД, ДанныеРасшифровки);
    
    ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиОСКД.Инициализировать(Макет,,);
    
    ТаблДок.Очистить();
    
    ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВыводаОСКД.УстановитьДокумент(ТаблДок);
    ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД);
    
КонецПроцедуры

подчиненный отчет запускается хорошо, но вместо расшифровки при наведении мыши я получаю белый плюс
Подскажите как в подчиненном отчете скд заставить работать расшифровку?
1 inkvizitr
 
02.12.19
10:19
т.е. в одном внешнем отчете
есть макет СКД основной и форма к нему
и есть макет скд Подчиненный и так же форма к нему
в подчиненной форме не могу заставить работать расшифровку
2 toypaul
 
гуру
02.12.19
10:35
посмотри - для основного макета ты передаешь ДанныеРасшифровки 2 раза, а для подчиненного 1 раз. как минимум тут есть косяк

второй косяк в том что ты расшифровку делаешь в той же форме, а значит вернутся в основной отчет уже нельзя.
3 inkvizitr
 
02.12.19
10:39
(2) во втором макете если я прописываю данные расшифровки он ругается на параметр номер 3, я подразумеваю что данная проблема возникает из-за того, что отчет формируется в модуле формы

Для каждого отчета я создал свою форму
4 inkvizitr
 
02.12.19
10:40
для основного Скд у меня одна форма, для подчиненного, другая
5 toypaul
 
гуру
02.12.19
10:56
ИС сегодня не работает. там была статья как правильно сделать. по-моему вот эта статья http://catalog.mista.ru/public/1018445/
6 inkvizitr
 
02.12.19
11:27
(5) спасибо сейчас почитаю
7 inkvizitr
 
02.12.19
12:42
(5) большое спасибо за статью, все получилось
8 inkvizitr
 
02.12.19
12:44
во второй форме "подчиненная", переименовал реквизит ДанныхРасшифровки в АдресДанныхРасшифровки и ДанныхРасшифровки положил во временное хранилище и передал в реквизит АдресДанныхРасшифровки