Имя: Пароль:
1C
1С v8
Ускорить синхронизацию справочника 7 -> 8
0 extrim-style
 
17.05.12
15:12
Сделал синхронизацию семёрошного справочника на 30000 элементов с 8-кой прямыми запросами к SQL. Синхронизация стартует ПриНачалеРаботыСистемы. Прямыми запросами - 15 сек, через СОМ - 40 сек. Нужно < 5 сек. Какие есть варианты ускорить синхронизацию?

По коду: получаю RS (ADODB.Recordset), обхожу его циклом и сравниваю элементы (в реквизит 8-ки добавлен реквизит Код1С7). Основная нагрузка при поиске:

ТекЭл = Спр.НайтиПоРеквизиту("Код1С7", КодЭлемента); - 10 секунд
Если ТекЭл.Пустая() Тогда...

Пробовал не искать элементы, а выгрузить коды в ТЗ и сравнивать. В результате по ТЗ ищет еще дольше.

Какие тут могут быть варианты? Кроме как добавить реквизит ПризнакСинхронизации в 7-ку и потом отбирать в SQL по этому признаку чёта ничего не придумывается.

Справочник 8-ки это справочник 7-ки полностью + свои элементы.
1 acsent
 
17.05.12
15:15
какая процедура занимает больше всего времени?
2 acsent
 
17.05.12
15:16
делай запрос напрямую к двум базам
3 kosts
 
17.05.12
15:17
Делай синхронизацию в фоновом режиме
4 Vladal
 
17.05.12
15:21
Прилепи план обмена. Система будет помечать измененные в 8-ке элементы, потом их списком загонишь в 7-ку.
Аналогично в 7.7 - реквизит-семафор и при загрузке его обнулять
5 Жан Пердежон
 
17.05.12
15:22
(4) тут в обратную сторону синхронизация
6 Buster007
 
17.05.12
15:26
"Пробовал не искать элементы, а выгрузить коды в ТЗ и сравнивать. В результате по ТЗ ищет еще дольше. " каким образом ты это делал?
7 extrim-style
 
17.05.12
15:34
(2) Забыл написать - 8-ка файловая! Причем 8.1
(3) через регламентные задания?
(4) не понял. мне нужно из 7ки в 8ку.
   реквизит-семафор не хотелось бы, в принципе тоже самое, что и в (0), только с планами обмена еще нужно заморачиваться.
8 DrShad
 
17.05.12
15:37
(0) а если использовать РС СоответствиеОбъектовДляОбмена?
9 DrShad
 
17.05.12
15:40
+(8) при этом никакой синхронизации при начале работы системы не нужно
10 extrim-style
 
17.05.12
16:21
(8) не понял каким образом использовать? обмен настроить?
11 extrim-style
 
17.05.12
16:25
(6) Ну при обходе RS в цикле не делал поиск элемента по реквизиту (с записью его в ТекЭл), а перед циклом выбрал запросом из справочника 8-ки реквизит Код1С7 и по нему делал сравнение. И когда элемент не найден, тогда только остальные операции.
12 Жан Пердежон
 
17.05.12
18:33
допили регистрацию изменений в 7,
триггер поставь например
13 acsent
 
17.05.12
18:34
(7) что за прямые запросы из 7 в 8 тогда?
14 DrShad
 
17.05.12
18:35
(10) я разве писал чтоб настроить обмен? хранить в нем соответствия
15 acsent
 
17.05.12
18:35
ну а так единственнный вариант ты уже сам предложил
16 acsent
 
17.05.12
18:35
(14) думаешь по регистру быстрее поиск?
Ошибка? Это не ошибка, это системная функция.