Процедура ОбработкаРасшифровки(ЭтаФорма, Элемент, Расшифровка, СтандартнаяОбработка) Экспорт
//
ПолноеИмяОтчета = ЭтаФорма.НастройкиОтчета.ПолноеИмя;
КлючТекущегоВарианта = ЭтаФорма.КлючТекущегоВарианта;
Если ПолноеИмяОтчета = "ВнешнийОтчет.ПотребностиЗаказаНоменклатурыСтанки" Тогда
//
// ПРОВЕРЯЕМ, ЧТО ЩЕЛКНУЛИ ПО НУЖНОМУ ПОЛЮ. ЗДЕСЬ НУЖНОЕ ПОЛЕ "НоменклатураОтбор"
ЗначениеРасшифровки = Мой_СерверныйМодуль.ПолучитьЗначениеРасшифровки(Расшифровка,"НоменклатураОтбор",ЭтаФорма.ОтчетДанныеРасшифровки);
Если Не ЗначениеРасшифровки = Неопределено и ЗначениеЗаполнено(ЗначениеРасшифровки) Тогда
//
СтандартнаяОбработка = Ложь;
//
СтруктураРасшифровки = Новый Структура("Номенклатура,ДанныеРасшифровки,Расшифровка",ЗначениеРасшифровки,ЭтаФорма.ОтчетДанныеРасшифровки,расшифровка);
//
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(
ЭтаФорма.ОтчетДанныеРасшифровки,
Новый ИсточникДоступныхНастроекКомпоновкиДанных(ЭтаФорма.Отчет));
// ОСТАВЛЯЕМ ВОЗМОЖНОСТЬ ОТКРЫТЬ НОМЕНКЛАТУРУ
ДоступныеДействия = Новый Массив;
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
// ДОБАВЛЯЕМ ВОЗМОЖНОСТЬ РАСШИФРОВАТЬ ОТЧЕТАМИ
ДополнительныеДействияМеню = Новый СписокЗначений;
ДополнительныеДействияМеню.Добавить("Остатки и доступность");
ДополнительныеДействияМеню.Добавить("Продажи");
ДополнительныеДействияМеню.Добавить("Оплаченные заказы клиентов");
//
ОписаниеОповещения = Новый ОписаниеОповещения("ПоказатьВыборДействияЗавершениеРасшифровка",Мой_КлиентскийМодуль,СтруктураРасшифровки);
//
ОбработкаРасшифровки.ПоказатьВыборДействия(ОписаниеОповещения,Расшифровка,ДоступныеДействия,ДополнительныеДействияМеню);
//
КонецЕсли;
КонецЕсли;
Если ПолноеИмяОтчета = "ВнешнийОтчет.ОчередьЗаявокНаРасходДенежныхСредств" Тогда // ОТЧЕТ ОТСУТСТВУЕТ В МОИХ ПУБЛИКАЦИЯХ. ПРИВОДИТСЯ КАК ПРИМЕР ПОИСКА В ГРУППИРОВКЕ НУЖНОГО ПОЛЯ
//
// ПРОВЕРЯЕМ, ЧТО ЩЕЛКНУЛИ ПО НУЖНОМУ ПОЛЮ. ЗДЕСЬ НУЖНОЕ ПОЛЕ "ЕстьSWIFT"
ЗначениеРасшифровки = Мой_СерверныйМодуль.ПолучитьЗначениеРасшифровки(Расшифровка,"ЕстьSWIFT",ЭтаФорма.ОтчетДанныеРасшифровки);
Если Не ЗначениеРасшифровки = Неопределено и ЗначениеЗаполнено(ЗначениеРасшифровки) Тогда
//
// ТЕПЕРЬ ПРОВЕРЯЕМ, ЧТО В ГРУППИРОВКЕ ЕСТЬ НУЖНОЕ НАМ ПОЛЕ. В ДАННОМ СЛУЧАЕ НУЖНО НАЙТИ ПОЛЕ "ЗаявкаНаРасходованиеДенежныхСредств"
СтруктураПолейРасшифровки = Мой_СерверныйМодуль.СформироватьДанныеРасшифровки(Расшифровка, ЭтаФорма.ОтчетДанныеРасшифровки);
Если СтруктураПолейРасшифровки.Свойство("ЗаявкаНаРасходованиеДенежныхСредств") и ЗначениеЗаполнено(СтруктураПолейРасшифровки.ЗаявкаНаРасходованиеДенежныхСредств) Тогда
СтандартнаяОбработка = Ложь;
//
СтруктураРасшифровки = Новый Структура("ЗаявкаНаРасходованиеДенежныхСредств,ДанныеРасшифровки,Расшифровка",СтруктураПолейРасшифровки.ЗаявкаНаРасходованиеДенежныхСредств,ЭтаФорма.ОтчетДанныеРасшифровки,расшифровка);
//
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(
ЭтаФорма.ОтчетДанныеРасшифровки,
Новый ИсточникДоступныхНастроекКомпоновкиДанных(ЭтаФорма.Отчет));
//
ДоступныеДействия = Новый Массив;
//ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение); // НАМ В ДАННОМ СЛУЧАЕ НЕ НАДО ОТКРЫВАТЬ ПОЛЕ "ЕстьSWIFT"
//
ДополнительныеДействияМеню = Новый СписокЗначений;
ДополнительныеДействияМеню.Добавить("Показать отчет по списаниям ДС и файлам SWIFT");
//
ОписаниеОповещения = Новый ОписаниеОповещения("ПоказатьВыборДействияЗавершениеРасшифровка",Мой_КлиентскийМодуль,СтруктураРасшифровки);
//
ОбработкаРасшифровки.ПоказатьВыборДействия(ОписаниеОповещения,Расшифровка,ДоступныеДействия,ДополнительныеДействияМеню);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПоказатьВыборДействияЗавершениеРасшифровка(ВыполненноеДействие,ПараметрВыполненногоДействия,ДополнительныеПараметры) Экспорт
//
//
Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда
ПоказатьЗначение(Неопределено,ПараметрВыполненногоДействия);
ИначеЕсли ВыполненноеДействие = "Открыть файл SWIFT" Тогда // открывает файл SWIFT - ОСТАВИЛ КАК ПРИМЕР РАСШИФРОВКИ ПО ЩЕЛЧКУ НА ССЫЛКУ НА ПРИСОЕДИНЕННЫЙ ФАЙЛ
//
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
ДополнительныеПараметры.СсылкаНаФайл, Неопределено);
РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, Ложь);
ИначеЕсли ВыполненноеДействие = "Остатки и доступность" Тогда // открывает отчет остатки и доступность
//
ИмяФормы = "Отчет.ОстаткиИДоступностьТоваров.Форма";
ПараметрыФормы = Новый Структура("КлючВарианта,СформироватьПриОткрытии","ПоНоменклатуреКонтекст",Истина);
//
СтруктураОтборов = Новый Структура("Номенклатура",ДополнительныеПараметры.Номенклатура);
Мой_СерверныйМодуль.ДобавитьПользовательскийОтбор("ОстаткиИДоступностьТоваров",ПараметрыФормы,СтруктураОтборов);
//
ОткрытьФорму(ИмяФормы, ПараметрыФормы, , Истина);
ИначеЕсли ВыполненноеДействие = "Оплаченные заказы клиентов" Тогда // открывает внешний отчет
//
ВнешнийОтчетОбработкаДляОткрытияСсылка = Мой_СерверныйМодуль.ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере("Оплаченные заказы клиентов");
// ВЫЗОВ ИЗ БСП ФУНКЦИИ ПОДКЛЮЧЕНИЯ ВНЕШНЕЙ ОБРАБОТКИ
ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);
//
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("КлючВарианта","ДляРасшифровки");
ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
СтруктураОтборов = Новый Структура("Номенклатура",ДополнительныеПараметры.Номенклатура);
ПараметрыФормы.Вставить("Отбор",СтруктураОтборов);
ОткрытьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма", ПараметрыФормы, ,Истина);
ИначеЕсли ВыполненноеДействие = "Продажи" Тогда // открывает отчет Продажи
//
УсловияОтбора = Новый Структура("Номенклатура",ДополнительныеПараметры.Номенклатура);
//
// СДЕСЬ СТОИТ КЛЮЧ ВАРИАНТА НАСТРОЙКИ, КОТОРАЯ СДЕЛАНА В ПОЛЬЗОВАТЕЛЬСКОМ РЕЖИМЕ. КАК ЕГО НАЙТИ ОПИСАНО //infostart.ru/1c/reports/2034867/ В РАЗДЕЛЕ "Для тех кто возможно не знал:"
ПараметрыОтчета = Новый Структура("Отбор, СформироватьПриОткрытии,КлючВарианта", УсловияОтбора, Истина, "631ff438-126a-42e0-89c4-53aa0298d862");
Открытьформу("Отчет.ВыручкаИСебестоимостьПродаж.Форма",ПараметрыОтчета);
ИначеЕсли ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать Тогда // ЗАГОТОВКА ПОКА НА ТЕСТИРОВАНИИ
//
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
ПараметрыФормы.Вставить("Расшифровка",Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(ДополнительныеПараметры.данныеРасшифровки,ДополнительныеПараметры.Расшифровка,ПараметрВыполненногоДействия));
//
ВнешнийОтчетОбработкаДляОткрытияСсылка = Мой_СерверныйМодуль.ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере("ЗРС по заказам поставщикам");
// ВЫЗОВ ИЗ БСП ФУНКЦИИ ПОДКЛЮЧЕНИЯ ВНЕШНЕЙ ОБРАБОТКИ
ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);
ОткрытьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма", ПараметрыФормы, ,Истина);
КонецЕсли;
КонецПроцедуры