Своя расшифровка при использовании компановки данных

Столкнулся с такой проблемой: нужно было сделать некий отчет с компановкой, а в нем - когда два раза кликаем по заданному столбцу, в котором содержится представление документа "Заявка..." должно выпадать меню, включающее два нестандартных пункта: "Произвести корректировку бюджета", "Снять корректировку бюджета". Когда пользователь выбирает эти пункты, необходимо отобрать этот самый документ "Заявка" и сделать с ним некое действие

 

1)На форме располагается табличный документ с именем "Результат" 

2)Отчет формируется после нажатя на кнопку "Сформировать" с именем "Сформировать"

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

Процедура ДействияФормыСформировать(Кнопка)
 ВывестиОтчет();
КонецПроцедуры

 Процедура ВывестиРезультатВТабличныйДокумент(ПроцессорКомпоновкиДанных, ТабличныйДокумент) Экспорт

 // Создадим и инициализируем процессор вывода результата
 ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
 ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);

 // Обозначим начало вывода
 ПроцессорВывода.НачатьВывод();

 // Основной цикл вывода отчета
 Пока Истина Цикл

  // Получим следующий элемент результата компоновки
  ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();

  Если ЭлементРезультата = Неопределено Тогда
  // Следующий элемент не получен - заканчиваем цикл вывода
  Прервать;

  Иначе
  // Элемент получен - выведем его при помощи процессора вывода
  ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);

  КонецЕсли;

 КонецЦикла;

 ПроцессорВывода.ЗакончитьВывод();

КонецПроцедуры

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