Имя: Пароль:
1C
1С v8
программный вывод скд ДанныеРасшифровки
,
0 DexterMorgan
 
22.04.14
11:29
У формы отчета есть расширение ДанныеРасшифровки, куда при выводе помещаются настройки и элементы. Если я программно вывожу скд в табличный документ обработки то при двойном нажатии открывается идентификатор расшифровки, а коллекция элементов ДанныеРасшифровки пустая. Как лучше настроить расшифровку?
1 Wobland
 
22.04.14
11:31
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
     СтандартнаяОбработка=Ложь;
    
     Результат=ДобытьРезультат();
     ВнешниеНаборыДанных=Новый Структура;
     ВнешниеНаборыДанных.Вставить("Результат", Результат);
    
     Настройки=КомпоновщикНастроек.Настройки;
     КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
     МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

     ПроцессорКомпоновкиДанных=Новый ПроцессорКомпоновкиДанных;
     ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);

     ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
     ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
     ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
2 DexterMorgan
 
22.04.14
11:34
(1) ну не в отчете, блин(
3 DexterMorgan
 
22.04.14
11:34
В отчете все понятно
4 Wobland
 
22.04.14
11:35
(2) щито?
5 DexterMorgan
 
22.04.14
11:35
Есть форма обработки, на нее выведен табличный документ. Туды программно выводится скд, хочется расшифровку
6 DexterMorgan
 
22.04.14
11:47
Процедура ВывестиСКД(ИмяМакета, Номенклатура)

    Результат = Новый ТабличныйДокумент;
    //Схема
    СхемаКомпоновкиДанных = РегистрыСведений.ОперативныеПоказателиНоменклатуры.ПолучитьМакет(ИмяМакета);
    
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

    //Отбор
    ЭлементыОтбораКомпоновки = КомпоновщикНастроек.Настройки.Отбор.Элементы;
    ЭлементыОтбораКомпоновки.Очистить();
    
    ОтборНоменклатура = ЭлементыОтбораКомпоновки.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборНоменклатура.Использование = Истина;
    ОтборНоменклатура.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура");
    ОтборНоменклатура.ПравоеЗначение = Номенклатура;
    
    //Вывод
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
    КомпоновщикНастроек.Настройки, ДанныеРасшифровки);

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,ДанныеРасшифровки);
                                                                          
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    
    ПроцессорВывода.УстановитьДокумент(ЭтаФорма[ИмяМакета]);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
7 DexterMorgan
 
22.04.14
11:49
Вот тут при двойном нажатии показывается идентификатор расшифровки, а ДанныеРасшифровки.Элементы.Количество() = 0
8 DexterMorgan
 
22.04.14
11:51
ну LINN скажи че нить, ток не матом
9 Wobland
 
22.04.14
11:52
(7) вот в этом видео что-то такое вроде было. не хочу думать
v8: Как сделать отчет на скд с расшифровкой по регистратору
10 DexterMorgan
 
22.04.14
11:57
(9) тут все дело в том, что форма не отчета( в отчете получается(
11 Wobland
 
22.04.14
11:58
будь мужком, сделай отчёт
12 DexterMorgan
 
22.04.14
12:03
(11) не поможешь, да?
13 Wobland
 
22.04.14
12:03
(12) ближайшие минут 100 точно нет
14 DexterMorgan
 
22.04.14
12:25
в общем сделал, не знаю можно ли проще.

В процедуре вывода схемы, url схемы и данные расшифровки помещаю во временное хранилище. Для табличного документа нужно назначить процедуру ОбработкаРасшифровки:

    Перем ВыполненноеДействие, ПараметрВыполненногоДействия;

    СтандартнаяОбработка = Ложь;
    ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(АдресДанныеРасшифровки,
    Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));

    ДоступныеДействия = Новый Массив;
    ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);

    ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыполненноеДействие, ПараметрВыполненногоДействия, ДоступныеДействия);

    ОткрытьЗначение(ПараметрВыполненногоДействия);