Как в пакете XDTO описать значение смешанного типа а также элементы и группы справочников?
Найденные решения
Ну, в общем, нормального решения не нашлось. Пришлось:
1. изменять XDTO пакет от БСП
2. в обработчике "ПриОтправке" (на стороне отправки) ставить такой код:
3. В обработчике ПриКонвертацииДанныхXDTO (на стороне приёма) ставить такой код:
Согласен, возможно это не лучшее решение. Но другого не нашлось...
1. изменять XDTO пакет от БСП
2. в обработчике "ПриОтправке" (на стороне отправки) ставить такой код:
// ПолучателиСкидкиКонтрагенты
ПолучателиСкидкиКонтрагенты = Новый ТаблицаЗначений();
ПолучателиСкидкиКонтрагенты.Колонки.Добавить("Получатель");
ПолучателиСкидкиКонтрагенты.Колонки.Добавить("ЭтоГруппа");
Для каждого ТекущаяСтрока Из ДанныеИБ.ПолучателиСкидкиКонтрагенты Цикл
<b>СтрокаПолучателиСкидкиКонтрагенты = ПолучателиСкидкиКонтрагенты.Добавить();
Инструкция = Новый Структура("Значение, ИмяПКО");
Инструкция.Значение = ТекущаяСтрока.Получатель;
Если ТекущаяСтрока.Получатель.ЭтоГруппа Тогда
Инструкция.ИмяПКО = "Справочник_КонтрагентыГруппа_Отправка";
Иначе
Инструкция.ИмяПКО = "Справочник_Контрагенты_Отправка";
КонецЕсли;
СтрокаПолучателиСкидкиКонтрагенты.Получатель = Инструкция;
СтрокаПолучателиСкидкиКонтрагенты.ЭтоГруппа = ТекущаяСтрока.Получатель.ЭтоГруппа;</b>
КонецЦикла;
Если ПолучателиСкидкиКонтрагенты.Количество()>0 Тогда
ДанныеXDTO.Вставить("ПолучателиСкидкиКонтрагенты",ПолучателиСкидкиКонтрагенты);
КонецЕсли;
Показать3. В обработчике ПриКонвертацииДанныхXDTO (на стороне приёма) ставить такой код:
Если ДанныеXDTO.Свойство("ПолучателиСкидкиКонтрагенты") Тогда
ПолучателиСкидкиКонтрагенты = Новый Массив();
Для каждого ТекущаяСтрока Из ДанныеXDTO.ПолучателиСкидкиКонтрагенты Цикл
<b>СтрокаДанных = Новый Структура("Получатель");
Если ТекущаяСтрока.ЭтоГруппа Тогда
ИмяПКО = "Справочник_КонтрагентыГруппа_Получение";
Иначе
ИмяПКО = "Справочник_Контрагенты_Получение";
КонецЕсли;</b>
СтрокаДанных.Получатель = Новый Структура("Значение,ИмяПКО", ТекущаяСтрока.Получатель, ИмяПКО);
ПолучателиСкидкиКонтрагенты.Добавить(СтрокаДанных);
КонецЦикла;
ПолученныеДанные.ДополнительныеСвойства.Вставить("ПолучателиСкидкиКонтрагенты", ПолучателиСкидкиКонтрагенты);
КонецЕсли;
ПоказатьСогласен, возможно это не лучшее решение. Но другого не нашлось...
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ну, в общем, нормального решения не нашлось. Пришлось:
1. изменять XDTO пакет от БСП
2. в обработчике "ПриОтправке" (на стороне отправки) ставить такой код:
3. В обработчике ПриКонвертацииДанныхXDTO (на стороне приёма) ставить такой код:
Согласен, возможно это не лучшее решение. Но другого не нашлось...
1. изменять XDTO пакет от БСП
2. в обработчике "ПриОтправке" (на стороне отправки) ставить такой код:
// ПолучателиСкидкиКонтрагенты
ПолучателиСкидкиКонтрагенты = Новый ТаблицаЗначений();
ПолучателиСкидкиКонтрагенты.Колонки.Добавить("Получатель");
ПолучателиСкидкиКонтрагенты.Колонки.Добавить("ЭтоГруппа");
Для каждого ТекущаяСтрока Из ДанныеИБ.ПолучателиСкидкиКонтрагенты Цикл
<b>СтрокаПолучателиСкидкиКонтрагенты = ПолучателиСкидкиКонтрагенты.Добавить();
Инструкция = Новый Структура("Значение, ИмяПКО");
Инструкция.Значение = ТекущаяСтрока.Получатель;
Если ТекущаяСтрока.Получатель.ЭтоГруппа Тогда
Инструкция.ИмяПКО = "Справочник_КонтрагентыГруппа_Отправка";
Иначе
Инструкция.ИмяПКО = "Справочник_Контрагенты_Отправка";
КонецЕсли;
СтрокаПолучателиСкидкиКонтрагенты.Получатель = Инструкция;
СтрокаПолучателиСкидкиКонтрагенты.ЭтоГруппа = ТекущаяСтрока.Получатель.ЭтоГруппа;</b>
КонецЦикла;
Если ПолучателиСкидкиКонтрагенты.Количество()>0 Тогда
ДанныеXDTO.Вставить("ПолучателиСкидкиКонтрагенты",ПолучателиСкидкиКонтрагенты);
КонецЕсли;
Показать3. В обработчике ПриКонвертацииДанныхXDTO (на стороне приёма) ставить такой код:
Если ДанныеXDTO.Свойство("ПолучателиСкидкиКонтрагенты") Тогда
ПолучателиСкидкиКонтрагенты = Новый Массив();
Для каждого ТекущаяСтрока Из ДанныеXDTO.ПолучателиСкидкиКонтрагенты Цикл
<b>СтрокаДанных = Новый Структура("Получатель");
Если ТекущаяСтрока.ЭтоГруппа Тогда
ИмяПКО = "Справочник_КонтрагентыГруппа_Получение";
Иначе
ИмяПКО = "Справочник_Контрагенты_Получение";
КонецЕсли;</b>
СтрокаДанных.Получатель = Новый Структура("Значение,ИмяПКО", ТекущаяСтрока.Получатель, ИмяПКО);
ПолучателиСкидкиКонтрагенты.Добавить(СтрокаДанных);
КонецЦикла;
ПолученныеДанные.ДополнительныеСвойства.Вставить("ПолучателиСкидкиКонтрагенты", ПолучателиСкидкиКонтрагенты);
КонецЕсли;
ПоказатьСогласен, возможно это не лучшее решение. Но другого не нашлось...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот