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