Имя: Пароль:
1C
1С v8
Как переключить вариант настроек в СКД?
0 ChAlex
 
28.09.11
19:49
Не срабатывает выбор сохраненных пользователем настроек в СКД. Сделан отчет в СКД (таблица). Отчет выводятся программным способом поскольку используется внешний набор данных. Допустим нужно не выводить какую-нибудь группировку. Открываем настройки убираем использование группировки и сохраняем вариант настройки. Теперь естественно хотелось бы иметь возможность ими пользоваться. Но применить вариант можно только ПЕРВЫЙ раз после открытия отчета!Тогда отчет выводится в нужном варианте. Но если не закрывать форму и выбрать иной вариант настроек - ступор, они не применяются и выводится отчет в предыдущем варианте. При этом если посмотреть настройки, то нужные группировки включены (ну или выключены в зависимости от варианта). Эти же значения в соответствующих местах структуры настроек перед выполнением команды
   МакетКомпановки=КомпановщикМакета.Выполнить(Схема,Отчет.КомпоновщикНастроек.Настройки);

В чем трабл? Что я делаю не так? Подскажите!
1 zippygrill
 
28.09.11
20:02
(0) видишь банер в правом верхнем углу? скачай курс. Там ести пример как все это программно отрабатывать.
2 ChAlex
 
28.09.11
20:08
(1) Да я уже перечитал все что в инете есть, но ответа так и не нашел. Почему тогда после открытия отчета я выбираю нужный мне вариант и он работает? Но только ОДИН раз!!
Вот код

   Табл=ПолучитьВыборку();
   
   Схема=РеквизитФормыВЗначение("Отчет").ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
   
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Организация")).Значение=обГоловнаяОрганизация(ПараметрыСеанса.ТекущаяОрганизация);
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Организация")).Использование=Истина;
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Валюта")).Значение=Валюта;
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Валюта")).Использование=Истина;
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Период")).Значение=ТекущаяДата();
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Период")).Использование=Истина;
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("ПериодПроизводства")).Значение=Отчет.ПериодПроизводства;
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("ПериодПроизводства")).Использование=Истина;
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Ассортимент")).Значение=Табл.Скопировать(,"Продукция");
   Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Ассортимент")).Использование=Истина;
   
   Отчет.КомпоновщикНастроек.ПолучитьНастройки();
   
   КомпановщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпановки=КомпановщикМакета.Выполнить(Схема,Отчет.КомпоновщикНастроек.Настройки);
   
   ВнешниеНаборыДанных=Новый Структура;
   ВнешниеНаборыДанных.Вставить("Выборка",Табл);
   
     ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпановки,ВнешниеНаборыДанных);
   
   
   ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(Таб);
   ПроцессорВывода.Вывести(ПроцессорКомпоновки);
3 ChAlex
 
28.09.11
21:30
help
4 ChAlex
 
29.09.11
00:09
Ап
5 ChAlex
 
29.09.11
11:21
Нашел как решить этот трабл. Тупо повторно перегрузить настройки

Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Отчет.КомпоновщикНастроек.ПолучитьНастройки());

То бишь повторно загрузить выгруженную копию.

Явный баг платформы!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс