Имя: Пароль:
1C
1С v8
Отчет на СКД. Расшифровка ячейки в не основной форме отчета
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, Истина);

Все заработало. Спасибо.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.