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


передать макет комопоновки СКД через web-сервис

передать макет комопоновки СКД через web-сервис
Я
   kittystark
 
25.05.18 - 18:28
ХЭЛП !!!
в первой базе полностью подготавливаю макет компоновки со всеми нужными отборами и параметрами
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(...);


от этого макета во вторую базу через веб-сервис передаю строку полученную из

СериализаторXDTO.ЗаписатьXML(ЗаписьXML, МакетКомпоновкиДанных, "dataComposition", "http://v8.1c.ru/8.1/data-composition-system/composition-template";)

вроде нормальный XML, в котором отборы и параметры завязаны на GUIDы элементов справочников

во второй базе при попытке десериализовать
ЧтениеXML = новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(СтрокаXMLМакетаКомпоновки);
макетКомпоновки = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);//1-я попытка

или
макетКомпоновки = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, "dataComposition");//2-я попытка

или

макетКомпоновки = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, "http://v8.1c.ru/8.1/data-composition-system/composition-template";); //3-я попытка



валятся ошибки:
в 1-м случае
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/composition-template}dataComposition    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/composition-template}dataSource    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType

во 2-м и 3-ем случае Несоответствие типов (параметр номер '2')

что делать господа ?
 
 
   Сияющий в темноте
 
1 - 25.05.18 - 18:35
А базы одинаковые?
   craxx
 
2 - 25.05.18 - 18:38
(0) подозреваю расхождения метаданных баз
   PiotrLoginov
 
3 - 25.05.18 - 18:40
Имя типа XDTO: DataCompositionTemplate.
   kittystark
 
4 - 26.05.18 - 07:57
(2),(3) базы по метаданным одинаковые, завязаны через хранилище конфигурации
всякие там контрагенты/договоры, номенклатура/ед.изм и прочие - актуальны тоже, т.к. функционируют обмены
   kittystark
 
5 - 26.05.18 - 07:58
блин пост выше к (1),(2)
   kittystark
 
6 - 26.05.18 - 08:06
(3) по ходу лыжи с утра плохо смазал, помоги плиз

при отправке из первой базы строки
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, МакетКомпоновкиДанных, "DataCompositionTemplate");


вызов во второй базе
макетКомпоновки = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);


приводит к ошибке

Ошибка преобразования данных XDTO:
НачалоСвойства: DataCompositionTemplate    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/composition-template}dataSource    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType


ЧЯДНТ ?
   Cyberhawk
 
7 - 26.05.18 - 10:04
Запрос в СКД по метаданным не сходится
   kittystark
 
8 - 26.05.18 - 10:52
решено! работает так:

сереализуем
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, МакетКомпоновкиДанных, "DataCompositionTemplate");


десериализуем
макетКомпоновки = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("МакетКомпоновкиДанных"));


всем спасибо
   PiotrLoginov
 
9 - 27.05.18 - 17:19
(8) и тебе благодарствуем за выложенное решение
   Новиков
 
10 - 27.05.18 - 21:53
Хорошо копаешь. А интересно, чем вызвана вообще сама постановка задачи такая? Почему нельзя передать только параметры в приемнике, и там уже отработать всё?
 
 Рекламное место пустует
   craxx
 
11 - 28.05.18 - 04:42
(10) Не факт что это проще
   kittystark
 
12 - 28.05.18 - 09:06
(11) +1
(10) постановка задачи: собрать отчет на СКД из нескольких БД 1С
повторюсь: метаданные одинаковы, НСИ синхронизируется - тем самым снимается мильён проблем

уже давно был реализован подход по передаче текста запроса, параметров и отборов СКД (как параметров запроса) и вот с этим подходом действительно не проще

во первых ради быстродействия обмена было отмечено минимальное количество пространств имен - отсюда возникает ограничение по типам передаваемых данных

во вторых теряется универсальность отборов шаг влево/вправо - замучаешься модифицировать текст передаваемого запроса

с передачей макета компоновки все проще - пользователь на форме настроил отчет, получили макет компоновки в XML, отдали в другую БД, получили в ответ ТЗ

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