Как в отчете на системе компоновки данных сразу открыть документ по клику
Стандартный обработчик работает в режиме диалога с пользователем, т.е. предлагает ему самому выбрать вариант расшифровки.
Для того, чтобы установить свой обработчик данного события в поле табличного документа добавляется событие обработка расшифровки
Далее пишется код обработчика, например, вот такой:
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Перем ВыполненноеДействие; Если ТИПЗНЧ(Расшифровка)= Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда Попытка Поля = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля(); Если Поля.Количество() = 0 Тогда Значение = Неопределено; Иначе Значение = Поля[0].Значение; КонецЕсли; Исключение Значение = Неопределено; КонецПопытки; Если ТипЗнч(Значение) = тип("ДокументСсылка.УчетДолгов") Тогда //Если значение определенного типа тогда СтандартнаяОбработка = Ложь; СписокДействий = Новый СписокЗначений; ДоступныеДействия = Новый Массив(); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение); ОбработкаРасшифровки=Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки,Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия, СписокДействий); Если Настройки <> Неопределено Тогда //КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); //ЭлементыФормы.Результат.Очистить(); //СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры
Алгоритм обработчика:
- Пытаемся получить значение расшифровки
- При ошибке присваиваем Неопределено
- Если значение типа ссылки на «Учет долгов» тогда сразу открываем документ (для тестовой конфигурации 1С:Деньги, в вашем случае может быть другой тип или несколько )
- В остальных случаях используется стандартный обработчик
Избегай конкретных обещаний. Текст должен быть чарующе неопределенным.