Выгрузка XML. Формирование строки с типом объекта. #734458


#0 by baclazhan
Нужно наладить обмен документами "ВозвратПоставщику" между двумя базами через XML. В обоих базах у документа есть реквизит "Сделка", имеющий составной тип. Этот составной тип включает в себя, в числе прочего, тип "ПоступлениеТоваров". Но в базе №1 - этот документ называется "ПоступлениеТоваров", а в базе №2 - "ПоступлениеТоваровУслуг". Соответственно при выгрузке из базы №1 указывается тип "ПоступлениеТоваров". При загрузке в базу №2 выдаётся ошибка разбора XML - 1С не находит такой тип документа. Может кто-нибудь знает, как принудительно при формировании XML указать нужный тип объекта средствами 1С?
#1 by Stim
xml руками чтоле пишешь? "Соответственно при выгрузке из базы №1 указывается тип "ПоступлениеТоваров". ну так указывай тип "ПоступлениеТоваровУслуг" при выгрузке, непонятно, в чем проблема
#2 by baclazhan
Как указать тип руками? Если написать так, то XML сформируется с типом "ПоступлениеТоваров". Пробовал написать XML вручную: "ЗаписьXML.ЗаписатьТекст(XMLСтрока("     |    <Сделка xmlns:xsi=""; xsi:type=""DocumentRef.ПоступлениеТоваровУслуг"">33e909e0-091a-11e4-a337-0050569c5f7f</Сделка> |    "));" Но так знак "<" в XML оформляется как "&lt;", что база №2 не понимает =( PS: есть гайд, как код нормально оформить в сообщении?
#3 by Stim
эмм.. а можно поинтересоваться, в чем преимущество ручного создания файлов xml против штатных правил конвертации и выгрузки через обработку унив обмена хмл. там по крайней мере подобных проблем не возникает
#4 by baclazhan
Я ждал этого вопроса =)) Ещё с древних времён обмены написаны вручную через XML. Сложности там никакой нет - код вылизан. Для новой базы/обмена нужно только объекты описать. Их всего три (возврат, ПНк и реализации). Если бы не трабл с типом, то это часа 3 работы, что реально быстрее, чем конвертацию делать. тем более, что для старого доброго ручного способа и пользовательские обработки обмена есть, и регл. задания настроены и тд.и тп. И не нужно кидаться камнями =) Пользовались бы чаще конвертацией, сделал бы ей.
#5 by Рэйв
Прогони файл как текст через СтрЗаменить(СтрокаТекста,"ПоступлениеТоваров""ПоступлениеТоваровУслуг") :-)
#6 by Рэйв
+ еще как вариант переимновать на "ПоступлениеТоваров" объект в конфигурации приемника и не мучаться
#7 by Рэйв
....или в источнике на "ПоступлениеТоваровУслуг"
#8 by Stim
да? а если у них есть док типа "ПоступлениеТоваровВНТТ"? который переносится в аналогичный приемник
#9 by mikecool
кину свою какаху - изобретать свой велосипед, когда с помощью кд правила на три документа пишутся максимум за час, имхо нелогично
#10 by Рэйв
Ну да, вариант так себе. Много минусов.
#11 by baclazhan
Переименовывать не вариант - первая база типовой Комбинат на поддержке, а во второй множество отчётов, обменов, внешних обработок и т.п. Нет велосипеда - обмены по ручному формированию XML в других обменах уже настроены. Чтобы сделать новый обмен - времени много не нужно. + я считаю, что функционал, выполняющий одну роль, должен быть написан единообразно, чтобы после у программистов глаза не разбегались. Я хотел бы решить проблему текущим инструментом. Просто даже интересно. Если пока вариантов нет - поставлю костыль, в потом когда будем время постараюсь дорешать.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С