|   |   | 
| 
 | СКД простой вывод ТЗ с формы в Табдок | ☑ | ||
|---|---|---|---|---|
| 0
    
        trialex3 02.11.22✎ 19:07 | 
        Всем добрый день. Подскажите есть на УФ ТаблицаЗначений. Хотел через СКД просто вывести ее на ТабДок. Пока хотя бы без группировок - чисто детальные записи, а дальше буду усложнять. Написал процедуру, а всеравно ничего не выводит - где я ошибся?
 ТестированиеПодробно - ТЗ на форме ТабДок - Табличный документ на форме Процедура СформироватьИВывестиТабДок() СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных; КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки(); //Источник данных ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); ИсточникДанных.Имя = "ИсточникДанных1"; ИсточникДанных.ТипИсточникаДанных = "Local"; //Набор данных НаборДанныхОбъектСхемыКомпоновкиДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных")); НаборДанныхОбъектСхемыКомпоновкиДанных.Имя = "НаборДанных1"; НаборДанныхОбъектСхемыКомпоновкиДанных.ИмяОбъекта = "ТестированиеПодробно"; НаборДанныхОбъектСхемыКомпоновкиДанных.ИсточникДанных = "ИсточникДанных1"; //Поля данных ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "ХарактеристикаПривода"; ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "ХарактеристикаПривода"; ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "ХарактеристикаПривода"; ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "Номенклатура"; ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "Номенклатура"; ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "Номенклатура"; ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "Показатель"; ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "Показатель"; ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "Показатель"; ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "Количество"; ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "Количество"; ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "Количество"; ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "РежимТестирования"; ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "РежимТестирования"; ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "РежимТестирования"; //Поля группировки ГруппировкаДетальныеПоля = НастройкиКомпоновки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ГруппировкаДетальныеПоля.Использование = Истина; Автополе = ГруппировкаДетальныеПоля.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); Автополе.Использование = Истина; //Прочее КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки); ВнешниеНаборы = Новый Структура("ТестированиеПодробно", ДанныеФормыВЗначение(ТестированиеПодробно,Тип("ТаблицаЗначений"))); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборы); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДок); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры | |||
| 1
    
        trialex3 02.11.22✎ 19:44 | 
        При этом тестовый пример в внешней обработке выполняется прекрасно:
 Процедура Магия() ТаблицаИсточник = Новый ТаблицаЗначений; ТаблицаИсточник.Колонки.Добавить("Код"); ТаблицаИсточник.Колонки.Добавить("Наименование"); НоваяСтрока = ТаблицаИсточник.Добавить(); НоваяСтрока.Код = 1; НоваяСтрока.Наименование = "Электродрели"; НоваяСтрока = ТаблицаИсточник.Добавить(); НоваяСтрока.Код = 2; НоваяСтрока.Наименование = "Генераторы"; НоваяСтрока = ТаблицаИсточник.Добавить(); НоваяСтрока.Код = 3; НоваяСтрока.Наименование = "Шуруповерты"; СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных; КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; НастройкиКомпоновки = КомпоновщикНастроек.Настройки; //Источник данных ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); ИсточникДанных.Имя = "ИсточникДанных1"; ИсточникДанных.ТипИсточникаДанных = "Local"; //Набор данных НаборДанныхОбъектСхемыКомпоновкиДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных")); НаборДанныхОбъектСхемыКомпоновкиДанных.Имя = "НаборДанных1"; НаборДанныхОбъектСхемыКомпоновкиДанных.ИмяОбъекта = "ТаблицаИсточник"; НаборДанныхОбъектСхемыКомпоновкиДанных.ИсточникДанных = "ИсточникДанных1"; //Поля данных ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "Код"; ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "Код"; ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "Код"; ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "Наименование"; ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "Наименование"; ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "Наименование"; //Поля группировки ГруппировкаКомпоновкиДанных1 = НастройкиКомпоновки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ГруппировкаКомпоновкиДанных1.Использование = Истина; ПолеГруппировкиКомпоновкиДанных = ГруппировкаКомпоновкиДанных1.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировкиКомпоновкиДанных.Использование = Истина; ПолеГруппировкиКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("Код"); ГруппировкаКомпоновкиДанных2 = ГруппировкаКомпоновкиДанных1.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ГруппировкаКомпоновкиДанных2.Использование = Истина; ПолеГруппировкиКомпоновкиДанных2 = ГруппировкаКомпоновкиДанных2.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировкиКомпоновкиДанных2.Использование = Истина; ПолеГруппировкиКомпоновкиДанных2.Поле = Новый ПолеКомпоновкиДанных("Наименование"); АвтоВыбранноеПолеКомпоновкиДанных = ГруппировкаКомпоновкиДанных1.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); АвтоВыбранноеПолеКомпоновкиДанных.Использование = Истина; АвтоВыбранноеПолеКомпоновкиДанных = ГруппировкаКомпоновкиДанных2.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); АвтоВыбранноеПолеКомпоновкиДанных.Использование = Истина; // КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки); ВнешниеНаборы = Новый Структура("ТаблицаИсточник", ТаблицаИсточник); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборы); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Табдок); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры | |||
| 2
    
        _Batoo 02.11.22✎ 19:50 | 
        поля группировки не добавил же     | |||
| 3
    
        trialex3 02.11.22✎ 20:09 | 
        (2) 
 ГруппировкаДетальныеПоля = НастройкиКомпоновки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ГруппировкаДетальныеПоля.Использование = Истина; Автополе = ГруппировкаДетальныеПоля.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); Автополе.Использование = Истина; Вот же добавил только детальные записи, не? Или их по другому надо как то прописывать? | |||
| 4
    
        avp449 02.11.22✎ 20:55 | 
        Не увидел добавление полей в выбранные поля настроек КД.     | |||
| 5
    
        trialex3 03.11.22✎ 16:18 | 
        (4) Можно поподробнее? у меня в тестовом примере вроде тоже ничего не добавлено - но все работает.     | |||
| 6
    
        avp449 03.11.22✎ 16:26 | 
        (5) У вас закладка "Выбранные поля" непосредственно настроек компоновки получается пустой. Вряд ли в таком отчете что-то должно выводиться.     | |||
| 7
    
        avp449 03.11.22✎ 16:34 | 
        (5) Во втором примере используется структура с конкретными полями группировки. Они будут автоматически выводиться, если у группировок добавлено автополе выбора. В первом примере у вас только детальные записи. Поэтому сравнивать их нельзя.     | |||
| 8
    
        trialex3 05.11.22✎ 17:01 | 
        (7) Спасибо. То есть мне надо в выбранные поля добавить все поля из ТЗ?     | |||
| 9
    
        trialex3 06.11.22✎ 18:08 | 
        (7) Да вы были прав. В настройки добавляем выбранные поля и все отображается
 Код ВыбранноеПоле = НастройкиКомпоновки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле=Новый ПолеКомпоновкиДанных("ХарактеристикаПривода"); | |||
| 10
    
        trialex3 06.11.22✎ 21:45 | 
        (9) Хотя всеравно непонятно.
 В выбранных полях есть номенклатура и количество в группировках только одна - номенклатура, а количество ресурс. По идее должна вывестись номенклатура с средним количеством а номенклатура не группируется... Просто выводится как в ТЗ без группировки | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |