Имя: Пароль:
1C
1С v8
Расшифровка в отчете
0 MistaEr
 
24.09.19
15:39
Доброго времени! Создал новый отчет. Данные отчета получаю 4-мя макетами СКД. При компоновке результата все вывожу через ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент и объединяю в один табличный документ. Старался) Получился такой красивый хороший отчет. Потмо только понял что расшифровка то там не работает. Все переделывать уже сложно, а как доработать, чтоб хотя бы объекты открывались, не знаю.
1 MistaEr
 
24.09.19
15:41
При создании формы отчета (УТ10, отчеты все делаю в управляемых формах), создается реквизит ДанныеРасшифровки. Но моим методом ДанныеРасшифровки не заполняется.
2 MistaEr
 
24.09.19
16:41
В ячейках же есть представление документа, по представлению можно получить номер и дату и вид документа и открыть его
3 runoff_runoff
 
24.09.19
17:23
свой макет поля, где в параметрах расшифровки указать только значение ссылки..
4 Alexandr921
 
24.09.19
17:56
Писал для управляек. ОстаткиВРегистрахОбработкаРасшифровки весит в качестве обработчика события "ОбработкаРасшифровки" табличного документа формы
&НаКлиенте
Процедура ОстаткиВРегистрахОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
    СтандартнаяОбработка = Ложь;
    Данные = ОстаткиВРегистрахОбработкаРасшифровкиНаСервере(Расшифровка);
    ПоказатьЗначение(,Данные);
КонецПроцедуры

&НаСервере
Функция ОстаткиВРегистрахОбработкаРасшифровкиНаСервере(Расшифровка)

    ДанныеРасшифр = ПолучитьИзВременногоХранилища(РВ_ЗапчастиИДетали_ДанныеРасшифровки);

    Если ТипЗнч(Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") тогда
        ЭлементРасшифровки = ДанныеРасшифр.Элементы[Расшифровка];
        Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
            Для каждого Поле Из ЭлементРасшифровки.ПолучитьПоля() Цикл
                Возврат Поле.Значение;
            КонецЦикла;
        КонецЕсли;
    КонецЕсли;
КонецФункции

РВ_ЗапчастиИДетали_ДанныеРасшифровки - это реквизит формы. Я его передаю как параметр с клиента на сервер при построении отчета. В конце построения отчета на сервере я ему присваиваю значение:
РВ_ЗапчастиИДетали_ДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровкиСКД, Новый УникальныйИдентификатор);
где ДанныеРасшифровкиСКД = Новый ДанныеРасшифровкиКомпоновкиДанных;
, которые заполняются уже построителем:
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, ДанныеРасшифровкиСКД);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных, ДанныеРасшифровкиСКД, Истина);
А так решение этой проблемы я нагуглил.
5 MistaEr
 
24.09.19
18:00
(4) У меня таких данных расшифровки будет 4, да и придется все переделывать
6 Alexandr921
 
24.09.19
18:06
(5) Т.е. вы 4 раза переопределяете макет СКД, Копоновщик, процессор компоновки? Если да, то переделывать, увы. Я так реализовывал по началу, но понял, что индентификаторы одинаковые и каши с ними не сваришь, а сообразить как это сделать без перебора всех областей табличного документа я не смог, мне проще было переписать отчет, нежели рисовать костыли по перебору областей. Удачи в поиске решения.
7 MistaEr
 
24.09.19
22:14
(6) Нет не переопределяю, получаю макет по имени, вывожу в табличный документ. Полученный табличный документ вывожу или присоединяю в табличный документ результат