|   |   | 
| 
 | Выгрузить в таблицу значений СКД | ☑ | ||
|---|---|---|---|---|
| 0
    
        Germeer 26.02.15✎ 20:47 | 
        Приветствую.
 Есть отчет на СКД, в отчете есть 2 варианта Основной и Расчет Пытаюсь выгрузить в Таблицу значений Вариант Расчет - не выгружается, ТЗ получается пустой. КомпоновщикНастроекТЗ = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроекТЗ.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ВО = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Расчет"); КомпоновщикНастроекТЗ.ЗагрузитьНастройки(Во.Настройки); НастройкиКомпоновщика = КомпоновщикНастроекТЗ.Настройки; ПараметрыНастройки = НастройкиКомпоновщика.ПараметрыДанных; // устанавливаем параметры отчета ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачДата")); ЗначениеПараметра.Значение = НачДата; ЗначениеПараметра.Использование = Истина; //КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(ПользовательскаяНастройкаПоиска.ХранилищеЗначений.Получить()); // Компоновка макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновщика,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); // Инициализация процессора компоновки Процессор = Новый ПроцессорКомпоновкиДанных; Процессор.Инициализировать(МакетКомпоновкиДанных); // Таблица значений, в которую будет получен результат ТЗ = Новый ТаблицаЗначений; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТЗ); ПроцессорВывода.Вывести(Процессор); Что делаю не так? По идее ТЗ нужна для расчета колонок, которые потом будут загружены в отчет Основной. Может кто-нибудь может предложить более лёгкий вариант, всё перепробовал и вычисляемые поля (но там загвоздка: колонки выгружаются в цикле, поэтому получить сразу все колонки для обработки не получается) Заранее Спасибо всем откликнувшимся. | |||
| 1
    
        Germeer 27.02.15✎ 10:38 | 
        Ни у кого нет соображений?     | |||
| 2
    
        Godofsin 27.02.15✎ 10:42 | 
        (1) То есть вариант, что запрос ничего не вернул, вы отвергаете?     | |||
| 3
    
        Germeer 27.02.15✎ 10:56 | 
        Там есть колонки, но нет строк :-(
 + есть отбор по Подразделению, Сотруднику, как эти отборы в варианте ОСНОВНОЙ программно засунуть в вариант РАСЧЕТ? | |||
| 4
    
        Godofsin 27.02.15✎ 10:58 | 
        (3) Еще раз, по вашему запросу и отбору есть данные для выборки? Или ТЗ пустое, ибо ему показывать нечего     | |||
| 5
    
        Godofsin 27.02.15✎ 10:59 | 
        (3) Ну отборы СКД доступны программно, крутите их как хотите?     | |||
| 6
    
        Godofsin 27.02.15✎ 10:59 | 
        ? = .     | |||
| 7
    
        vhl 27.02.15✎ 10:59 | 
        (3) есть колонки, но нет строк - как раз и значит, что скд отработала и результат запроса - пустой     | |||
| 8
    
        Germeer 27.02.15✎ 11:16 | 
        Всё, допетрил.
 КомпоновщикНастроекТЗ = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроекТЗ.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ВО = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Расчет"); КомпоновщикНастроекТЗ.ЗагрузитьНастройки(Во.Настройки); НастройкиКомпоновщика = КомпоновщикНастроекТЗ.Настройки; ПараметрыНастройки = НастройкиКомпоновщика.ПараметрыДанных; ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачДата")); ЗначениеПараметра.Значение = НачДата; ЗначениеПараметра.Использование = Истина; ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Организация")); ЗначениеПараметра.Значение = Организация; ЗначениеПараметра.Использование = Истина; КоллекцияОтборов = КомпоновщикНастроек.Настройки.Отбор.Элементы; Для каждого настр Из КоллекцияОтборов Цикл ЭлементОтбора = НастройкиКомпоновщика.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ВидСравнения = настр.ВидСравнения; ЭлементОтбора.Использование =настр.Использование; ЭлементОтбора.ЛевоеЗначение = Настр.ЛевоеЗначение; ЭлементОтбора.ПравоеЗначение = Настр.ПравоеЗначение; КонецЦикла; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновщика,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); Процессор = Новый ПроцессорКомпоновкиДанных; Процессор.Инициализировать(МакетКомпоновкиДанных); ТЗ = Новый ТаблицаЗначений; ТЗ.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТЗ); ПроцессорВывода.Вывести(Процессор); Так всё работает и отбор и выводит строки. Вспомнил про ДАТУ, но забыл про ОРГАНИЗАЦИЮ. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |