Имя: Пароль:
1C
1С v8
Как переключиться с одной СКД на другую и без проблем с расшифровкой?
0 SashaNox
 
25.03.13
12:05
Добрый день! Использую в отчете две схемы компоновки, переключаюсь между ними так:

СхемаКомпоновкиДанных = ПолучитьМакет("СхемаКомпоновкиДанных_2");
           
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

Но при расшифровке отчета используется схема установленная Основной, и выдает ошибку следующего содержания: "Поле "Поле1" не может использоваться в группировке "Поле2"". В основной схеме просто даже нет этого поля.
Как быть, как правильно переключиться между схемами чтобы расшифровка работала правильно?
1 Defender aka LINN
 
25.03.13
12:09
(0) Обрабатывать руками. Пример - в типовой подсистеме
2 le_
 
25.03.13
12:09
можно так:
СхемаКомпоновкиДанных = ПолучитьМакет("МояСКД");
Настройки = КомпоновщикНастроек.Настройки;
ДанныеРасшифровкиСКД = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, МоиДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровкиСКД, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


И в обработке расшифровки использовать МоиДанныеРасшифровки.
3 SashaNox
 
25.03.13
12:13
Заранее извиняюсь, если глупый вопрос, но как ее там использовать?
4 le_
 
25.03.13
12:17
Как-то так:
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(МоиДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(МояСКД));
ДоступныеДействия = Новый Массив;
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
Рез = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия);
5 SashaNox
 
25.03.13
17:23
Что-то у меня не получается:

ругается здесь:
МакетКомпоновки            = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, МоиДанныеРасшифровки);

Ошибка компоновки макета
по причине:
Поле "Поле1" не может быть использовано в группировке "Поле2"
6 SashaNox
 
25.03.13
17:44
ругается в обработке расшифровке:

Рез = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия);

Ошибка информации расшифровки: не найден элемент расшифровки

блин, да как сменить эту схему то нормально??
7 SashaNox
 
25.03.13
18:34
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");    
   
Настройки                    = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
МоиДанныеРасшифровки   = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета            = Новый КомпоновщикМакетаКомпоновкиДанных;
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
МакетКомпоновки            = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, МоиДанныеРасшифровки);
ПроцессорКомпоновкиДанных    = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , МоиДанныеРасшифровки);

почему то МоиДанныеРасшифровки.Элементы.Количество() = 0, что не так?
8 SashaNox
 
25.03.13
19:28
Вопрос закрыт, разобрался!