Имя: Пароль:
1C
1С v8
СКД, расшифровка отчета
0 Tyest
 
17.07.12
13:09
Вопрос по обработчику расшифровки.

Как при перехвате события расшифровки получить значение расшифровываемого поля - понятно.
А вот как получить значение группировки (детальных записей), чтобы правильно установить отборы?
Яндекс ничего внятного не подсказал. В курсе Д.Салихова есть длиннейший пример на двух страницах с промотром и анализом элементов объекта ДанныеРасшифровки.

Может, есть способы попроще?
1 Tyest
 
17.07.12
14:34
А вот Хрусталева Е.Ю. в своей книжке этот момент элегантно пропустила.
Так я правильно понял, что то, что предлагает Д.Салихов - это единственный и правильныый способ?

А предлагает он вот что:

-------------------------------------------------------------------------
Для того, чтобы определить, является выделенная ячейка частью детальной записи или группировки, необходим обратиться к родительскому элементу элемента расшифровки:

ИдентификаторРодителя = ЭлементРасшифровки.ПолучитьРодителей()[0].Идентификатор;
РодительскийЭлементРасшифровки = ДанныеРасшифровки.Элементы[ИдентификаторРодителя];
Если ТипЗнч(РодительскийЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
……………
Определяя номер по порядку текущей детальной записи, мы считаем, что все ресурсы по детальным записям рассчитаны, то есть элементы расшифровки есть для каждого поля:
НомерДетальнойЗаписи = Цел((Число(Расшифровка)-ИндексПервогоПоля)/КоличествоПолейДетальныхЗаписей);
Поиск документа выполняем, перебирая все элементы из текущей детальной записи:
НайденныйДокумент = Неопределено;
СуммаОплаты = 0;
Для Ы = 0 По КоличествоПолейДетальныхЗаписей - 1 Цикл
Индекс = НомерДетальнойЗаписи * КоличествоПолейДетальныхЗаписей + Ы + ИндексПервогоПоля;
ПолеРасшифровки = ДанныеРасшифровки.Элементы[Индекс].ПолучитьПоля()[0];
ЗначениеРасшифровки = ПолеРасшифровки.Значение;
Если ТипЗнч(ЗначениеРасшифровки) = Тип("ДокументСсылка.РасходнаяНакладная") Тогда
НайденныйДокумент = ЗначениеРасшифровки;
ИначеЕсли ПолеРасшифровки.Поле = "СуммаДолга" Тогда
СуммаОплаты = ЗначениеРасшифровки;
КонецЕсли;
КонецЦикла;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан