Вход | Регистрация

1С:Предприятие ::

Метки: 

как выбрать вариант отчета программно

Я
   aleksejafonkin
 
06.12.17 - 14:50
Процедура ПриКомпоновкеРезультата(ДокументРезультат, 
ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
        МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
                    
        ////////////////////

        ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
        
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
        ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
        ПроцессорВывода.Вывести(ПроцессорКомпоновки);
        
КонецПроцедуры

Я понимаю что варианты находятся тут СхемаКомпоновкиДанных.ВариантыНастроек , но не понимаю как выбрать нужный. Подскажите пожалуйста и просьба пишите по делу.
 
  Рекламное место пустует
   Mankubus
 
1 - 06.12.17 - 15:37
(0) взять нужный вариатн из схемы, тем более уже знаешь где это. Выгрузить его настройки. Загрузить их в компоновщик
   Гипервизор
 
2 - 06.12.17 - 15:52
Процедура УстановитьВариантыНастроек()
    
лКомПанель = ЭлементыФормы.ДействияФормы; 
лНоваяКнопка = лКомПанель.Кнопки.Вставить(0, "ВариантыОтчетов", ТипКнопкиКоманднойПанели.Подменю, "Варианты отчетов"); 
лНовоеДействие = Новый Действие("СменаВариантаНастройки"); 
    
Для каждого лНастройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
лНастройка = СхемаКомпоновкиДанных.ВариантыНастроек[Сч];
лНоваяКнопка = лКомПанель.Кнопки.ВариантыОтчетов.Кнопки.Добавить("Вариант" + Строка(Сч), ТипКнопкиКоманднойПанели.Действие, лНастройка.Представление, лНовоеДействие); 
Сч = Сч + 1;
КонецЦикла;
    
КонецПроцедуры

Процедура СменаВариантаНастройки(Элемент)
    
Для каждого лНастройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
Если Элемент.Текст = лНастройка.Представление Тогда
КомпоновщикНастроек.ЗагрузитьНастройки(лНастройка.Настройки);
Заголовок = Элемент.Текст;
Прервать;
КонецЕсли;
КонецЦикла;
    
КонецПроцедуры
   Franchiser
 
3 - 06.12.17 - 15:54
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Найти("ТвойВариант").Настройки);
   aleksejafonkin
 
4 - 06.12.17 - 16:03
(1) (2) (3) Спасибо! Сейчас прожую и сделаю
   aleksejafonkin
 
5 - 06.12.17 - 16:19
(3) (1) 
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
    
    Для Каждого ВариантОтчета из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
        Если НастройкиОтчета.ПараметрыДанных.Элементы[0].Значение = Перечисления.РазделыУчета_ПлатежиПоступлений.КредитПоступление Тогда
            Если ВариантОтчета.Имя = "КредитнаяЛиния" Тогда
                лкВариантОтчета = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("КредитнаяЛиния");
                КомпоновщикНастроек.ЗагрузитьНастройки(лкВариантОтчета.Настройки);
            КонецЕсли;
        ИначеЕсли НастройкиОтчета.ПараметрыДанных.Элементы[0].Значение = Перечисления.РазделыУчета_ПлатежиСписаний.Кредит Тогда
            Если ВариантОтчета.Имя = "ВозвратКредитов" Тогда
                лкВариантОтчета = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("ВозвратКредитов");
                КомпоновщикНастроек.ЗагрузитьНастройки(лкВариантОтчета.Настройки);
            КонецЕсли;    
        КонецЕсли;
    КонецЦикла;    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
КонецПроцедуры
Что я делаю не так?
лкВариантОтчета = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("КредитнаяЛиния");
КомпоновщикНастроек.ЗагрузитьНастройки(лкВариантОтчета.Настройки);
тут всё хорошо, а тут
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
берет он так же первый вариант отчете "ВозвратКредитов"
не понимаю...
   Franchiser
 
6 - 06.12.17 - 16:33
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);

Где тут твои новые настройки?
   Franchiser
 
7 - 06.12.17 - 16:35
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);

Или так:
 МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, лкВариантОтчета.Настройки, ДанныеРасшифровки);
   aleksejafonkin
 
8 - 06.12.17 - 16:39
(7) огромное тебе спасибо!
   Franchiser
 
9 - 06.12.17 - 16:57
(8) в 1-м случае только КомпоновщикНастроек.ПолучитьНастройки() а не Настройки


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует