|
Отчет на СКД. Расшифровка ячейки в не основной форме отчета | ☑ | ||
---|---|---|---|---|
0
Meskon
20.07.11
✎
16:08
|
Добрый день. Сделал отчет на СКД. В нем в обработке расшифровки вызываю другую форму этого же отчета, в котором расшифровываю запись более детально с использованием другой схемы компоновки. вывожу результат. Надо во второй форме сделать расшифровку. Создал процедуру для обработки расшифровки. Ноль реакции. курсор остается крестиком во второй форме, не крестиком с лупой. Процедура не вызывается. Хелп. Код второй формы привожу ниже:
Процедура ПриОткрытии() СформироватьОтчет2(); КонецПроцедуры Процедура СформироватьОтчет2() СхемаКомпоновкиДанных2 = ПолучитьМакет("МакетПоНоменклатуре"); КомпоновщикНастроек2 = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек2.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных2)); КомпоновщикНастроек2.ЗагрузитьНастройки(СхемаКомпоновкиДанных2.НастройкиПоУмолчанию); НастройкаПоставщик = КомпоновщикНастроек2.Настройки.ПараметрыДанных.Элементы.Найти("Поставщик"); НастройкаПоставщик.Значение = РасшифровкаПоставщик; НастройкаПоставщик.Использование = Истина; НастройкаСебестоимостьФурнитуры = КомпоновщикНастроек2.Настройки.ПараметрыДанных.Элементы.Найти("СебестоимостьФурнитуры"); НастройкаСебестоимостьФурнитурыОсновнойФормы = ЭтотОбъект.ПолучитьФорму("ФормаОтчета").КомпоновщикНастроекПользователя.Настройки.ПараметрыДанных.Элементы.Найти("СебестоимостьФурнитуры"); НастройкаСебестоимостьФурнитуры.Значение = НастройкаСебестоимостьФурнитурыОсновнойФормы.Значение; НастройкаСебестоимостьФурнитуры.Использование = Истина; Настройки = КомпоновщикНастроек2.Настройки; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных2, Настройки);//, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ЭлементыФормы.Результат.Очистить(); ДокументРезультат = ЭлементыФормы.Результат; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); СписокПолейРасшифровки = ТиповыеОтчеты.ПолучитьСписокПолейКомпоновщикаНастроек(ОтчетОбъект, КомпоновщикНастроек2); КонецПроцедуры Процедура РезультатОбработкаРасшифровки2(Элемент, Расшифровка, СтандартнаяОбработка) Перем ВыполненноеДействие; СтандартнаяОбработка = Ложь; МассивПолейРасшифровки = ТиповыеОтчеты.ПолучитьМассивПолейРасшифровки(Расшифровка, ЭтаФорма.ДанныеРасшифровки); МассивПолейРасшифровкиСРесурсами = ТиповыеОтчеты.ПолучитьМассивПолейРасшифровки(Расшифровка, ЭтаФорма.ДанныеРасшифровки, , Истина); ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); СписокДействий = Новый СписокЗначений; СписокДействий.Добавить("Номенклатура поставщика", "Номенклатура поставщика"); Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, , СписокДействий); КонецПроцедуры |
|||
1
Meskon
20.07.11
✎
16:29
|
апну. платформа 8.2
|
|||
2
Defender aka LINN
20.07.11
✎
16:30
|
Сам же, лично, своими руками закомментировал. Кто тебе теперь виноват?
|
|||
3
Meskon
20.07.11
✎
16:35
|
Ой, извиняюсь. Спасибо! :)
|
|||
4
Meskon
20.07.11
✎
16:54
|
Убрал комментарии. Код стал такой:
Процедура ПриОткрытии() СформироватьОтчет2(); КонецПроцедуры Процедура СформироватьОтчет2() СхемаКомпоновкиДанных2 = ПолучитьМакет("МакетПоНоменклатуре"); КомпоновщикНастроек2 = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек2.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных2)); КомпоновщикНастроек2.ЗагрузитьНастройки(СхемаКомпоновкиДанных2.НастройкиПоУмолчанию); НастройкаПоставщик = КомпоновщикНастроек2.Настройки.ПараметрыДанных.Элементы.Найти("Поставщик"); НастройкаПоставщик.Значение = РасшифровкаПоставщик; НастройкаПоставщик.Использование = Истина; НастройкаСебестоимостьФурнитуры = КомпоновщикНастроек2.Настройки.ПараметрыДанных.Элементы.Найти("СебестоимостьФурнитуры"); НастройкаСебестоимостьФурнитурыОсновнойФормы = ЭтотОбъект.ПолучитьФорму("ФормаОтчета").КомпоновщикНастроекПользователя.Настройки.ПараметрыДанных.Элементы.Найти("СебестоимостьФурнитуры"); НастройкаСебестоимостьФурнитуры.Значение = НастройкаСебестоимостьФурнитурыОсновнойФормы.Значение; НастройкаСебестоимостьФурнитуры.Использование = Истина; Настройки = КомпоновщикНастроек2.Настройки; ДанныеРасшифровки2 = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных2, Настройки, ДанныеРасшифровки2); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ЭлементыФормы.Результат.Очистить(); ДокументРезультат = ЭлементыФормы.Результат; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); //++ ЭтотОбъект.СкомпоноватьРезультат(ДокументРезультат, ДанныеРасшифровки2); //СписокПолейРасшифровки = ТиповыеОтчеты.ПолучитьСписокПолейКомпоновщикаНастроек(ОтчетОбъект, КомпоновщикНастроек2); //-- КонецПроцедуры Процедура РезультатОбработкаРасшифровки2(Элемент, Расшифровка, СтандартнаяОбработка) Перем ВыполненноеДействие; СтандартнаяОбработка = Ложь; //++ //ЭтоДетальнаяЗапись = ЭтоДетальнаяЗапись(ЭтаФорма.ДанныеРасшифровки, Расшифровка); МассивПолейРасшифровки = ТиповыеОтчеты.ПолучитьМассивПолейРасшифровки(Расшифровка, ЭтаФорма.ДанныеРасшифровки); МассивПолейРасшифровкиСРесурсами = ТиповыеОтчеты.ПолучитьМассивПолейРасшифровки(Расшифровка, ЭтаФорма.ДанныеРасшифровки, , Истина); //-- ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); СписокДействий = Новый СписокЗначений; СписокДействий.Добавить("Номенклатура поставщика", "Номенклатура поставщика"); //ДоступныеДействия = Новый Массив(); //ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение); //ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать); //ДоступныеДействия.Добавить("Поставщики"); //Настройки = КомпоновщикНастроек.Настройки; Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, , СписокДействий); КонецПроцедуры То, что вывожу через ЭтотОбъект.СкомпоноватьРезультат(ДокументРезультат, ДанныеРасшифровки2); выводится с расшифровкой (крестик с лупой), но это данные основной схемы компоновки. А то что вывожу выше выводит то что мне нужно, но без расшифровки. |
|||
5
Meskon
20.07.11
✎
17:02
|
Поправил строчку
|
|||
6
Meskon
20.07.11
✎
17:03
|
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки2, Истина);
Все заработало. Спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |