Имя: Пароль:
1C
1С v8
Как программно сменить компоновщик данных?
0 idw
 
21.01.12
22:48
Я деалю так, но пишет, что "Поле такое то не найдено":

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

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
1 idw
 
21.01.12
22:56
В первой схеме есть поле "Количество", во второй его нет. Наверное из-за этого выходит ошибка. Но вот почему схема компоновки данных не загружается?
2 idw
 
22.01.12
08:56
up
3 idw
 
22.01.12
10:30
Надо делать вот так:

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;    
   Если флажок = 1 тогда
       СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
   Иначе
       СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("СКД_строки");
   КонецЕсли;
   Настройки=СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
   КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);        
   
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
4 ЧеловекДуши
 
22.01.12
10:32
А зачем?
Поди все делал во внешнем отчете ;)
6 idw
 
22.01.12
10:40
(4) у меня две схемы компоновки данных. Как бы два отчета. Вот поэтому и делал.
(5) злобный спамер.