Меню обработки дополнительной расшифровки в табличном документе (не СКД)

Пример работы с расшифровкой и дополнительной расшифровкой. Выводит меню (контекстное по правой кнопке мыши) для дополнительной расшифровки табличного документа.

Для обработки расшифровки требуется создать два события у табличного документа на форме:

2025-01-26_13-08-34.png

Укажите в макете ПараметрРасшифровки

2025-01-26_13-20-29.png

В модуле формы создайте код:

#Область ОбработчикиСобытийФормы  

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

#КонецОбласти

#Область ОбработчикиСобытийЭлементовТабличногоДокумента   

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

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

#КонецОбласти

#Область СлужебныеПроцедурыИФункции  

&НаКлиенте
Процедура ОписаниеОповещенияОЗакрытии(ВыбранныйЭлемент, ДополнительныеПараметры) Экспорт   

	// ВыбранныйЭлемент примет значение списка значений
	// Открыть, Добавить, Удалить, которые мы задали ранее
	// или Неопределено в случае отказа от выбора   
	
	// ДополнительныеПараметры сюда выше переданы данные расшифровки
	
КонецПроцедуры

#КонецОбласти

Пример вывода меню в табличном документе:

2025-01-26_13-34-16.png

0

См. также

ОбработкаДополнительнойРасшифровки (БСП)

ФормаОтчетаОбработкаДополнительнойРасшифровки (БСП)

ОбработкаРасшифровки (БСП)

ФормаОтчетаОбработкаРасшифровки (БСП)

ПриОбработкеДополнительнойРасшифровки (БСП)

ПриОбработкеВыбораТабличногоДокумента (БСП)

ОбработкаВыбораТабличногоДокумента (БСП)

Модератору