![]() |
![]() |
![]() |
|
V83.COMConnector и Сервер 1С x64 долго думает. | ☑ | ||
---|---|---|---|---|
0
palade
14.09.17
✎
13:57
|
Имеется обработка, которая из самопиской базы выгружает 500 000 элементов справочника в такую же базу, только пустую. Справочник, простой, реквизиты текстовые и числовые.
В файловом варианте все отлично, за 2 часа все перегружает. Запускаю на сервере (из базы на сервере выгружаю в файловую) с 21-00 до 6-00 висит. Дальше ждать не стал. Куда копать? |
|||
1
H A D G E H O G s
14.09.17
✎
13:59
|
В сторону кривокода.
|
|||
2
palade
14.09.17
✎
14:07
|
(1)
ПараметрыПодключения = "File="""+КаталогБазы+""";Usr="""";Pwd="""";"; БАза=Новый COMОбъект("V83.COMConnector"); Попытка БАза.Connect(ПараметрыПодключения); Исключение Возврат ; КонецПопытки; Выборка= Справочники.ДокументыНачислений.Выбрать(); Пока Выборка.Следующий() цикл БазаДок=БАза.Справочники.ДокументыНачислений.СоздатьЭлемент(); БазаДок.Код=Выборка.Ссылка.Код; БазаДок.Месяц = Выборка.Ссылка.Месяц; БазаДок.Год = Выборка.Ссылка.Год; БазаДок.ФИО = Выборка.Ссылка.ФИО; БазаДок.Сумма = Выборка.Ссылка.Сумма; БазаДок.Записать(); КонецЦикла; |
|||
3
skafandr
14.09.17
✎
14:12
|
Проверьте подключается ли она реально
Сделайте не всю выборку а один документ |
|||
4
H A D G E H O G s
14.09.17
✎
14:12
|
БазаДок.Код=Выборка.Ссылка.Код;
БазаДок.Месяц = Выборка.Ссылка.Месяц; БазаДок.Год = Выборка.Ссылка.Год; БазаДок.ФИО = Выборка.Ссылка.ФИО; БазаДок.Сумма = Выборка.Ссылка.Сумма; заменить на БазаДок.Код=Выборка.Код; БазаДок.Месяц = Выборка.Месяц; БазаДок.Год = Выборка.Год; БазаДок.ФИО = Выборка.ФИО; БазаДок.Сумма = Выборка.Сумма; |
|||
5
H A D G E H O G s
14.09.17
✎
14:12
|
И фсе заиграет новыми красками
|
|||
6
H A D G E H O G s
14.09.17
✎
14:16
|
Но, вообще, конечно дичь ядская. Такое может придумать только программист 1С. Такой, прям, матеро-классический.
ТаблицаДанных=Новый ТаблицаЗначений; Счетчик=0; Пока Выборка.Следующий() цикл НоваяСтрока=ТаблицаДанных.Добавить(); НоваяСтрока.Код=Выборка.Код; НоваяСтрока.Месяц = Выборка.Месяц; НоваяСтрока.Год = Выборка.Год; НоваяСтрока.ФИО = Выборка.ФИО; НоваяСтрока.Сумма = Выборка.Сумма; Если Счетчик%10000=0 Тогда БАза.ОбработатьСыруюТаблицу(ЗначениеВСтрокуВнутр(ТаблицаДанных)); ТаблицаДанных.Очистить(); КонецЦикла; БАза.ОбработатьСыруюТаблицу(ЗначениеВСтрокуВнутр(ТаблицаДанных)); |
|||
7
palade
14.09.17
✎
14:33
|
(3) Все точно работает, только долго.
(6) Попробую, спасибо. Если бы изначально долго висело, то полез бы в сторону оптимизации. Файловая - файловая работает то приемлемо. Серверная- файловая Долго. Что то еще по мимо кода может в на сервере козни строить? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |