(6) делаю так.
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыполненноеДействие;
СтандартнаяОбработка = Ложь;
ПараметрыРаботы = РезультатОбработкаРасшифровкиНаСервере(Расшифровка);
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(
ДанныеРасшифровки,
Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПараметрыРаботы.УрлДляИсточникаДоступныхНастроек)
);
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, , ПараметрыРаботы.ДополнительныеДействия);
Если ПараметрыРаботы.Настройки <> Неопределено Тогда
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(ПараметрыРаботы.Настройки);
СкомпоноватьРезультат(Результат);
Иначе
Если ПараметрыРаботы.ВыполненноеДействие = "Действие1" Тогда
//ВыполнитьДействие1(Расшифровка);
ИначеЕсли ПараметрыРаботы.ВыполненноеДействие = "Действие2" Тогда
//ВыполнитьДействие2(Расшифровка);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьСхемуКомпоновкиДанных()
СхемаКомпоновкиДанных = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Возврат СхемаКомпоновкиДанных;
КонецФункции
&НаСервере
Функция РезультатОбработкаРасшифровкиНаСервере(Расшифровка)
Перем ВыполненноеДействие;
СтруктураГруппировок = Новый Структура("Номенклатура,Характристика,Серия,Упаковка");
ПолучитьДанныеРасшифровки(Расшифровка, СтруктураГруппировок);
//ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(
// ДанныеРасшифровки,
// Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПолучитьСхемуКомпоновкиДанных())
//);
ДополнительныеДействия = Новый СписокЗначений;
ТекущиеДанныеРасшифровки = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
// Проверяем для какого поля выполняется расшифровка
Если Найти(ТекущиеДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Поле, "Количество.") = 0 Тогда
ДополнительныеДействия.Добавить("Действие1", "Расшифровать по документам");
ИначеЕсли ТекущиеДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "Поле2" Тогда
ДополнительныеДействия.Добавить("Действие2", "Дополнительное действие 2");
КонецЕсли;
СтруктураВозврата = Новый Структура();
СтруктураВозврата.Вставить("ПараметрыОтбора", СтруктураГруппировок);
//СтруктураВозврата.Вставить("ОбработкаРасшифровки", ОбработкаРасшифровки);
СтруктураВозврата.Вставить("ДополнительныеДействия", ДополнительныеДействия);
//Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, , ДополнительныеДействия);
//СтруктураВозврата.Вставить("Настройки", Настройки);
//СтруктураВозврата.Вставить("ВыполненноеДействие", ВыполненноеДействие);
СтруктураВозврата.Вставить("УрлДляИсточникаДоступныхНастроек", ПоместитьВоВременноеХранилище(ПолучитьСхемуКомпоновкиДанных()));
//СтруктураВозврата.Вставить("ИсточникДоступныхНастроек", Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПолучитьСхемуКомпоновкиДанных()));
Возврат СтруктураВозврата;
КонецФункции
&НаСервере
Процедура ПолучитьСтруктуруВозврата(ПолеИлиГруппировка,СтруктураПолей)
МассивРодителей = ПолеИлиГруппировка.ПолучитьРодителей();
Для Каждого Стр из МассивРодителей Цикл
Если ТипЗнч(Стр) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
ПолучитьСтруктуруВозврата(Стр,СтруктураПолей);
ИначеЕсли ТипЗнч(Стр) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
ПоляГруппировки = Стр.ПолучитьПоля();
Для Каждого гСтр из ПоляГруппировки Цикл
Если СтруктураПолей.Свойство(гСтр.Поле) Тогда
Если Не ЗначениеЗаполнено(СтруктураПолей[гСтр.Поле]) Тогда
СтруктураПолей[гСтр.Поле] = гСтр.Значение;
КонецЕсли;
КонецЕсли;
ПолучитьСтруктуруВозврата(Стр,СтруктураПолей);
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ПолучитьДанныеРасшифровки(Расшифровка,СтруктураВозврата);
Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
ПолучитьСтруктуруВозврата(Данные.Элементы[Расшифровка],СтруктураВозврата);
КонецФункции // ПолучитьДанныеРасшифровки()
Вот на этом
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, , ПараметрыРаботы.ДополнительныеДействия);
получаю:
{Форма.ФормаОтчета.Форма(477)}: Ошибка при вызове метода контекста (Выполнить)
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, , ПараметрыРаботы.ДополнительныеДействия);
по причине:
Метод контекста недоступен
Что дальше?