Имя: Пароль:
1C
 
Помогите с программной расшифровкой простого отчета СКД
0 Mihasya
 
01.12.23
05:36
Ребята помогайте
Есть отчет на СКД, простенький, запросом выбирается Организация, Заказчик и Документ + несколько ресурсов (количество документов по разным признакам)
Основная Настройка сделана так:
Отчет
  -Организация
    -Заказчик

В выбранных полях только ресурсы

После формирования отчета, если клацнуть дважды на каком-либо ресурсе, программа запросит выбор поля для расшифровки, выбираем Документ, сформируется отчет только по документам с отбором соответствующей Организации и Заказчика

В процедуре ПриКомпоновкеРезультата КомпоновщикНастроек.Настройки.Структура содержит только Документ

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

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

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

Самое интересное, в отладчике в переменной НастройкиРасшифровки.Структура содержится только одна группировка по Документу, а вот уже в процедуре ПриКомпоновкеРезультата
В КомпоновщикНастроек.Настройки.Структура прилетает:
Организация
  Документ
    Заказчик

Откуда она тянет эти группировки?! И почему Документ затесался между ними? ЧЯДНТ???
1 toypaul
 
01.12.23
08:28
Я бы проверил в форме при создании на сервере с какими параметрами она открывается, если формировать расшифровку стандартно.
2 Mihasya
 
01.12.23
09:05
(1)
ЭтаФорма.Параметры.Расшифровка.ПрименяемыеНастройки.Структура

Тут нормально приходит, Структура содержит только Документ
3 Mihasya
 
01.12.23
14:25
Мысли еще есть у кого?
4 Mihasya
 
04.12.23
15:35
Up
5 Mihasya
 
06.12.23
02:34
Возможно кому-то и пригодится, все заработало только в таком варианте:

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

&НаСервере
Функция ПолучитьНастройкиРасшифровки()
    
    НастройкиРасшифровки = ЭтаФорма.Отчет.КомпоновщикНастроек.ПолучитьНастройки();

    НастройкиРасшифровки.Структура.Очистить();
    
    НоваяГруппировка = НастройкиРасшифровки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    НоваяГруппировка.Имя = "Расшифровка";
    НоваяГруппировка.Использование = Истина;
    НоваяГруппировка.Состояние = СостояниеЭлементаНастройкиКомпоновкиДанных.Включен;
    
    НовоеПолеГруппировки = НоваяГруппировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    НовоеПолеГруппировки.Использование = Истина;
    НовоеПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Ссылка");
    
    Возврат НастройкиРасшифровки;

КонецФункции

И я так понял самое важное это вот это: НоваяГруппировка.Имя = "Расшифровка";
если задать какое-то другое имя, то опять выводит Организация / Документ / Заказчик