УниверсальныйОбменДаннымиXML + COM подключение к базе
Обмен между базами с использованием обработки: УниверсальныйОбменДаннымиXML.
В базе срабатывает событие, по которому нужно произвести выгрузку и соответственно загрузку.
Выгрузка происходит штатно.
При загрузке через COM подключаюсь к нужной базе, там создаю обработку, заполняю реквизиты, и при попытке вызвать метод: ВыполнитьЗагрузку() , получаю ошибку, что такого метода нет. Хотя он на самом деле в обработке есть и имеет директиву Экспорт.
При этом если пробовать вызывать процедуру из модуля приложения (из подключенной базы), то все происходит штатно.
Вариант кода:
В чем может быть проблема?
В базе срабатывает событие, по которому нужно произвести выгрузку и соответственно загрузку.
Выгрузка происходит штатно.
При загрузке через COM подключаюсь к нужной базе, там создаю обработку, заполняю реквизиты, и при попытке вызвать метод: ВыполнитьЗагрузку() , получаю ошибку, что такого метода нет. Хотя он на самом деле в обработке есть и имеет директиву Экспорт.
При этом если пробовать вызывать процедуру из модуля приложения (из подключенной базы), то все происходит штатно.
Вариант кода:
Попытка
База = Новый COMОбъект("V83.Application");
База.connect(СтрокаПодключения);
База.visible = false;
Исключение
Сообщить("Ошибка соединения с базой : " + ОписаниеОшибки());
База = Неопределено;
КонецПопытки;
Обработка = База.Обработки.УниверсальныйОбменДаннымиXML.Создать();
Обработка.ИмяФайлаОбмена = ИмяФайлаОбмена;
Обработка.РежимОбмена = "Загрузка";
Обработка.ВыводВОкноСообщенийИнформационныхСообщений = Истина;
Обработка.НеВыводитьНикакихИнформационныхСообщенийПользователю = Истина;
Обработка.ЗагружатьДанныеВРежимеОбмена = Истина;
Обработка.ЗаписыватьВИнформационнуюБазуТолькоИзмененныеОбъекты = Истина;
Обработка.ОбъектыПоСсылкеЗагружатьБезПометкиУдаления = Истина;
Обработка.ОптимизированнаяЗаписьОбъектов = Истина;
Обработка.ЗаписыватьРегистрыНаборамиЗаписей = Истина;
Обработка.ВыполнитьЗагрузку();
ПоказатьВ чем может быть проблема?
По теме из базы знаний
- Проблемы: Перенос данных из ЗУП 2.5 в ЗУП 3.0.
- Использование 1С:Конвертация данных 2.1 для загрузки данных из любого источника
- Эмуляция COM передачи данных через http сервис
- Перенос данных из 1С:Альфа-Авто ред. 5.1 в 1С:Альфа-Авто ред. 6.1. Переносятся справочники, остатки и документы.
- DaJet Stream: потоковый обмен данными
Найденные решения
Сделал так:
В итоге все работает.
V82 = Новый COMобъект("V83.COMConnector");
СтрокаПодключения = "srvr='" + СокрЛП(Сервер)
+ "'; ref='" + СокрЛП(БазаДанных)
+ "'; usr='" + СокрЛП(Пользователь)
+ "'; pwd='" + СокрЛП(Пароль) + "';";
База = V82.Connect(СтрокаПодключения);
Обработка = База.Обработки.УниверсальныйОбменДаннымиXML.Создать();
Обработка.ИмяФайлаОбмена = ИмяФайлаОбмена;
Обработка.РежимОбмена = "Загрузка";
Обработка.ВыполнитьЗагрузку();
ПоказатьВ итоге все работает.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Сейчас в отладчике смотрю, сделал аналогичный код, создал обработку, там доступны только стандартные методы. Все правильно он будет ругаться, ему модуль походу через ком недоступен.
Судя по коду это не управляемые формы.
Получи в начале модуль объекта
Судя по коду это не управляемые формы.
Получи в начале модуль объекта
(4)
А есть разница управляемые формы или нет? По факту там как раз управляемые формы, но обмен планируется делать с разными базами с управляемыми и обычными формами.
А как получить модуль объекта?
Сейчас в отладчике смотрю, сделал аналогичный код, создал обработку, там доступны только стандартные методы. Все правильно он будет ругаться, ему модуль походу через ком недоступен.
Судя по коду это не управляемые формы.
Получи в начале модуль объекта
Судя по коду это не управляемые формы.
Получи в начале модуль объекта
А есть разница управляемые формы или нет? По факту там как раз управляемые формы, но обмен планируется делать с разными базами с управляемыми и обычными формами.
А как получить модуль объекта?
Сделал так:
В итоге все работает.
V82 = Новый COMобъект("V83.COMConnector");
СтрокаПодключения = "srvr='" + СокрЛП(Сервер)
+ "'; ref='" + СокрЛП(БазаДанных)
+ "'; usr='" + СокрЛП(Пользователь)
+ "'; pwd='" + СокрЛП(Пароль) + "';";
База = V82.Connect(СтрокаПодключения);
Обработка = База.Обработки.УниверсальныйОбменДаннымиXML.Создать();
Обработка.ИмяФайлаОбмена = ИмяФайлаОбмена;
Обработка.РежимОбмена = "Загрузка";
Обработка.ВыполнитьЗагрузку();
ПоказатьВ итоге все работает.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот