Имя: Пароль:
1C
1С v8
v8: Новая настройка КомпоновщикаНастроек
0 Kyrtizanka
 
23.04.13
18:30
Подскажите, что делаю неправильно
Делаю отчет , формируется, но при расшифровке по документе пытаюсь вызвать другую СКД, с другими настройками, отчет формируется, но настройки остаются от первоначального отчета, при этом я специально вызываю ещё одну форму отчета

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


Процедура СформироватьДанныеПоДокументам(Таб, ДанныеРасшифровки) Экспорт
СхемаКомпоновкиДанных = ПолучитьМакет("РасчетПремии");
   
КомпНастроек =  Новый КомпоновщикНастроекКомпоновкиДанных;
ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных);
КомпНастроек.Инициализировать(ИсточникНастроек);
КомпНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
   ПараметрНачПериода = КомпНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый  ПараметрКомпоновкиДанных("НачалоПериода"));
   Если ПараметрНачПериода <> Неопределено тогда
       ПараметрНачПериода .Значение = НачалоДня(НачалоПериода);
       ПараметрНачПериода.Использование = Истина;
   КонецЕсли;
   ПараметрКонПериода = КомпНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый  ПараметрКомпоновкиДанных("КонецПериода"));
   Если ПараметрКонПериода <> Неопределено тогда
       ПараметрКонПериода.Значение = КонецДня(КонецПериода);
       ПараметрКонПериода.Использование = Истина;
   КонецЕсли;
Настройки = КомпНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки,Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Таб);
   
ПроцессорВывода.НачатьВывод();
//начинаю выводить данные
1 Kyrtizanka
 
23.04.13
18:31
Данные выводятся, но если посомтреть настройки, там ничего не поменяалось, осталась первоначальная огромная настройка, потом в документ провалиться не могу
2 Kyrtizanka
 
23.04.13
18:34
до этого делало что-то подобное, но там я искуственно называла колонки в настройки, выводила , а после загружала певоначальные настройки, чтобы пользователь формируя очет с новыми параметрами, получал отчет с новыми названиями столбцов,  все получалось
3 SherifSP
 
23.04.13
18:37
Не понятен вопрос, вам нужно новую настройку открывать?
4 zladenuw
 
23.04.13
18:39
(1)а это че НастройкиРасшифровки ?
и чего ты пихаешь его в настройки ?
5 SherifSP
 
23.04.13
18:39
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки,Истина); В параметре МакетКомпоновки, посмотрите в отладке отборы и настройки
6 Kyrtizanka
 
23.04.13
18:40
да, отчет формирует данные по новой настройке, но я так понтмаю, чтоя ещё настройку должна заменить у компановщика формы отчета
7 Serginio1
 
23.04.13
18:41
Процедура УстановитПараметры(Элементы,ИмяПараметра,Значение)
   Парам=Элементы.Найти(Новый ПараметрКомпоновкиДанных(ИмяПараметра));
   Парам.Значение      = Значение;
   Парам.Использование = Истина;
   
КонецПроцедуры



Если ТипЗнч(Параметры)=Тип("Структура") Тогда
       Элементы1= КомпоновщикНастроек1.Настройки.ПараметрыДанных.Элементы;
       
       Для Каждого Параметр из Параметры Цикл
           УстановитПараметры(Элементы1,Параметр.Ключ,Параметр.Значение);
       КонецЦикла;
       
   КонецЕсли;
8 zladenuw
 
23.04.13
18:42
найди книгу по хрусталевой. там есть пример
9 Kyrtizanka
 
23.04.13
18:44
сегодня посмотрю книгу, она дома((
10 Kyrtizanka
 
23.04.13
18:45
эх это СКД, каждый раз что-то новое, нужно все таки потратить время и разобраться с книгой
11 Kyrtizanka
 
23.04.13
18:47
просто у меня отчет формируется, настройки от основной схемы компановки данных и в сам документ открыть  не могу, ругается, нужно разбираться((
12 zladenuw
 
23.04.13
18:48
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ДанныеРасшифровки =     Новый ДанныеРасшифровкиКомпоновкиДанных;  
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

Вроде так в книге :)
13 Serginio1
 
23.04.13
19:07
МакетКомпоновки1 = КомпоновщикМакета1.Выполнить(СхемаКомпоновкиДанных1, КомпоновщикНастроек1.Настройки,ДанныеРасшифровки1);
14 sanja26
 
23.04.13
19:19
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, выбДействие);
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Настройки = КомпоновщикНастроек.ПолучитьНастройки();