Книга знаний

Рекламное место пустует
1С:Предприятие / Администрирование

Плагин для лечения выгрузки и загрузки больших баз в 1С 7.7

Плагин позволяет не упаковывать в архив ZIP файл 1Cv77.dat при выгрузке данных 1С:Предприятие. Цель - лечение проблемы с большими (несколько Гб) выгрузками, которые не может правильно обработать штатная библиотека для работы с ZIP-файлами от 1С. Кроме того, плагин сокращает время выгрузки и загрузки (исключается архивирование и разархивирование большого по размеру файла). Приложен исходный код (компилятор - Delphi 6).Автор статьи: romix | Редакторы: Segate, Asmody
Последняя редакция №18 от 21.08.12 | История
URL: http://kb.mista.ru/article.php?id=493

Ключевые слова: zip, выгрузка, загрузка, ошибка, 1Cv77.dat, размер


Перенесено http://kb.mista.ru/2/doku.php?id=1c:v7:plagin_dlja_lechenija_vygruzki_i_zagruzki_bolshix_baz_v_1s_7.7

Описание проблемы

TasStas пишет: При проведении выгрузки было замечено, что 1сv7, 25 релиз, создает временный файл в каталоге базы данных, который называется 1Cv77.dat. Размер этого файла растет в процессе выгрузки и достигает перед ее окончанием 9.2 гига. После этого получаем в указанном каталоге зипованный файл размером 164 метра. В котором содержатся файлы 1Cv7.md, Users.usr, 1Cv77.dat. Но размер файла 1Cv77.dat в этом случае составляет 1,4 гига. При попытке произвести загрузку получаем сообщение типа "Ошибка базы данных". Думаю, что это проблема встроенного в 1С zip'a  - не хочет работать с файлами размером больше 2 гига. Но как изменить встроенный зиповщик не знаю. Может кто встречался с такими проблемами то помогите пожалуйста. Заранее благодарен.

История изменений

24.02.2007 добавлен перехват SetFilePointer, поскольку этот системный вызов портил картину при загрузке (не получалось загружать данные больше 2 Гб).

21.03.2007 изменены сообщения при выгрузке и загрузке (надеюсь, что в более понятную сторону). При загрузке добавлен диалог выбора файла DAT (чтобы лишний раз не копировать и не перемещать его, если выгрузка и загрузка происходит в пределах одного компьютера).

01.07.2007 Переписаны функции ?GetSinceCheckpoint@CDB7Stream@@QBEJXZ, ?Checkpoint@CDB7Stream@@QAEXXZ' и ?NextChar@CDB7Stream@@UAEXXZ, т.к. они содержали 4-гигабайтное ограничение. Добавлена индикация процента загрузки, и sleep 1мс каждые 64К считанных данных.

Действия при выгрузке

При окончании выгрузки данных плагин выдаст сообщение:

---------------------------
(c)romix
---------------------------
Отключить архивацию файла DAT? (в архив ZIP попадет пустой файл DAT).
---------------------------
Да   Нет   
---------------------------

При ответе "Да" плагин сохранит файл DAT (в каталоге информационной базы под именем romix.dat) и выдаст сообщение:

---------------------------
(c)romix
---------------------------
Выгрузка DAT находится в файле: 

D:\КаталогИБ\romix.dat

В архиве ZIP находится пустой файл DAT
---------------------------
ОК   
---------------------------

При ответе "Нет" 1С:Предприятие поведет себя штатно, то есть, так же, как ведет себя без данного плагина (заархивирует файл DAT в архив ZIP).

Действия при загрузке

При загрузке данных (в ее начале) плагин выдаст окно запроса файла с заголовком

"Укажите файл, откуда взять выгрузку 1Cv77.dat".

Выберите файл (по умолчанию это romix.dat в каталоге информационной базы) и нажмите кнопку "Открыть" в диалоговом окне. Начнется загрузка данных.

При отказе от выбора файла, загрузка данных из файла с расширением ZIP пойдет штатным порядком (то есть, возьмет DAT из архива ZIP).

После окончания операций с выгрузками и загрузками я рекомендую отключать плагин в файле ini, как это описано ниже (см. замечание 4).

Порядок установки

Описание установки плагина - в файле readme.txt в паке Patch в комплекте установки

Возможные проблемы

Во избежание проблем при загрузке сделайте следующие вещи: 1) Создайте пустую (чистую) базу SQL (иначе по окончании загрузки может написать что-то про уникальность ключей и отвалиться). 2) Создайте константу и сохраните конфигурацию (иначе при начале загрузки пишет ошибку). Это проблемы не мои, а исходной 1С.

Разработка для скачивания

http://infostart.ru/profile/3105/projects/1512/
http://infostart.ru/public/96481/ Плагин для лечения выгрузки и загрузки больших баз в 1С 7.7 (портирование под Win7) Автор avgreen.
Закладка

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2011 | Mista.ru

Яндекс.Метрика