Имя: Пароль:
1C
1С v8
Программное выполнение СКД
0 onx1
 
21.10.19
14:32
Почему-то не работает даже простой отчет при попытках программно сформировать через СКД. Где я мог ошибиться или что ещё забыл?

    СхемаКомпоновки = Новый СхемаКомпоновкиДанных;
    
    Источник = СхемаКомпоновки.ИсточникиДанных.Добавить();
    Источник.Имя = "ЛокальнаяБаза";
    Источник.СтрокаСоединения = "";
    Источник.ТипИсточникаДанных = "Local";
    
    НаборДанных = СхемаКомпоновки.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
    НаборДанных.ИсточникДанных = "ЛокальнаяБаза";
    НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
    НаборДанных.Имя = "ДанныеЗапрос";
    НаборДанных.Запрос = "ВЫБРАТЬ
                         |    ПодразделенияОрганизаций.Ссылка КАК Подразделение
                         |ИЗ
                         |    Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций";
    
    ПолеПодразделение = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
    ПолеПодразделение.Заголовок = "Подразделение";
    ПолеПодразделение.ПутьКДанным = "Подразделение";
    ПолеПодразделение.Поле = "Подразделение";
    
    Настройки = СхемаКомпоновки.НастройкиПоУмолчанию;
    
    ГруппировкаПодразделение = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    ПолеГруппировки = ГруппировкаПодразделение.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    ПолеГруппировки.Использование = Истина;
    ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Подразделение");
    ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
        
    ВыбранноеПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
    ВыбранноеПоле.Заголовок = "Подразделение";
    ВыбранноеПоле.Использование = Истина;
    ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Подразделение");
    
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки));
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
        
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновки, КомпоновщикНастроек.ПолучитьНастройки());

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


Табличный документ в результате получается пустой.
1 mikecool
 
21.10.19
14:34
настрой руками в гуи, в ПриКомпоновкеРезультата смотришь - что получилось и что у тебя написано
2 onx1
 
21.10.19
14:44
(1) Спасиб за совет. А смотреть только переменную "СхемаКомпоновкиДанных" можно или ещё какие-нибудь есть?
3 mikecool
 
21.10.19
14:45
(2) для настроек по умолчанию хватит
4 onx1
 
21.10.19
14:48
(3) Это да, просто как всегда не понятно какие переменные по умолчанию доступны в модуле отчета.
5 Kigo_Kigo
 
21.10.19
14:50
6 onx1
 
21.10.19
15:02
Даже визуально сравнивая настройки в ПриКомпоновкеРезультата, всё равно не могу найти ошибку.
Существует ли программный генератор кода по схеме, так чтобы на входе схема, а на выходе табличный документ?
7 toypaul
 
гуру
21.10.19
15:15
8 toypaul
 
гуру
21.10.19
15:18
ГруппировкаПодразделение.Использование = Истина
9 onx1
 
21.10.19
15:29
(8) Не помогло, к сожалению.
(7) А за это спасибо. Действительно помогает!
10 Tonik992
 
21.10.19
15:37
КомпоновщикНастроек.ПолучитьНастройки()
Посмотри, структура отчета заполнена?
11 runoff_runoff
 
21.10.19
15:39
автополе в группировке есть (в выборе у группировки)?..
12 Tonik992
 
21.10.19
15:39
Вам нужно в ГруппировкаПодразделение
Добавить в Выбор добавить поле.
13 onx1
 
21.10.19
16:05
(12) Да, действительно разобрался, что надо было добавить "авто поле" по группировке "Подразделение":
ГруппировкаПодразделение.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
14 onx1
 
21.10.19
16:08
Всем спасибо! Миста прям порадовала, теперь даже можно получить ответ )
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс