helpf.pro
Регистрация

v8: Нестандартная расшифровка СКД

N e o N
20.09.2016 12:02Прочитано: 3347

Необходимо, чтобы при двойном клике по ячейке формировалась расшифровка по регистратору в отдельной форме.

Пока у меня так.

Код 1C v 8.3
 &НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
АдресХранилища = "";
Результат = ПоместитьФайл(АдресХранилища, "C:\Users\noviy1sadmintest\Desktop\ВаловаяПрибыльV6.erf", , Ложь);
ОтработатьРасшифровку(Расшифровка, АдресХранилища);
КонецПроцедуры


&НаСервере
Процедура ОтработатьРасшифровку(Расшифровка, АдресХранилища)


ОбработкаРасшифровки  = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет));
НастройкиКомпоновки = ОбработкаРасшифровки.Расшифровать(Расшифровка, Новый ПолеКомпоновкиДанных("Регистратор"));

ИмяОтчета = ВнешниеОтчеты.Подключить(АдресХранилища, "ВаловаяПрибыль123");

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

КонецПроцедуры

Ругается на нехватку параметров при СкомпоноватьРезультат(). Как их заполнить, формы то нет на сервере?

Yandex
Возможно, вас также заинтересует
Реклама на портале
escritor
21.09.2016 02:09Ответ № 1

Лучше файл обработки встроить в конфигурацию

and23121972
26.02.2017 13:58Ответ № 2
Код 1C v 8.3
 

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыполненноеДействие;
СтандартнаяОбработка = Ложь;
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки,
Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
ДоступныеДействия = Новый Массив();
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать);
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка,ВыполненноеДействие,ДоступныеДействия,);
Если Настройки <> Неопределено Тогда
Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать Тогда
Отчет = Отчеты.Отчет_001.Создать();
Форма = Отчет.ПолучитьФорму("ФормаОтчета");
Форма.Открыть();
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Отчет.СформироватьОтчет(Форма.ЭлементыФормы.Результат, Форма.ДанныеРасшифровки);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
and23121972
26.02.2017 14:01Ответ № 3
Код 1C v 8.3
 

Процедура СформироватьОтчет(ТабличныйДокумент, ДанныеРасшифровки) Экспорт
ТабличныйДокумент.Очистить();
Макет = ПолучитьМакет("Макет");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
Парам = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы;
ТабличныйДокумент.Вывести(ОбластьШапка);
Настройки = КомпоновщикНастроек.Настройки;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
// Инициализируем процессор СКД
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
// Инициализируем процессор вывода
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.