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