|
Com-обмен в УниверсальныйОбменДаннымиXML | ☑ | ||
---|---|---|---|---|
0
Mikhail Volkov
08.02.15
✎
10:37
|
Обычно при обмене файлами процесс загрузки длится в 3-5 раз дольше выгрузки, а при Com-обмене его практически нет!? Процесс обмена заканчивается сообщением "Выгрузка данных выполнена успешно", смотрю приемную базу, действительно все загружено.
На этот факт раньше как-то не обращал внимание, обмены делались раз в месяц (из управленческой базы в базу, в которой ведется бух.учет). Но вот финичке понадобились обмены документами оплаты чуть ли не каждый день. Попросила написать аналогичную обработку, но с расставленными как ей нужно всеми галочками и параметрами обмена, чтобы только период задавать. Сделал примерно следующее, старался максимально использовать УниверсальныйОбменДаннымиXML: // Инициализация обработки УниверсальныйОбменДаннымиXML мУниверсальнаяВыгрузкаДанных = Обработки.УниверсальныйОбменДаннымиXML.Создать(); УникальныйИдентификатор = Новый УникальныйИдентификатор(); ИмяВременногоФайлаПравилОбмена = КаталогВременныхФайлов() + УникальныйИдентификатор + ".xml"; МакетПравилОбмена = ПолучитьМакет("ПравилаОбменаТекст"); МакетПравилОбмена.Записать(ИмяВременногоФайлаПравилОбмена); мУниверсальнаяВыгрузкаДанных.ИмяФайлаПравилОбмена = ИмяВременногоФайлаПравилОбмена; мУниверсальнаяВыгрузкаДанных.ЗагрузитьПравилаОбмена(); Попытка УдалитьФайлы(ИмяВременногоФайлаПравилОбмена); // Удаляем временный файл правил Исключение КонецПопытки; ЗагруженыПравилаОбмена = Истина; ТаблицаНастройкиПараметров = мУниверсальнаяВыгрузкаДанных.ТаблицаНастройкиПараметров; мУниверсальнаяВыгрузкаДанных.ИмяФайлаОбмена = ИмяФайлаОбмена; мУниверсальнаяВыгрузкаДанных.РежимОбмена = "Выгрузка"; мУниверсальнаяВыгрузкаДанных.ДатаНачала = ДатаНачала; мУниверсальнаяВыгрузкаДанных.ДатаОкончания = ДатаОкончания; мУниверсальнаяВыгрузкаДанных.ВыводВОкноСообщенийИнформационныхСообщений = Ложь; мУниверсальнаяВыгрузкаДанных.НепосредственноеЧтениеВИБПриемнике = Ложь; мУниверсальнаяВыгрузкаДанных.ФлагРежимОтладки = Ложь; мУниверсальнаяВыгрузкаДанных.ВыполнитьОбменДаннымиВОптимизированномФормате = Истина; мУниверсальнаяВыгрузкаДанных.ЭтоИнтерактивныйРежим = Ложь; // Выгружаем данные мУниверсальнаяВыгрузкаДанных.ВыполнитьВыгрузку(); // Создаем Com-подключение ComОбъектПодключения = ВыполнитьComПодключение(Справочники.Организации.ОсновнаяОрганизация); мОбработкаДляЗагрузкиДанных = ComОбъектПодключения.Обработки.УниверсальныйОбменДаннымиXML.Создать(); мОбработкаДляЗагрузкиДанных.ИспользоватьТранзакции = Ложь; мОбработкаДляЗагрузкиДанных.КоличествоОбъектовНаТранзакцию = 0; мОбработкаДляЗагрузкиДанных.ФлагРежимОтладки = Ложь; мОбработкаДляЗагрузкиДанных.ИмяФайлаПротоколаОбмена = ИмяФайлаПротоколаОбменаЗагрузка; мОбработкаДляЗагрузкиДанных.ДописыватьДанныеВПротоколОбмена = Ложь; мОбработкаДляЗагрузкиДанных.ВыводВПротоколИнформационныхСообщений = Истина; мОбработкаДляЗагрузкиДанных.РежимОбмена = "Загрузка"; // Загружаем данные мОбработкаДляЗагрузкиДанных.ИмяФайлаОбмена = ИмяФайлаОбмена; мОбработкаДляЗагрузкиДанных.РежимОбмена = "Загрузка"; мОбработкаДляЗагрузкиДанных.ЗапоминатьЗагруженныеОбъекты = Ложь; мОбработкаДляЗагрузкиДанных.ВыводВПротоколСообщенийОбОшибках = Истина; мОбработкаДляЗагрузкиДанных.ВыводВПротоколИнформационныхСообщений = Ложь; мОбработкаДляЗагрузкиДанных.ИмяФайлаПротоколаОбмена = ИмяФайлаПротоколаОбменаЗагрузка; мОбработкаДляЗагрузкиДанных.ЗагружатьДанныеВРежимеОбмена = Истина; мОбработкаДляЗагрузкиДанных.ОбъектыПоСсылкеЗагружатьБезПометкиУдаления = Истина; мОбработкаДляЗагрузкиДанных.ОптимизированнаяЗаписьОбъектов = Истина; мОбработкаДляЗагрузкиДанных.ЗапоминатьЗагруженныеОбъекты = Истина; мОбработкаДляЗагрузкиДанных.НеВыводитьНикакихИнформационныхСообщенийПользователю = Истина; Сообщить("Начало загрузки: " + ТекущаяДата(), СтатусСообщения.Информация); Состояние("Загрузка документов в базу-приемник...."); мОбработкаДляЗагрузкиДанных.ВыполнитьЗагрузку(); ФлагОшибкиЗагрузки = мОбработкаДляЗагрузкиДанных.ФлагОшибки; ТекстПредупреждения = ?(ФлагОшибкиЗагрузки, "При загрузке данных произошли ошибки", "Загрузка данных выполнена успешно"); Если ФлагОшибкиЗагрузки Тогда ЗапуститьПриложение("notepad.exe " + ИмяФайлаПротоколаОбменаЗагрузка); КонецЕсли; Сообщить(ТекстПредупреждения + " в " + ТекущаяДата(), ?(ФлагОшибкиЗагрузки, СтатусСообщения.Внимание, СтатусСообщения.Информация)); Все работает, но не так как УниверсальныйОбменДаннымиXML - для загрузки нужно время!? |
|||
1
DmitrO
08.02.15
✎
10:45
|
то что пытаются сказать 1сники понять порой невозможно.. :)
|
|||
2
Mikhail Volkov
08.02.15
✎
10:56
|
(1) Старался максимально использовать УниверсальныйОбменДаннымиXML, но что-то не учел - не так работает как УниверсальныйОбменДаннымиXML. Что?
|
|||
3
Мимохожий Однако
08.02.15
✎
10:59
|
Разные механизмы используются, поэтому разная скорость.В чем цель сабжа?
|
|||
4
Mikhail Volkov
08.02.15
✎
11:03
|
(3) Получается, что я не правильно понимаю механизм Com-обмена в УниверсальныйОбменДаннымиXML. В чем я ошибаюсь?
|
|||
5
ДенисЧ
08.02.15
✎
11:06
|
я так и не понял в чём проблема...
Что по кому обмен идёт медленней? Так и должно быть... |
|||
6
DmitrO
08.02.15
✎
11:07
|
(2)Когда еду на трамвае добираюсь в 3-5 раз дольше чем когда еду на своей машине, причем когда приезжаю смотрю - приезжаю в нужное место, как-то раньше не обращал внимания, но тут понадобилось ездить каждый день.
Начал ездить каждый день на трамвае - приезжаю вроде нормально, но что-то не так, для езды на трамвае нужно время? |
|||
7
DmitrO
08.02.15
✎
11:28
|
Суть обмена через COM соединение в том что нет никакого файла обмена, обработка УниверсальныйОбменДаннымиXML в базе-источнике сама подключается к базе-приемнику и следуя правилам обмена выгружает очередной объект и сразу загружает его через COM соединение в базу приемник.
|
|||
8
DmitrO
08.02.15
✎
11:32
|
(7) так что в автомобиль ты не сел, приведенный в (0) код это все еще трамвай.
|
|||
9
shuhard
08.02.15
✎
11:56
|
(4) [В чем я ошибаюсь?]
во всём |
|||
10
Mikhail Volkov
08.02.15
✎
14:12
|
(7) > Суть обмена через COM соединение в том что нет никакого файла обмена
Я это же подозреваю, но когда отследил процесс по шагам, то все равно выгружается в XMLФайл. Может XMLФайл - это Com-объект в случае Com-обмена? Не нашел как он создается... |
|||
11
Mikhail Volkov
08.02.15
✎
18:24
|
Может кто даст ссылку на пример правильного Com-обмена?
|
|||
12
Mikhail Volkov
09.02.15
✎
17:27
|
Я так понимаю, что Com-подключение
ComОбъектПодключения = ВыполнитьComПодключение(Справочники.Организации.ОсновнаяОрганизация); мОбработкаДляЗагрузкиДанных = ComОбъектПодключения.Обработки.УниверсальныйОбменДаннымиXML.Создать(); надо создать до начала процесса выгрузки, и использовать его вместо ИмяФайлаОбмена? мУниверсальнаяВыгрузкаДанных.ИмяФайлаОбмена = мОбработкаДляЗагрузкиДанных; |
|||
13
Chameleon1980
09.02.15
✎
17:45
|
а не смотрели механизм перехода из зик в зуп 2,5
дык там как-бы через ком, но файл обмена есть в темпах там же обработка для выгрузки из зик, правила и обработка для загрузки в зуп |
|||
14
Mikhail Volkov
10.02.15
✎
09:45
|
(13) Да, в помощниках перехода с 7-й на 8-ю версию должен предусматриваться какой-то обмен, только я им никогда не пользовался, и 7-ки под рукой нет :(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |