Имя: Пароль:
1C
1С v8
Нет расшифровки в отчете, что не так?
,
0 kiabs
 
07.11.12
14:18
На форме есть ТабличныйДокумент(ТабДок), в который выводится отчет.
Все работает как надо, но нет данных расшифровки! Что я делаю не так?
(Уже реализовывал аналогичным способом, но с внешним набором данных, и все работает, а тут нет)

Отчет = Отчеты.НекийОтчет.Создать();
Отчет.СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ТекстЗапроса;
   
   ДанныеРасшифровки    = Неопределено;    
   КомпоновщикМакета    = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки    = КомпоновщикМакета.Выполнить(Отчет.СхемаКомпоновкиДанных , Отчет.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
   ТабДок.Очистить();
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ТабДок);
   ПроцессорВывода.Вывести(ПроцессорКомпоновки);
1 kiabs
 
07.11.12
14:24
Попробовал вот так, такая же беда...
Отчет.СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ТекстЗапроса;
   
   ДанныеРасшифровки    = Неопределено;    
   КомпоновщикМакета    = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки    = КомпоновщикМакета.Выполнить(Отчет.СхемаКомпоновкиДанных , Отчет.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
   ТабДок.Очистить();

   Отчет.СкомпоноватьРезультат(ТабДок, ДанныеРасшифровки);
2 kiabs
 
07.11.12
15:24
какого хрена у меня В расшифровке кол-во элементов =0 ?????


КомпоновщикМакета    = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки    = КомпоновщикМакета.Выполнить(Отчет.СхемаКомпоновкиДанных , Отчет.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
   йцу = ДанныеРасшифровки.Элементы.Количество();
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
   йцу2 = ДанныеРасшифровки.Элементы.Количество();
3 vmv
 
07.11.12
15:50
(2)

того хрена, что строка в вашем г-коде

ДанныеРасшифровки = Неопределено;

говорит нам о том, что ДанныеРасшифровки - это переменная, а должен быть РеквизитФормы типа строка, который должен быть выбран в палитре свойств формы отчета как значение свойства формы ДанныеРасшифровки.

Это первый хрен

Если вы получаете отчет не на форме а прграммно, то грамотные спецы делают это так

   ДанныеРасшифровкиКомпоновки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   ОтчетОбъект.СкомпоноватьРезультат(ТабДокРезультат, ДанныеРасшифровкиКомпоновки);
   ДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровкиКомпоновки, ЭтаФорма.УникальныйИдентификатор);

УИд в последней строке кода тот, откуда вызов отчета или свой уид-переменная
4 kiabs
 
08.11.12
10:11
(3) А как быть если Форма не управляемая?
5 cw014
 
08.11.12
10:14
У меня даже слов нет
6 kiabs
 
08.11.12
10:19
Я уже второй день над это расшифровкой туплю. У меня отчет формируется в ТабДок на форме внешней обработки.
7 kiabs
 
08.11.12
10:20
Что не так?

НовДанныеРасшифровки    = Новый ДанныеРасшифровкиКомпоновкиДанных;    
   КомпоновщикМакета    = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки    = КомпоновщикМакета.Выполнить(Отчет.СхемаКомпоновкиДанных , Отчет.КомпоновщикНастроек.Настройки, НовДанныеРасшифровки);
       
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , НовДанныеРасшифровки, Истина);
   
   Идентификатор = Новый УникальныйИдентификатор();
   ДанныеРасшифровки = ПоместитьВоВременноеХранилище(НовДанныеРасшифровки, Идентификатор);    
   
   ТабДок.Очистить();
   //ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   //ПроцессорВывода.УстановитьДокумент(ТабДок);
   //ПроцессорВывода.Вывести(ПроцессорКомпоновки);
   Отчет.СкомпоноватьРезультат(ТабДок, НовДанныеРасшифровки);
8 Aprobator
 
08.11.12
10:29
(4) смотри расширение формы отчета и обработки.
9 Aprobator
 
08.11.12
10:37
(7) ужас. Лови:

ТабДок.Очистить();
СкомпоноватьРезультат(ТабДок, ДанныеРасшифровки);

и все.
10 Aprobator
 
08.11.12
10:44
а млин, тут вообще кирдык. У тебя отчет вызывается откуда то и ты его данные расшифровки хочешь куда нибудь запихать еще? Прелестно.
11 kiabs
 
08.11.12
10:48
(10) Вот именно! У меня есть сложная обработка и в ее табл поле должен формироваться отчет, причем в этот отчет текст запроса присваивается различный (но поля в СКД всегда отни и те же), все отрабатывает, вот расшифровку как прикрутить ХЗ!!!
12 Aprobator
 
08.11.12
10:54
у обработки - никак. Был бы отчет - другое дело.
13 Aprobator
 
08.11.12
10:55
В конце концов обработку для выполнения каких то действий можно вызывать и программно.
14 Aprobator
 
08.11.12
10:55
хотя, может и вру.
15 Aprobator
 
08.11.12
10:56
Данные расшифровки то можно положить отдельно.
16 Aprobator
 
08.11.12
10:56
но событие обработки расшифровки придется всяко прописывать ручками.
17 kiabs
 
08.11.12
11:00
(16) Уже делаю, позже отпишу, что получилось.
18 kiabs
 
08.11.12
11:10
В общем убрал стандартную обработку расшифровки и взлетело.


Процедура ТабДокОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   СтандартнаяОбработка        = Ложь;
   ИсточникДоступныхНастроек    = Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПолучитьАдресСКД());
   ОбработкаРасшифровки        = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки ,ИсточникДоступныхНастроек);
   Результ    = Неопределено;
   Параметр    = Неопределено;
   ОбработкаРасшифровки.ВыбратьДействие(Расшифровка,Результ,Параметр);
   Если Параметр<>Неопределено тогда
       ОткрытьЗначение(Параметр);
   КонецЕсли;
КонецПроцедуры

Функция ПолучитьАдресСКД()
   СхемаКомпДанных = Отчеты.МойОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
   АдресСКД = ПоместитьВоВременноеХранилище(СхемаКомпДанных);
   Возврат АдресСКД;
КонецФункции
19 kiabs
 
08.11.12
11:10
Всем большое спасибо!
20 Aprobator
 
08.11.12
11:19
(18) прикольный код. Уж если тебе только одно действие расшифровки требуется, так сделай ограничение то.
21 kiabs
 
08.11.12
12:16
(20) Мне нужно, что бы как в стандартном отчете работало.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший