Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамСистема компоновки данных

1С:Предприятие 8.2 /
Разработчикам /
Система компоновки данных

Оглавление

Работа с расшифровкой в управляемом приложении

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

Для того чтобы переопределить расшифровку в форме отчета, нужно установить обработчик события ОбработкаРасшифровки у поля табличного документа , в который выводится результат отчета.

Выбрать действие расшифровки можно при помощи объекта ОбработкаРасшифровкиКомпоновкиДанных.

Пример создания объекта ОбработкаРасшифровкиКомпоновкиДанных:

 

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

В данном примере создается объект типа ОбработкаРасшифровкиКомпоновкиДанных, он инициализируется адресом хранилища, в котором располагаются данные расшифровки (в форме отчета по умолчанию адрес данных расшифровки записывается в реквизит ДанныеРасшифровки), источник доступных настроек. В качестве источника доступных настроек используется источник для отчета.

После создания объекта, можно воспользоваться его методом ВыбратьДействие, для выбора действия пользователя .

Пример:

 

Перем ВыбранноеДействие;
Перем ПараметрыВыбранногоДействия;

...

ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыбранноеДействие, 
ПараметрыВыбранногоДействия);

Результат выбора пользователя будет помещен в переменные ВыбранноеДействие и ПараметрыВыбранногоДействия.

Использовать данный выбор можно, например, так:

 

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

В данном примере, выбор пользователем пункта "Открыть" приведет к тому, что выбранное значение покажется пользователю.

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

Полностью обработчик расшифровки будет выглядеть так:

 

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

При необходимости, расшифровку, выдаваемую методом ВыбратьДействие можно выполнить и самостоятельно.

Пример:

 

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

В методе ОбработатьРасшифровку видно, что для применения настроек расшифровки можно использовать метод ПрименитьНастройки. Метод ПрименитьНастройки может вернуть как полные настройки компоновки данных, так и пользовательские настройки компоновки данных. Пользовательские настройки расшифровки могут быть получены, если применяемые настройки можно полностью применить в пользовательских настройках .


Нас находят: когда только одна партия господствует тогда управляют страсти расшифровка, новый описаниеобработкирасшифровкикомпоновкиданных, ОписаниеОбработкиРасшифровкиКомпоновкиДанных, ОписаниеОбработкиРасшифровкиКомпоновкиДанных пример, отчет управляемое приложение пример расшифровка, ОтчетОбработкаРасшифровки на клиенте, параметр расшифровки в управляемых формах, ПолучитьИзВременногоХранилища(ДанныеРасшифровки);, расшифровка (стимул), расшифровка объектов при помощи приложения


Подписка на новости RSS     Добавьте в закладки Google fusion     Мы в Google+    

 

Мы ВКонтакте

 

Мы на Facebook