Имя: Пароль:
1C
 
СКД, не удается связать с внешним набором данных
0 Momus
 
02.03.20
11:05
Есть отчет, содержащий определенный набор полей: Организация, КОнтрагент, Период, какие-то ресурсы.
Есть ТЗ, которую мне нужно связать с отчетом со следующими полями: Организация, КОнтрагент, Период, Количество. Для каждой колонки тз указал тип.
В СКД создал внешний набор данных: задал поля, указал для них тип, обозначил роли.
Связь между наборами идет по Организация, КОнтрагент, Период. При формировании отчета ошибка: "Не найден внешний набор данных ТЗ". Попробовал выводить только период (одно поле во внешнем наборе и по нему же связь) - рабоает, стоит к нему добавить поле-Количество - сразу ошибка: не найдено поле замены Количество. Такой примитивный пример, а какой-то затык, который никак не могу найти. Для СКД также отключил автозаполнение.
Что нужно еще проверить?
1 Momus
 
02.03.20
11:08
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ВывестиСКДВТабличныйДокумент(СхемаКомпоновкиДанных, ДокументРезультат, КомпоновщикНастроек);
...

Процедура ВывестиСКДВТабличныйДокумент(МакетСКД, ТабличныйДокумент, КомпоновщикНастроек = Неопределено)
    
    Если КомпоновщикНастроек = Неопределено Тогда
        КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
        КомпоновщикНастроек.ЗагрузитьНастройки(МакетСКД.НастройкиПоУмолчанию);        
    КонецЕсли;
    
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();  
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    МакетКомпоновки = КомпоновщикМакета.Выполнить(МакетСКД, Настройки);
    
    пПериод = Настройки.ПараметрыДанных.Элементы.Найти("Период");
    Если пПериод <> Неопределено Тогда
        ТабКолУб = ПолучитьТЗКолУбыли(пПериод.Значение);
        ВнешнийНаборДанных = Новый Структура("ТабКолУб", ТабКолУб);
        ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных);
    Иначе
        ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
    КонецЕсли;

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
    
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
2 toypaul
 
гуру
02.03.20
11:13
(1) надо включить мозги и проанализировать свой код. это не сложно :) ошибка очевидна
3 Momus
 
02.03.20
11:14
(2) не включаются. Прошу подсказку... Ошибка в ВывестиСКДВТабличныйДокумент?
4 toypaul
 
гуру
02.03.20
11:15
(3) да
5 Ц_У
 
02.03.20
11:17
(1) набор внешний то где?
6 DmitriyDI
 
02.03.20
11:26
(0)

второй раз зачем написано:

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

?
7 Momus
 
02.03.20
11:30
(6) это я криво скопировал, сорри. Но ошибка не в этом
8 Momus
 
02.03.20
12:02
В общем ошибки никакой не было, она шла дальше по коду (в том моменте, когда я пытаюсь выгрузить результат отчета в таблицу значений).