Результат ОтбораКомпоновки в ТаблицуЗначений

1. sys1c 31.01.24 08:09 Сейчас в теме
Всем привет.
УТ11.
Синхронизация данных через Универсальный формат.
Обработка ПомощникИнтерактивногоОбменаДанными (как она называется в конфигураторе) там на форме отбор СКД, в которые засунуты произвольные объекты, к примеру пару справочников.
Мне нужно получить массив этих объектов.

В конфигураторе выглядит вот так.

Пытаюсь получить массив вот так:

&НаСервере
Процедура ПолучитьМассивСинхронизации()
	
	ДанныеКомпоновщика = ПолучитьИзВременногоХранилища(ДополнениеВыгрузки.АдресКомпоновщикаВсехДокументов);
	
	Источник = Новый ИсточникДоступныхНастроекКомпоновкиДанных(ДанныеКомпоновщика.СхемаКомпоновки);
	Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
	Компоновщик.Инициализировать(Источник);
	Компоновщик.ЗагрузитьНастройки(ДанныеКомпоновщика.Настройки);


    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
	
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(ДанныеКомпоновщика.СхемаКомпоновки ДанныеКомпоновщика.Настройки, ДанныеРасшифровки);

    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);

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

    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);	
КонецПроцедуры	
Показать


получаю ругань конфигуратора:

Ошибка при вызове метода контекста (Инициализировать)
{Обработка.ПомощникИнтерактивногоОбменаДанными.Форма.Форма.Форма(341)}:ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);
{Обработка.ПомощникИнтерактивногоОбменаДанными.Форма.Форма.Форма(316)}:ПолучитьМассивСинхронизации();

по причине:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка создания набора данных "ТаблицаМетаданныхСоставаУзла"
по причине:
Не найден внешний набор данных "ТаблицаМетаданныхСоставаУзла"


где ошибся?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 31.01.24 09:35 Сейчас в теме
(1)
Не найден внешний набор данных "ТаблицаМетаданныхСоставаУзла"

Ну вот же все написано.
Надо создать таблицу значений нужной структуры, заполнить ее, и передать во внешний набор в скд.

ПроцессорКомпоновкиДанных (DataCompositionProcessor)
Инициализировать (Initialize)
Синтаксис:
Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>, <ОграничиватьПолучениеПолейПоСсылкамПоПравуПросмотр>, <МенеджерВременныхТаблиц>)
3. sys1c 31.01.24 10:15 Сейчас в теме
(2) честно говоря не пониманию, что такое в данной ситуации "ВнешниеНаборыДанных" и что мне в них указать.
нужно результат отбора выгрузить в таблицу значений.
отбор указан, в какую таблицу выгружать указан, что за "ВнешниеНаборыДанных" ?
4. Sashares 35 31.01.24 11:40 Сейчас в теме
(3) Документацию по СКД почитать, все такое.
Если в СКД используется набор данных - объект, то данные для этого набора данных передаются через Внешние наборы данных. См.скрин.

То есть в СКД в наборе данных объявляются колонки, а таблица с данными этого набора загружается через внешние наборы.

В ПроцессорКомпоновкиДанных.Инициализировать в параметр ВнешниеНаборыДанных надо передать структуру в ключе которой будет имя внешнего набора - в вашем случае "ТаблицаМетаданныхСоставаУзла", а в значении - таблица значений с данными.

Смотрите как эта таблица заполняется в обработке - заполняйте аналогично.
Прикрепленные файлы:
5. sys1c 31.01.24 12:18 Сейчас в теме
(4) у меня просто Отбор на форме.
мне его надо выгрузить в Таблицу значений, причем тут Набор данных?
6. Sashares 35 31.01.24 13:34 Сейчас в теме
(5)
Вы вызываете процедуру ПолучитьМассивСинхронизации.
В ней используется СКД с набором данных объект.
Логика не просматривается, нет?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот