|
Обмен через планы обмена | ☑ | ||
---|---|---|---|---|
0
ИУБиПовиц
20.03.14
✎
11:49
|
Добрый день. Хочу сделать обмен через план обмена. Создаю в конфигураторе новый план обмена, добавляю в состав нужные мне справочники. Создаю в модуле функции ВыгрузитьИзмененияДанныхДляУзла, ЗаписатьНовоеСообщение, и ЗагрузитьИзмененияДанныхДляУзла. Выгрузка проходит успешно, а вот при загрузке выскакивает ошибка преобразования xml. Я так понимаю, из за того что, разная структура конфигураций. Вопрос, как прочитать то что я записал в хмл-ку
|
|||
1
Timon1405
20.03.14
✎
11:51
|
любым браузером
|
|||
2
Maxus43
20.03.14
✎
11:52
|
Если разные конфигурации - надо писать правила обмена. Сериализация только в одинаковых конфах (точнее только для одинаковых объектов по структуре)
|
|||
3
VikingKosmo
20.03.14
✎
11:52
|
Если конфигурации разные, то тут два пути: 1. Идем в КД, пишем правила обмена. 2. Почти тоже самое только все вышеперечисленное делаем у себя в базе :)
|
|||
4
ИУБиПовиц
20.03.14
✎
11:54
|
А в принципе, я ж могу сам парсить хмл-ку и разбирать по тегам то? и тогда все должно получится?так ведь?
|
|||
5
VikingKosmo
20.03.14
✎
11:55
|
+ (3) ИМХО, если в конфигурации отсутствует БСП, по добавить онный, написать в КД правила обмена и меняться. В БСП процедуры по обмену через правила КД очень душевно прописаны.
|
|||
6
Maxus43
20.03.14
✎
11:56
|
(4) можешь, читай по тегам
|
|||
7
VikingKosmo
20.03.14
✎
11:56
|
(4) абсолютно верно, но геморрой еще тот. Если уж так хочется самому писать алгоритм обмена, я бы посмотрел в сторону XDTO.
|
|||
8
Maxus43
20.03.14
✎
11:57
|
Пример:
Чтение = Новый ЧтениеXML; Чтение.ОткрытьФайл(ПутьКФайлу); Пока Чтение.Прочитать() Цикл // Прочитать «структурные части» элементов. // Проверить, какая часть элемента – текущая. Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда ИмяУзла = Чтение.Имя; Сообщить("--" + ИмяУзла); // Атрибуты элементов можно читать только если текущая часть – начало элемента Пока Чтение.ПрочитатьАтрибут() Цикл // Прочитать данные узла атрибута. ТипУзла = Чтение.ТипУзла; Имя = Чтение.Имя; Значение = Чтение.Значение; // Обработать полученные значения. // ... КонецЦикла; ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда // В примере просто выводим текст в окно сообщений. Сообщить("Текст:" + Чтение.Значение); ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда // В примере просто выводим признак конца элемента // в окно сообщений Сообщить("--Конец:" + Чтение.Имя); КонецЕсли; КонецЦикла |
|||
9
Timon1405
20.03.14
✎
11:58
|
Действительно, чего-йто там 1с написала на 10к строк в этой страшной обработке обмена, опять поди индусов понабрали, и код на экране зазря переводят.
|
|||
10
х86
20.03.14
✎
12:00
|
(4)можно конечно, но имхо лучше разобраться с обменом на КД, проще быстрее и перспективнее
|
|||
11
ИУБиПовиц
20.03.14
✎
12:04
|
Ок.Спасибо за советы.
|
|||
12
ИУБиПовиц
20.03.14
✎
12:05
|
А БСП не охота тянуть в конфу,и захламлять её.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |