Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Программное выполнение СКД

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

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

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


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

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