Имя: Пароль:
1C
1С v8
Получить ДанныеРасшифровки СКД
,
0 geek
 
27.03.12
17:20
Есть процедура:

лСхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
   ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(лСхемаКомпоновкиДанных));
   СформироватьТаблицуСотрудников(ТабличныйДокумент, ДанныеРасшифровки);


Валится на первом входном параметке, не может найти ДанныеРасшифровки. Как их получить программно? Я пробовал создать новые, но они пустые, если вывести Элемент.Количество().
1 Axel2009
 
27.03.12
17:38
Перем ВыполненноеДействие;    
   СтандартнаяОбработка     = Ложь;
   ОбработкаРасшифровки     = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки,Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка,ВыполненноеДействие);
   Если Настройки <> Неопределено Тогда
       КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
       ЭлементыФормы.Результат.Очистить();
       СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки);
   КонецЕсли;
2 Axel2009
 
27.03.12
17:39
Расширение формы отчета (Report form extension)
ДанныеРасшифровки (DetailsData)
Использование:

Чтение и запись.
Описание:

Тип: ДанныеРасшифровкиКомпоновкиДанных.
Содержит данные расшифровки последнего выполненного отчета.

Доступность:

Толстый клиент.
3 Axel2009
 
27.03.12
17:39
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ОтчетОбъект.ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(лСхемаКомпоновкиДанных));
может так?
4 Новиков
 
27.03.12
17:50
А где эта процедура объявлена? Явно не в модуле формы :)

Чтобы у тебя все заработало тебе нужно протащить это расширение к себе в процедуру. Из модуля формы это будет выглянить так:

ЭтаФорма.ДанныеРасшифровки ну или просто ДанныеРасшифровки
5 geek
 
27.03.12
17:50
{Форма.ФормаОтправкиПочты.Форма(155)}: Поле объекта не обнаружено (ДанныеРасшифровки)
   ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ОтчетОбъект.ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));

(3) До этого стояло ВладелецФормы.ДанныеРасшифровки, может я где-то в настройках формы не указал владельца? У меня 2 формы, одна с отчетом СКД, другая моя, которая обрабатывает данные и выводит в таблицу.
6 geek
 
27.03.12
17:54
(4) Процедура объявлена в модуле формы

Если ЭтаФорма.ДанныеРасшифровки, то:
Несоответствие типов (параметр номер '1')
7 geek
 
27.03.12
17:58
До этого отчет работал через программную загрузку типового отчета из конфигурации. Пришлось выдрать отчет из конфы и прикрутить к нему форму из первого отчета, все добавлял копированием. Может есть где-то свойство формы ВладелецФормы, я просто не разбираюсь.
8 Новиков
 
27.03.12
17:58
Есть две формы. Одна выводит в табличный документ результат. Вторая - что-то там делает. Ты прописал процедуру эту - в модуле твоей второй формы?
9 geek
 
27.03.12
17:59
(8) Да, в модуле второй формы
10 geek
 
27.03.12
18:00
Отчет типовой, расчетные листки в ЗУПе, мне нужно поправить форму вывода, чтобы добавлялось одно единственное поле. Могу предоставить отчет, если необходимо.
11 geek
 
27.03.12
18:03
До этого было так:

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


Все в том же модуле, той же формы. И все работало без нареканий. Через
ВладелецФормы.ДанныеРасшифровки.Элементы.Количество() мне выдавалось значение 177, т.е. не пустые настройки!

Думаю, надо поменять ВладелецФормы на что-то другое, либо для второй формы где-то указать Владельца.
12 Новиков
 
27.03.12
18:09
Я совсем спутался - отчет типовой. Ты выгрузил схему, подцепил ее к внешнему отчету (типовому) опять же. Вот до этого понял. Дальше зачем ты рисуешь форму вторую?
13 geek
 
27.03.12
18:17
(12)Извини, целый день мучаюсь, голова кругом. По порядку:
Это первый вариант отчета(ПЕРВЫЙ) открывал в своей первой форме типового отчет. Вторая форма вытаскивала расшифровку фио(Справочники.ФизЛицо.Ссылка) из полученного макета.

Меня попросили переделать форму вывода, и мне пришлось выдрать типовой отчет во внешнюю обработку, но чтобы сохранить функционал ПЕРВОГО, я добавил копированием ТЧ и форму из ПЕРВОГО в новый отчет(ВТОРОЙ). Я почти все исправил, но ДанныеРасшифровки получить не могу, в ПЕРВОМ было написано так:


Процедура ОсновныеДействияФормыСформироватьСписокСотрудников(Кнопка)
   ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(ВладелецФормы.СхемаКомпоновкиДанных);
   ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ВладелецФормы.ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(ВладелецФормы.СхемаКомпоновкиДанных));
   СформироватьТаблицуСотрудников(ТабличныйДокумент,ВладелецФормы.ДанныеРасшифровки);
   //ВладелецФормы.ДанныеРасшифровки.Элементы[11].ПолучитьПоля()[0].Значение.Физлицо
КонецПроцедуры



Во ВТОРОМ я написал ТАК:


Процедура ОсновныеДействияФормыСформироватьСписокСотрудников(Кнопка)
   ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных);
   ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ЭтаФорма.ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   СформироватьТаблицуСотрудников(ТабличныйДокумент, ЭтаФорма.ДанныеРасшифровки);    
КонецПроцедуры
14 geek
 
27.03.12
18:23
Заметил, что в ПЕРВОМ отчете в Свойствах доп. Формы Тип Значения указан как ВнешняяОбработка.РасчетныеЛисты

А во ВТОРОМ, Тип Значения указан как ВнешнийОтчет.РасчетныеЛисты

Может это принципиально? О_О
15 geek
 
27.03.12
18:46
"Если отчет формируется при помощи стандартной команды
отчета Сформировать, то данные расшифровки помещаются
в свойство расширения формы отчета ДанныеРасшифровки."

(с)Цитата из книги

Что такое Свойство Расширения Формы Отчета? О_О
16 geek
 
27.03.12
19:01
Решил проблему, при формировании отчета занес данные в свою переменную с экспортом и взял ее значение в модуле формы.
17 Человечкин
 
27.03.12
19:06
ДанныеРасшифровки - это в ячейках под ПараметрРасшифровки имеется ввиду.
18 Человечкин
 
27.03.12
19:07
и когда ты на ячейке открываешь расшифровку - туда те данные попадают. Туда можно свою структуру впихнуть.
19 geek
 
27.03.12
19:08
(17) Да, такая расшифровка. Мне надо было получить ссылку на эл. справочника.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший