Имя: Пароль:
1C
 
Проблемы при конвертации данных из 7.7,Не хватает памяти для конвертации больших спра
0 Falkao
 
13.09.09
15:09
Здравствуйте..
Настроил конвертацию данных из 7.7 в 8.1
Использую "Типовая конфигурация Конвертации данных, редакция 2.0 Релиз 2.0.28.1"
При выгрузке из 7.7 столкнулся с проблемой больших справочников или документов.
Если в обработке выгрузки включаю в выгрузку небольшие справочники (примерное количество
объектов выгрузки, до 30 тыс.) все походит. Если выгружаемых объектов больше, начинаются тормоза,
и система почти приходит в останов. Смотрел в диспетчере на использование памяти, 1С всю ее использовала, причем даже увеличенного файла подкачки не хватает.
Если снимаю задачу, то вижу, что файла обмена не сформировалось, такое впечатление, что система
при выгрузке в XML сначала все выгружает в память, а затем пишет в файл.
Пробовал на компах с ОЗУ 2гб - непроходит, Пробовал делить выгрузку на несколько этапов, все равно затык на большом справочнике, Установить отбор в выгружаемом справочнике нет возможности
да и это не удобно для пользователя, конвертация будет рассылаться пользователям, которые сами будут ее запускать.
Есть ли какой выход?
Заранее благодарен за консультацию...
1 ТелепатБот
 
гуру
13.09.09
15:09
2 ДенисЧ
 
13.09.09
16:41
В вин32 2Г на процесс - ограничение. Ищи обходные пути.
Кстати, выгрузка через хмл - самый неоптимальный путь :-)
3 dk
 
13.09.09
16:42
(2) +1
(
4 ДенисЧ
 
13.09.09
16:42
Можно поизвращаться (попробовать! Сам не) на 64-бит состеме. Но не факт, что спасёт.
5 dk
 
13.09.09
16:45
(4) парсер там, вроде, 32-х битный (
хотя попробовать надо
6 ДенисЧ
 
13.09.09
16:48
(5) У меня просто негде... Поэтому это только предположение.
7 RetZet
 
13.09.09
18:03
Я делал поэтапную выгрузку. Т.е. сперва справочники основные, потом зависмые, потом доки основные и зависимые. Правила настраиваются так, что при выгрузке основных выгружается справочник или док целиком. А в зависимых идут уже как по ссылке, ничего с собой не выгружая. Выгрузки получаются легкие и сабжа нет.
8 IamAlexy
 
13.09.09
18:05
(4) неспасет...
пробывал уже
9 Falkao
 
14.09.09
00:30
Такой хороший инструмент для конвертации, главное все легко настраивается,
а оказывается, что в платформе видимо недоработки, зачем держать всю обработку в памяти, скидывайте постепенно на диск, ан наверное придется искать другие методы...
10 IamAlexy
 
14.09.09
00:34
(9) не в платформе проблемы а в парсере XML который виндовый..

там в экспорте вроде можно было поиграться с настройкой количества объектов в транзакции - вроде есть такой слух что помогает использования этого ограничения...

хотя у меня терпения не хватило играться и я через оле перетащил то что мне нужно было.
11 Злопчинский
 
14.09.09
00:38
а это пусть автор поговорит с теми, кому xml нравится до безобразия - от вам и бьезобразие...
12 Immortal
 
14.09.09
00:46
(11)хмл тут ни при чем, парсер глючит действительно на больших объемах.
(0)нет ли зацикливания в справочниках?
13 Falkao
 
14.09.09
21:41
Транзакции не в экспорте , а в импорте...
ПРОБЛЕМА!!!
14 Falkao
 
14.09.09
21:43
Конвертирую документ один к одному,Документов 4000, строк табл. части 40000(10 у каждого) ВИСНЕТ!!!
15 Злопчинский
 
14.09.09
22:27
(12) угу.. это ка кпримерно - автомобиль здесь не причем - бензин плохой - какая мне польза от авто тогда? собственный нефтеперегонный завод строить?
.
если парсер глючит на больших объемах (я вот не считаю их большими) - где экзист альтернативный парсер? АААААААААА?????????
16 Immortal
 
14.09.09
23:18
(15)нету такого..напиши в мелкософт пожалуйста.
(14)грузи ТЧ структурами. порциями. потом при загрузке соберешь
17 Immortal
 
14.09.09
23:19
+(16)конечно с csv попроще было бы..
но ведь и разбор данных там посложнее.
18 trdm
 
15.09.09
01:33
(17) скулайта хватило бы заглазоньки..
19 Злопчинский
 
15.09.09
01:37
(16) я не спец, но полагаю, что XML - достаточно формализован. И проблема наличия альтернативного парсера - в чем?
20 Immortal
 
15.09.09
21:01
(18)хватило бы..
текущая реализация обмменов имеет свои минусы.
(19)напиши=)
или ссылку дай на написанное.
21 Immortal
 
15.09.09
21:02
просто мне проверить есть на чем..и парсер и механизмы работы с ним
22 Falkao
 
15.09.09
21:21
Посмотрел код выгрузки - файл обмена создется командой,
DOMDocument = CreateObject("Msxml2.DOMDocument.4.0");
тут я погорячился насчет платформы...

Immortal - подготовлю отправку, куда выслать...
23 Immortal
 
16.09.09
19:46
(22)у меня и так ..хватает.
это я в свете утверждений в (12).
базы твои я анализировать не буду.могу посоветовать либо грузить структурами, либо порциями документов.
24 Immortal
 
16.09.09
19:47
на самом деле после 10000 строк в ТЧ наблюдал такое же поведение.
25 sapphire
 
16.09.09
19:52
Лишний раз убеждаюсь как рулит SQL :))))))
26 Immortal
 
16.09.09
20:00
вот что ты будешь делать..
есть у Софтпойнта решения по обмену на скл, да что с них толку..
27 Злопчинский
 
16.09.09
20:09
реляционные структуры - рулят!!!!
28 Falkao
 
17.09.09
07:10
Лень-матушка раньше человека родилась, не хочется терять наработки,
да искать , что-то другое...
Есть одна идея по переделке конвертора, о результатах обязательно сообщу...
29 Immortal
 
17.09.09
21:05
(27)простите, а это к чему?
30 Falkao
 
17.09.09
22:58
А вот что:
Проделана большая работа по настройке конвертора из довольно большого комплекса на 7.7 в 8.1, Тем более опробована на 2-х годичной базе - все проходило, но там, где пользователи работали более 4-х лет возникали, собственно, эти "самые проблемы".

Заменил виндовый парсер
DOMDocument = CreateObject("Msxml2.DOMDocument.4.0");
на
DOMDocument = СоздатьПоследовательноЗаписываемыйДокумент(),
естественно заменил все методы создания узлов, присвоения атрибутов и т.д.
там все не так сложно на методы для этого объекта...
Но самое главное у него есть метод:
Сбросить(<?>)
Синтаксис:
Сбросить()
Назначение:
Записывает содержимое в выходной файл и очищает память !!!!!!!!

Выгружает в тот же XML, но работает метод Сбросить(), виртуалка хоть и растет, но не такими темпами, и ее хватает на загрузку довольно больших документов...
Конечно скорость загрузки постепенно уменьшается, но все же даже такая скорость позволяет довести ее до конца...

Там можно порегулировать сброс через количество выгружаемых объектов, я поставил через 1000, по-экспериментирую может результат будет лучше...
31 Immortal
 
18.09.09
23:03
то есть по твоему addin.xmlparser или как его там работает быстрее и стабильнее msxml?
гм.
апну, мне это тоже интересно
32 Gr
 
18.09.09
23:44
Была тоже такая проблемма, по минимуму подрехтовал обработки выгрузки и загрузки, чтобы выгрузка шла не в один хмл, а в несколько, т.е. если выгрузка идет за большой период, то файл хмл создавался на каждый день
33 Immortal
 
18.09.09
23:58
(32)дело то в другом..в том что там msxml..либо там утечки прямо в обработке, либо на дерево DOM не хватает просто места в памяти.
у кого нибудь есть опыт работы с sax?
34 Falkao
 
19.09.09
20:06
Диск - ИТС - Методическая поддержка 1С:Предприятия 7.7 - Универсальная технология обмена "Конвертация данных" - Введение..., там все написано (не смог скопировать цитаты), ХОТЬ И ПОЛУЧИЛОСЬ у меня с загрузкой больших файлов, но эта тема требует исследований в этой области, не все устраивает,(в частноти загрузка идет медленней, в МсПарсер)- надо экспериментировать...
35 trdm
 
19.09.09
23:24
автор - явный гигантоман :) у него даже название топика невлезло :)))
36 Злопчинский
 
20.09.09
20:14
(30) где-то будет выложено для доступа?
37 Falkao
 
20.09.09
22:21
(32) Не плохая идея, если ложить в XML по 15-20 тыс. объектов , то это наверное выход!!! Все-таки msxml, работат на много быстрее...
38 Immortal
 
21.09.09
22:27
можно попробовать Release() после работы с узлами в msxml,
я пробовал , мне не помогло..
или поработать с sax, объем отжираемой памяти должен снизится в десятки раз.
39 Immortal
 
21.09.09
22:28
по поводу пакетной выгрузки-идея хорошая, но костыль по сути.
40 Falkao
 
23.09.09
22:14
Оставил всё как есть, т.е. использовал исходную выгрузку, установил фильтры, на выгрузку, 10-макс15 тыс. объктов.то что писал в проблеме - переделал на возможность разбиения выгрузки, пока это самый оптимальный вариант и лучшее решение.
Ошибка? Это не ошибка, это системная функция.