Вход | Регистрация
 

СКД, не удается связать с внешним набором данных

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

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

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

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

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

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

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