1.
Natali_absolut
22.03.13 17:08
Сейчас в теме
Все просто. СКД с детальными записями без группировки. Для примера, поля: Код, Номенклатура, КоличествоВЗаказах. Пишу свою процедуру Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыполненноеДействие;
СтандартнаяОбработка = Ложь;
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(АдресРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));
ДоступныеДействия=Новый Массив;
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить);
ДополнительныеДействия = Новый СписокЗначений;
// Проверяем для какого поля выполняется расшифровка
Если ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()0].Поле="Номенклатура" Тогда
//проходим по массиву Доступные действия
ИначеЕсли
ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Поле="Код" Тогда
ДополнительныеДействия.Добавить("Действие1","Открыть карточку Номенклатуры по коду");
ИначеЕсли ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()0].Поле="КоличествоВЗаказах" Тогда
ДополнительныеДействия.Добавить("Действие2","Раскрыть по заказам");
КонецЕсли;
Настройки=ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия, ДополнительныеДействия);
Если Настройки<>Неопределено Тогда
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
ЭлементыФормы.Результат.Очистить();
СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки);
Иначе
Если ВыполненноеДействие=ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда
//открывается карточка Номенклатуры программно
ИначеЕсли ВыполненноеДействие="Действие1" Тогда
// тоже открываем карточку Номенклатуры по коду
ЗначениеКода = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение;
Ссылка = Справочники.Номенклатура.НайтиПоКоду(ЗначениеКода);
Ссылка.ПолучитьФорму().Открыть();
ИначеЕсли ВыполненноеДействие="Действие2" Тогда
// здесь нужно раскрыть Количество по документам Заказ с отбором по ТекущаяНоменклатура
ВыполнитьАнализЗаказовПоставщикам(ТекущаяНоменклатура);
КонецПроцедуры // РезультатОбработкаРасшифровки()
Так вот: НЕ МОГУ ПОЛУЧИТЬ ЗНАЧЕНИЕ ТекущаяНоменклатура из соседней колонки!