Вход | Регистрация

1С:Предприятие ::

Метки: 

Оптимизация получения GUID по COM-соединению

Я
   fjay69
 
05.10.17 - 09:46
Доброго дня!
Есть обработка, которая сверяет данные между двумя базами. Обработка запускается на Базе 1 (Б1), подключается к Базе 2 (Б2) по COM-соединению. Поставлена задача ускорить выполнение сверки. Замер времени показывает, что дольше всех выполняются операции подобного рода:

ГУИД = COMПодключение.XMLСтрока(COMОбъект.УникальныйИдентификатор());

Суть в том, что в Б2 запускается запрос (COMПодключение.NewObject("Запрос")), затем объекты Б2 нужно сопоставить с объектами Б1 по GUID. Есть ли способ выполнить это быстрее?
 
 
   RomaH
 
1 - 05.10.17 - 09:48
ГУИД = COMПодключение.XMLСтрока(COMОбъект.УникальныйИдентификатор()); 

тут две операции - которая из них дольше?
   mehfk
 
2 - 05.10.17 - 09:50
Вместо того, чтобы каждый раз получать гуид объекта в той базе, сохраняй в регистр сведений в той базе соответствующие гуиды объектов этой базы.
   DrShad
 
3 - 05.10.17 - 09:51
(2) +1
   fjay69
 
4 - 05.10.17 - 09:54
Эта:

COMОбъект.УникальныйИдентификатор()
   d4rkmesa
 
5 - 05.10.17 - 14:14
(0) COMПодключение.XMLСтрока(COMОбъект) - если объект ссылочного типа.
   Ненавижу 1С
 
6 - 05.10.17 - 14:31
(0) мне кажется больше всего времени ест запрос, а не эта фигня
   Ненавижу 1С
 
7 - 05.10.17 - 14:33
(0) а почему:
ГУИД = COMПодключение.XMLСтрока(COMОбъект.УникальныйИдентификатор()); 

а не:
ГУИД = COMПодключение.String(COMОбъект.УникальныйИдентификатор());
   RomaH
 
8 - 05.10.17 - 14:39
(7) а почему не
ГУИД = "" + COMОбъект.УникальныйИдентификатор();
   ProxyInspector
 
9 - 05.10.17 - 14:40
(7) COMПодключение.String(COMОбъект.УникальныйИдентификатор()) это самый быстрый способ. По моему опыту.
   Ненавижу 1С
 
10 - 05.10.17 - 14:42
(8) потому что не взлетит, будет ГУИД = "COMObject"
 
 Рекламное место пустует
   fjay69
 
11 - 05.10.17 - 15:15
Как мне подсказал коллега, такой способ работает быстрее:

ГУИД = COMПодключение.XMLСтрока(COMОбъект);


То есть я могу получить ГУИД не вызывая функцию УникальныйИдентификатор(). И это реально быстро!
   fjay69
 
12 - 05.10.17 - 15:23
(7) Пробовал. Разницы скорости не заметил.
   4St
 
13 - 05.10.17 - 15:24
(11) Еще можно закинуть COM объекты в Массив, сериализовать его, а из него уже надергать гуиды.
   pavig
 
14 - 05.10.17 - 15:31
(0) Подготавливай весь набор на стороне СОМ, забирай оттуда в сериализованном виде, обрабатывай "внутри" своей базы. Делов-то)
   Фортовый
 
15 - 05.10.17 - 15:34
читал подобное в мануале ускорения обмена .там чел писал .что выгружал соответсвие в регистр сведений .как то через кеш делал в нем . погугли найдешь статью
   Mikhail Volkov
 
16 - 05.10.17 - 18:51
(2) ГУИДы той и этой базы одни и те же!?
(0) Много передавать? Дольше всех устанавливается СОМ-соединение...


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует