![]() |
|
макет СКД передать расшифровку в другую форму | ☑ | ||
---|---|---|---|---|
0
Web00001
30.01.13
✎
18:02
|
Доброго всем времени суток! Имеется макет СКД, я его компоную и могу на выходе получить табличный документ в чистом виде, или вывести результат в форму на которой лежит табличный документ. Возникает вопрос, если при компоновке можно указать параметры расшифровки, то можно их как то использовать не в форме отчета а например на форме обработки где лежит табличный документ? Или параметры расшифровки могут использоваться только в объекте с типом отчет?
|
|||
1
SherifSP
30.01.13
✎
18:34
|
(0) Метод Обработка расшифровки тд не катит?
|
|||
2
SherifSP
30.01.13
✎
18:35
|
(1) Даже не метод а событие
|
|||
3
Web00001
30.01.13
✎
18:49
|
Да, он передает, данные расшифровки а подсунуть им обработчика уже не вопрос, разобрался, теперь вылез другой очень интересный нюанс, тупо сверху пустое место http://take.ms/3uB если выводить просто в табличный документ, нет такого бага.
|
|||
4
SherifSP
30.01.13
✎
18:52
|
(3) На фотке куда выводишь?
|
|||
5
Web00001
30.01.13
✎
18:53
|
в табличное поле расположенное на форме
|
|||
6
SherifSP
30.01.13
✎
18:54
|
(5) Код линкони
|
|||
7
Web00001
30.01.13
✎
18:57
|
Процедура ПолучитьДанныеНаОснованииСКД(СКД, ОбъектДляЗагрузки, ИсполняемыеНастройки = Неопределено, СтруктураПараметров = Неопределено, РасшифровкаСКД = Неопределено, МакетКомпоновки = Неопределено, ВнешниеНаборыДанных = Неопределено) Экспорт
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ПолеТабличногоДокумента") ИЛИ ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанных"); Иначе ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"); КонецЕсли; Если ИсполняемыеНастройки = Неопределено Тогда ИсполняемыеНастройки = СКД.НастройкиПоУмолчанию; КонецЕсли; Если СтруктураПараметров <> Неопределено Тогда КоллекцияЗначенийПараметров = ИсполняемыеНастройки.ПараметрыДанных.Элементы; Для каждого Параметр Из СтруктураПараметров Цикл НайденноеЗначениеПараметра = КоллекцияЗначенийПараметров.Найти(Параметр.Ключ); Если НайденноеЗначениеПараметра <> Неопределено Тогда НайденноеЗначениеПараметра.Использование = Истина; НайденноеЗначениеПараметра.Значение = Параметр.Значение; КонецЕсли; КонецЦикла; КонецЕсли; МакетКомпоновкиСКД = КомпоновщикМакета.Выполнить(СКД, ИсполняемыеНастройки, РасшифровкаСКД, МакетКомпоновки, ТипГенератора); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиСКД, ВнешниеНаборыДанных, РасшифровкаСКД); Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ПолеТабличногоДокумента") ИЛИ ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ОбъектДляЗагрузки); Иначе ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ОбъектДляЗагрузки); КонецЕсли; ПроцессорВывода.ОтображатьПроцентВывода = Истина; ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина); КонецПроцедуры Процедура СписокДокументовВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Если Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(ВыбраннаяСтрока.Док)) Тогда Иначе //ТабДок = Новый ТабличныйДокумент; СхемаКомпоновкиДанных = ПолучитьМакет("ОтчетПоДвижениямНоменклатуры"); СтруктураПараметров = Новый Структура(); СтруктураПараметров.Вставить("НачалоПериода", ТекущаяДата() - 31556926); СтруктураПараметров.Вставить("КонецПериода", ТекущаяДата()); СтруктураПараметров.Вставить("Номенклатура", ЭлементыФормы.СписокДокументов.ТекущаяСтрока.Док); СтруктураПараметров.Вставить("Склад", ЭлементыФормы.СписокДокументов.ТекущаяСтрока.Родитель.Док.Склад); Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных; ФормаОтчета = ПолучитьФорму("ИсторияДвижений"); ПолучитьДанныеНаОснованииСКД(СхемаКомпоновкиДанных, ФормаОтчета.ЭлементыФормы.ПолеСписокДвижений, СхемаКомпоновкиДанных.НастройкиПоУмолчанию, СтруктураПараметров, Расшифровка); ФормаОтчета.ОбработчикРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(Расшифровка, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); //ТабДок.ОтображатьСетку = Ложь; //ТабДок.ОтображатьЗаголовки = Ложь; //ТабДок.Показать("Список движений"); ФормаОтчета.Открыть(); КонецЕсли; КонецПроцедуры |
|||
8
Wobland
30.01.13
✎
19:00
|
о! было такое дело. безо всяческих СКД. забил
Объект.ТЗ.Загрузить(ТЗ); Элементы.ТЗ.Обновить(); |
|||
9
Web00001
30.01.13
✎
19:00
|
Глюк, удалил поле, создал заново, все заработало, заодно и решение на свой вопрос выложил ))) может пригодиться кому, надо в бложек продублировать
|
|||
10
Wobland
30.01.13
✎
19:01
|
не то зацитировал
&НаСервере Процедура ПоказатьТЗ() Построитель=Новый ПостроительОтчета; Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(Объект.ТЗ.Выгрузить()); ТабДок.Очистить(); Построитель.Вывести(ТабДок); КонецПроцедуры |
|||
11
Wobland
30.01.13
✎
19:24
|
у меня, кстати, передобавление элемента не помогло
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |