Значения соседних полей в расшифровке СКД

1. Natali_absolut 22.03.13 17:01 Сейчас в теме
Все просто. СКД с детальными записями без группировки. Для примера, поля: Код, Номенклатура, КоличествоВЗаказах. Пишу свою процедуру

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыполненноеДействие;

СтандартнаяОбработка = Ложь;
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(АдресРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));

ДоступныеДействия=Новый Массив;
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить);

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

Настройки=ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия, ДополнительныеДействия);


Если Настройки<>Неопределено Тогда
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
ЭлементыФормы.Результат.Очистить();
СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки);
Иначе
Если ВыполненноеДействие=ДействиеОбработкиРасшифровкиКомпоновкиДа­нных.ОткрытьЗначение Тогда
//открывается карточка Номенклатуры программно

ИначеЕсли ВыполненноеДействие="Действие1" Тогда
// тоже открываем карточку Номенклатуры по коду
ЗначениеКода = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение;
Ссылка = Справочники.Номенклатура.НайтиПоКоду(ЗначениеКода);
Ссылка.ПолучитьФорму().Открыть();

ИначеЕсли ВыполненноеДействие="Действие2" Тогда
// здесь нужно раскрыть Количество по документам Заказ с отбором по ТекущаяНоменклатура
ВыполнитьАнализЗаказовПоставщикам(ТекущаяНоменклатура);
КонецЕсли;
КонецПроцедуры // РезультатОбработкаРасшифровки()


Так вот: НЕ МОГУ ПОЛУЧИТЬ ЗНАЧЕНИЕ ТекущаяНоменклатура из соседней колонки!
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот