![]() |
|
ПланыОбмена, ошибка при обмене | ☑ | ||
---|---|---|---|---|
0
abbas
16.09.14
✎
15:27
|
Доброе время суток, у меня две конфигурации самописанные, обмениваюсь через ПланыОбмена к примеру только справочниками, но дело в том что в одном справочнике нет некоторых реквизитов(а эти реквизиты имеют ссылки на другие объекты, тем самым тянут их с собою),
и при обмене выдается ошибка "Ошибка при вызове метода контекста (ПрочитатьXML)" и я полагаю что ошибка именно в этом Код выкладываю ниже |
|||
1
abbas
16.09.14
✎
15:27
|
ЧтениеХМЛ = Новый ЧтениеXML;
ЧтениеХМЛ.УстановитьСтроку(СтрокаСообщения); ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ); ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель,ЧтениеСообщения.НомерПринятого); Пока ВозможностьЧтенияXML(ЧтениеХМЛ) Цикл Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML); //ошибку выдает в этом месте!!!!!!!!!!!!!!!!! Если Не Данные = Неопределено Тогда Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; Данные.ОбменДанными.Загрузка = Истина; Данные.Записать(); КонецЕсли; КонецЦикла; ЧтениеСообщения.ЗакончитьЧтение(); |
|||
2
abbas
16.09.14
✎
15:28
|
Надо добавить перед чтением реквизиты в СтрокаСообщения, который содержит список реквизитов, как добавить подскажите плс или ошибка вообще не в этом...???
|
|||
3
abbas
16.09.14
✎
15:28
|
Я пытался изменить СтрокаСообщения, добавлял туда список реквизитов, но все равно, выдается та же ошибка, не может прочитать
|
|||
4
Maxus43
16.09.14
✎
15:32
|
ПрочитатьXML() в данном случае только для идентичных конфигураций
|
|||
5
Maxus43
16.09.14
✎
15:33
|
Если надо обмениваться данными произвольной структуры - надо из типовых дёрнуть механизмы обмена по Правилам, либо руками на тэги разбирать тебе этот xml придётся
|
|||
6
dmpl
16.09.14
✎
15:35
|
(5) Лучше самому написать, иначе будет под вопросом лицензионная чистота.
|
|||
7
abbas
16.09.14
✎
15:36
|
(5)"либо руками на тэги разбирать тебе этот xml придётся"
это должно решить проблему? а разбирать простыми методами? |
|||
8
anatoly
16.09.14
✎
15:43
|
(5) причем тут из типовых - если он пишет что "самописные"?
в КД сделать правила обмена, и в настройках обмена выбрать обмен по правилам. |
|||
9
Maxus43
16.09.14
✎
15:55
|
(8) нет у него настроек обмена где можно выбрать по правилам, самописка, сам же сказал. Или ты думаешь это платформа делает сама?)
|
|||
10
Maxus43
16.09.14
✎
15:58
|
(7) самыми простыми, как в книжках
Чтение = Новый ЧтениеXML; Чтение.ОткрытьФайл(ПутьКФайлу); Пока Чтение.Прочитать() Цикл // Прочитать «структурные части» элементов. // Проверить, какая часть элемента – текущая. Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда ИмяУзла = Чтение.Имя; Сообщить("--" + ИмяУзла); // Атрибуты элементов можно читать только если текущая часть – начало элемента Пока Чтение.ПрочитатьАтрибут() Цикл // Прочитать данные узла атрибута. ТипУзла = Чтение.ТипУзла; Имя = Чтение.Имя; Значение = Чтение.Значение; // Обработать полученные значения. // ... КонецЦикла; ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда // В примере просто выводим текст в окно сообщений. Сообщить("Текст:" + Чтение.Значение); ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда // В примере просто выводим признак конца элемента // в окно сообщений Сообщить("--Конец:" + Чтение.Имя); КонецЕсли; КонецЦикла З.ы. но я лично против... делать дак хорошо, структура поменяется - код переписывать? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |