Иногда необходимо расшифровать значение в отчете 1с , например узнать детализацию значения по контрагентам. Для этого можно настроить расшифровку значения ячейки. Оно может принимать форму простого значения(текст, число), таблицы значений, структуры, либо нестандартную форму (вывод доп отчета, открытие какой- либо формы итп)
Рассмотрим пример с таблицей значений.
В отчете есть некая ячейка со значением и его необходимо расшифровать с детализацией этого значения по контрагентам.
Условия для работы расшифровки
1.Выводимый табличный документ должен находится в форме ПолеТабличногоДокумента, а не отдельным окном
1 2 | ТД = ЭлементыФормы.ПолеТабличногоДокумента1; ТД.Очистить(); |
2. Он должен быть недоступен для изменения
1 | ТД.ТолькоПросмотр = Истина; |
3.Присваиваем имя Парам. Расшифровки, например РасшифровкаЯчейки
4.Создаем новую Таблицу значений и заполняем нужными данными
1 2 3 4 5 6 7 8 | РасшифровкаЯчейки = Новый таблицаЗначений; РасшифровкаЯчейки.Колонки.Добавить("Контрагент"); РасшифровкаЯчейки.Колонки.Добавить("Количество"); Для каждого строка из РезультатЗапроса цикл СтрР = РасшифровкаЯчейки.Добавить(); СтрР.Контрагент = строка.Контрагент; СтрР.Количество = строка.Количество; КонецЦикла; |
5.Выводим расшифровку как обычный параметр и показываем печатную форму
1 2 3 4 5 6 7 8 9 | ОбласьВывода = Макет.ПолучитьОбласть("Область"); .. ОбласьВывода.Параметры.РасшифровкаЯчейки = РасшифровкаЯчейки; ТД.Вывести(ОбласьВывода); ТД.ОтображатьСетку = Ложь; ТД.ОтображатьЗаголовки = Ложь; ТД.АвтоМасштаб = Истина; ТД.Показать(); |
Теперь при двойном щелчке на ячейке появляется такое окно:
Если нужно какое-то другое событие при двойном щелчке на ячейке, то его можно определить через процедуру ПолеТабличногоДокумента
1 2 3 4 | Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) СтандартнаяОбработка=Ложь; ... КонецПроцедуры |