Плагин для лечения выгрузки и загрузки больших баз в 1С 7.7 (портирование под Win7)
База данных - Архивирование (backup)
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Делает абсолютно то-же самое что и основной плагин - при выгрузке данных 1С:Предприятие позволяет не упаковывать в архив ZIP файл 1Cv77.dat который 1С упаковать и не может (больше 2 ГБ) ..... но пытается.
Действия при выгрузке
При начале и окончании выгрузки данных плагин выдаст сообщение (в трее) о том что в архив ZIP попадет пустой файл DAT, а сам файл 1Cv7.dat окажется в каталоге ИБ под именем romix.dat.
Действия при загрузке
При загрузке данных (в ее начале) плагин выдаст окно запроса файла "Укажите файл, откуда взять выгрузку 1Cv77.dat".
Выберите файл (по умолчанию это romix.dat в каталоге информационной базы) и нажмите кнопку "Открыть" в диалоговом окне. Начнется загрузка данных.
При отказе от выбора файла, загрузка данных из файла с расширением ZIP пойдет штатным порядком (то есть, возьмет DAT из архива ZIP).
Программа выдает сообщения о проценте загрузки в трее.
Порядок установки
Берем отсюда http://x-romix.narod.ru/ загрузчик плагинов "PluginsLoader.rar", внимательно читаем ReadMe.txt, делаем все как там написано. Полсе этого в Hook_1C.ini добавляем строку LoadDll=Plugin_Unload_Dat_Fix\plugin_Unload_Dat_Fix.dll (путь относительно каталога Plugins). Признаком того, что плагин подключился правильно является всплываеющее в трее сообщение 'При выгрузке будет отключено архивирование файла 1Cv77.dat .......' при начале выгрузки данных
Возможные проблемы
Во избежание проблем при загрузке сделайте следующие вещи:
1) Создайте пустую (чистую) базу SQL (иначе по окончании загрузки может написать что-то про уникальность ключей и отвалиться).
2) Создайте константу и сохраните конфигурацию (иначе при начале загрузки пишет ошибку). Это проблемы не мои, а исходной 1С.
Возможно плагин не будет работать под Windows Vista. Нету ее под рукой чтобы попробовать. Если у кого есть - попробуйте и отпишитесь о результатах сюда. Будут проблемы - исправлю
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Архивирование (backup) Системный администратор 1С:Предприятие 7.7 Абонемент ($m)
Эти далекие 2000е... мы архивировали как могли. Пример командного файла для windows -- архивациия базы SQL 1С:Предприятие 7.7 средствами платформы.
1 стартмани
30.08.2024 2758 0 kot1c 0
Архивирование (backup) Системный администратор Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Программа, написанная на Delphi7 для автоматизации сохранения БД.
1 стартмани
02.01.2017 17423 12 mt111 21
Архивирование (backup) Системный администратор 1С:Предприятие 7.7 1C77 Абонемент ($m)
Всё началось с того, что я лентяй. Когда пришел на работу в первый раз, мне сообщили, что уже лет 10 делают сохранение базы каждый день в конце рабочего дня. Из этого вытекает, что если кто-то решит подтянуть свои хвосты, то мне приходится сидеть на работе тоже. Честно, мягко говоря, меня это не особо радовало... Порывшись на просторах инета, было принято решение сделать "автосохранялку". Как уже говорилось, "Я ЛЕНИВЫЙ", поэтому мне было попросту лень ставить всякие утилиты и программки, реализовал все штатными средствами.
1 стартмани
02.12.2016 18477 5 mt111 10
Архивирование (backup) Разработчик 1С:Предприятие 7.7 1С:Предприятие 8 1C:Бухгалтерия 1C77 Абонемент ($m)
Архив файловой базы 1С можно сделать за 30 секунд. Делаем предварительные настройки.
1 стартмани
09.12.2014 42868 12 denisk37 72
Архивирование (backup) Системный администратор Разработчик Бухгалтер 1С:Предприятие 7.7 1С:Предприятие 8 1C:Бухгалтерия 1C77 Абонемент ($m)
Бэкапер-1С: версия 1.5.0. Появилась гибкая система удаления старых копий! А также: автоматический поиск баз, архивация документов, встроенный архиватор 7-Zip, целостность создаваемых копий, шифрование, отправка отчетов на почту и каталогизация. Ещё никогда резервное копирование не делалось так просто.
1 стартмани
16.05.2013 80138 642 alexey.karmanov 181
Архивирование (backup) Системный администратор 1С:Предприятие 7.7 1С:Предприятие 8 1C:Бухгалтерия 1C77 Россия Бесплатно (free)
В работе регулярно возникает необходимость протестировать поведение программы на копии рабочей базы с актуальными данными
10.08.2012 21955 sergiobargio1 6
Архивирование (backup) Системный администратор Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 1C77 Россия Абонемент ($m)
Архивация баз данных 1С 7.7 (при небольшом редактировании и версий 1С 8.х) средствами командной строки и архиватора Izarc Архивация каталога базы данных при размещении на Linux (smb-сервере к примеру) средствами linux.
1 стартмани
11.05.2012 15896 16 slava81 5
Архивирование (backup) Системный администратор 1С:Предприятие 7.7 Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 1C77 Россия Абонемент ($m)
Обработка при помощи WinRar архивирует каталог с БД.
1 стартмани
06.04.2012 14789 34 l2d808 20
Проверкой на ошибки с помощью DBCC не получается восстановить, последняя надежда на выгрузку и загрузку. Если не забаните, то обещаю написать чем у меня дело кончилось.
да у меня тоже база весит 10 гигов, при выгрузке получилось 4,3 гига, в SQL сначала пробовал в связке с секретным релизом 7.7.027.1, !!! не получалось !!!, после 3% просто процесс загрузки базы останавливался. ПО на котором пытался загружать базу (выгрузка из DBF базы прошла без проблем) Win 7 + 1C 7.7.27.1 + MS SQL 2014 (2008 совместимость).
я решил что в пропатченом BkEnd.dll дело, поднял виртуалку с WinXP + MS SQL 2000 PE + 1C 7.7.025 (потому как разработчик использовал именно 25 релиз при тестировании), но и тут не выходило ничего приложение 1С просто вылетало на том же самом месте.
и только благодаря комментам в этой ветке я нашел решение своей проблемы загрузки.
у меня был добавлен еще один общий реквизит (строковый реквизит ограниченной длины 50 символов), который как раз оказался последним.
и как только опустил общий реквизит Комментарий и сделал его последним. выгрузка пошла. Спасибо всем!!!
А чего ты ожидала? Он перехватывает другую dll к которой обращение не идет. А ту к которой идет обращение - не перехватывает. Естественно что не будет работать! в Win7 набор системных DLL поменялся (в шапке есть ссылка где описано что как и почему....)
Какое именно мнение? :) Выше целая куча мнений. Или боишься что там "троян"? :) Так исходники прилагаются, мои правки выделены комментариями, и для особо недоверчивых никто не мешает самому скомпилировать dll
Или если у кого есть опыт создания узла РИБ для баз с размером выгрузки более допустимого для zip, поделитесь пожалуйста.
ЗЫ. Ставить дельфи и ковырять исходники очень не хочется, ибо сварщик я не настоящий...
> ЗЫ. Ставить дельфи и ковырять исходники очень не хочется, ибо сварщик я не настоящий...
А видать придется :) Ты думаешь мои познания в Дельфи превышают уровень плинтуса? :) Но когда приперло - пришлось разобраться.
Так точно, но тем не менее без дельфей обошлось.
Задача была такая: есть центральный узел на sql, надо сделать подчиненный узел файловый.
Пошел комсомольским путем: сделал подчиненный узел с помощью , затем с помощью божьей и данного плагина (уважаемый, тебе ВОТ ТАКОЙ ПЛЮСИЩЕ!!!) перевел его в файловый режим.
Т.е. я так и не понял в чем была проблема?
Сейчас еще раз сделал узел, запустил первичную выгрузку - не взлетело. Запустил просто выгрузку - взлетело.
Потом будет время - посмотрю какие вызовы в обоих случаях выполняются.
Тем не менее, огромное спасибо, что вообще потратил время на проверку. С меня пиво :)
А по поводу файла romix.dat - при загрузке 1С спросит откуда его взять. Т.е. откроется диалоговое окно "Открыть файл". Если там нажать "Отмена" то 1С будет пытаться обработать стандартный файл 1Cv77.dat из архива
А почему не пакуется в zip выгрузки - ну потому и не пакуется, потому что больше 2GB 1C не умеет паковать :)
Или ты имеешь ввиду почему сам плагин не пакует? Ну неохота было автору функционал наворачивать лишний. Я например в том-же задании на пакетную выгрузку (cmd-файл) пакую его внешним архиватором 7z (и тоже с датой в имени файла) в "максимальном режиме". При этом архив значительно меньше чем zip получается!
Тож самое сделал. Просто
По поводу значка в трее - он так и висит пока на него мышью не ткнешь, тогда он пугается и убегает. Но меня это не напрягает, сервер тем более, так что пока не вредит - не трогаем.
Автору респект!
romix.dat формируется в папке выгружаемой базы. А при загрузке этот файл данных будет искаться в этой же папке? Почему он не пакуется в zip выгрузки? Просто настроена пакетная выгрузка и архивы выгрузки копируются в свой каталог с датой в имени файла.
вопрос снят
А авторам плагинов для лечения выгрузки и загрузки больших баз в 1С 7.7 большое человеческое СПАСИБО. Хотя мне становится понятным, что все равно без обрезки базы не обойтись....
Пробовал из Win2008
Не работает.
Залез в отладчик, по ощущениям - поменяли размещение таблицы импорта в mfc42.dll - когда идет перебор списка имен dll - вместо нормальных имен - мусор. Могу дать отладчик с удаленным сеансом.
Или имеется ввиду как архивировать romix.dat по окончании? Только внешними архиваторами. Как вариант - запускать выгрузку 1С не прямо из шедулера, а из cmd файла и по окончании подбирать romix.dat и паковать в отдельный архив например 7z. Он хорошо жмет, намного лучше чем классический zip. У меня из 15 гиг получается 650 "метров". Ну или, как вариант, использовать плагин от Альф (75)
вроде как выгружает, но загрузить не получается поскольку в редми понять
Параметры='u -tzip "%1%" "%2%"' # строка с параметрами архивирования; маска %1% заменятся на имя архива, генерируемое 1С; маска %2% заменяется на имя текущего архивируемого файла
и
Параметры='e "%1%" -o"%2%"' # строка с параметрами архивирования; маска %1% заменятся на имя архива, генерируемое 1С; маска %2% заменяется на временный каталог 1С для разархивирования
ПОНЯТЬ что писать вместо "%1%" "%2%"' не возможно (думал я такой глупый, показал другим людям - те тоже ничего не поняли). В конфигураторе задается имя файла выгрузки zip. метод тыка(замены %1%" "%2%) на название файла и пути тоже не помог((((
Например, если имя архива "20190212.zip", а временный каталог "C:\TEMP\", то при заданной в примере строке параметров для запуска архиватора будет составлена следующая командная строка:
C:\Program Files\7-Zip\7z.exe e "20190212.zip" -o"C:\TEMP\"
при запуске - молча идет по стандарту и соответственно слетает по "не удалось прочитать архив".
запуск из той же (такой же) бин-папки в Win 2007 (x64) - работает на ура...
может кто-нить намылить архив бин-папки, зарекомендовавшей себя положительно в подобной ситуации, пожалуйста?
на сообщении об ошибке чтения архива - выловил 1cv7.dat из каталога ИБ, но что с ним делать - не представляю себе.
зип-файл выгрузки создает с пустым 1cv7.dat в нем. попробую 7zip-ом загнать в него выловленный 1cv7.dat вместо кривого?..
А по поводу что делать с 1cv7.dat - да, него можно запаковать вручную в архив. Собственно плагин именно этим и занимается. "Отбирает" у 1с файлик, который она не может запаковать но зато "убивает" после ошибки и переименовывает его в romix.dat
Но! Если файл запаковать вручную то 1с его оттуда вытащить снова-же не сможет. Так что лучше его отдельно запаковать а при загрузке, при срабатывании плагина подсунуть этот файлик на вопрос о romix.dat. Хотя на это машине это я думаю не удастся. Кстати - попробуйте начать процесс загрузки на пустой базе. Выскочит-ли диалог с запросом romix.dat? Это наиболее простое тестирование "срабатывания/подключенности" плагина.
"подсунуть" не получится - оно и при распаковке на 8r2 не цепляется
нет, никаких вопросов. тупо не цепляется...
Ну вот примет bat файла Пример нерабочий, его допиливать нужно, потому что писался он больше 10 лет назад под интерпретатор 4dos В виндовом cmd переменная TimeStamp не соберется т.к. @replace и т.п. винда не поймет. нужно будет поправить. Переменная %_CWDS% - текущий каталог в cmd тоже по другому выглядит. Но общее направление я думаю понятно.
Запускать backup.cmd "КаталогБД"
КаталогБД относительный естественно, относительно \\BUH_SERVER\buh1c\ в данном случае
set BaseDir=\\BUH_SERVER\buh1c\%1\
set BackUpDir=\\BUH_SERVER\bak1c\
set NumOfBackup=0
set ClassPath=\\BUH_SERVER\1Cv77.ADM\BIN\Class\
:loop1
set /a NumOfBackup=NumOfBackup+1
set TimeStamp=_200%@YEAR[%_date]-%@REPLACE[^s,0,%@FORMAT[2,%@MONTH[%_date]]]-%@REPLACE[^s,0,%@FORMAT[2,%@DAY[%_date]]]_%NumOfBackup%
if exist %BackUpDir%%1%TimeStamp%.zip goto loop1
rem Выполнение синхронизации и т.п. ежесуточной рутины. Сразу после этого выход из системы
start /w \\Buh_server\1cv77.adm\BIN\1cv7s.exe Enterprise /d"%BaseDir" /n"Username" /pUserPassword
rem Создать файл для пакетной выгрузки 1С - *.prm
echo [General] > %1_1CBackUp.prm
echo Output=%BackUpDir%%1%.log >> %1_1CBackUp.prm
echo Quit=Y >> %1_1CBackUp.prm
echo UnloadData=Y >> %1_1CBackUp.prm
echo [UnloadData] >> %1_1CBackUp.prm
echo IncludeUserDef=Y >> %1_1CBackUp.prm
echo UnloadToFile=%BackUpDir%%1%TimeStamp%.zip >> %1_1CBackUp.prm
start /w \\Buh_server\1cv77.adm\BIN\1cv7s.exe Config /d"%BaseDir" /n"Username" /pUserPassword /@"%_CWDS%%1_1CBackUp.prm"
del %1_1CBackUp.prm >nul
ПоказатьВ конце файла можно будет добавить архивирование romix.dat
Т.е. ты удаляешь старый файл romix.dat, делаешь выгрузку, она заканчивается нормально, без ошибок, и у тебя в каталоге базы появляется только romix.dat в два байта, а 1cv7.dat не появляется вообще? А в архиве что? По идее именно в архиве должен быть 1cv7.dat в два байта, а в каталоге БД romix.dat со всеми выгруженными данными.
Засек procexplorer`ом следующее:
15:09:44,3135436 1cv7.exe 3652 CloseFile D:\1C77\Empty SUCCESS
15:09:44,3137061 1cv7.exe 3652 ReadFile C:\Windows\SysWOW64\mfc42.dll SUCCESS Offset: 230 400, Length: 20 480, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
15:09:44,4813427 1cv7.exe 3652 Process Create C:\WINDOWS\SysWOW64\WerFault.exe SUCCESS PID: 11464, Command line: C:\WINDOWS\SysWOW64\WerFault.exe -u -p 3652 -s 1104
15:09:46,0559046 1cv7.exe 3652 Thread Exit SUCCESS Thread ID: 1016, User Time: 0.2187500, Kernel Time: 0.6562500
Кинул этот mfc42 в каталог bin - заработало.
Черт его знает что это и почему, в C:\Windows\SysWOW64\mfc42.dll достаточно старый лежит и не обновлялся.
Не получается загрузить выгрузку в SQL - 1с после выбора файла romix.dat выпадает в ошибку загрузки. Структуру таблиц в SQL воссоздает
Размер romix.dat чуть больше 5 ГБ
Windows Server 2012R2
MS SQL Server 2016
1C 7.7 "секретный релиз"
Можно попробовать перед загрузкой создать константу и сохранить изменения. Чтобы не в абсолютно пустую базу грузить . Где-то встречал подобный рецепт но сам его не пользовал т.к. не сталкивался с подобной проблемой.
1с с этой пустой бд загружается и работает, хоть пиши загрузку подокументно из dbf :( но базе 18 лет, один раз уже сворачивалась в 12 году...
Столкнулся с такой-же проблемой на 2008r2 выгрузка работала без проблем потребовалось запустить на server 2019 - не взлетает - сообщение не появляется ... (работает штатный механизм выгрузки 1с7 с встроенным архивированием)
нашел причину - в обработке Unload_Dat_Fix_Win7 есть файл в каталоге Plugins с названием OS_Version.exe написанный для обнаружения Win7 в 2011г
Ясное дело что о системе Server 2019 он ни сном ни духом, и корректно отнести ее к семейству win7 не может,
я принудительно для этого файла указал работу в режиме совместимости с win7 - окно предупреждения о romix.dat появилось и процесс выгрузки-загрузки прошел успешно.
Вдруг кому пригодится
С Уважением,
PavelN5
Столкнулся с такой-же проблемой на 2008r2 выгрузка работала без проблем потребовалось запустить на server 2019 - не взлетает - сообщение не появляется ... (работает штатный механизм выгрузки 1с7 с встроенным архивированием)
нашел причину - в обработке Unload_Dat_Fix_Win7 есть файл в каталоге Plugins с названием OS_Version.exe написанный для обнаружения Win7 в 2011г
Ясное дело что о системе Server 2019 он ни сном ни духом, и корректно отнести ее к семейству win7 не может,
я принудительно для этого файла указал работу в режиме совместимости с win7 - окно предупреждения о romix.dat появилось и процесс выгрузки-загрузки прошел успешно.
Вдруг кому пригодится
С Уважением,
PavelN5
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 96481
Создание 31.10.11 16:23
Обновление 01.11.11 17:33
Просмотры 69317
Загрузки 642
Рейтинг
66
Комментарии 100
Код открыт Не указано
Рубрики Архивирование (backup)
Тип файла Компонента, плагин (dll, vbs,..)
Платформа
Оперативный учет 7.7
,
Бухгалтерский учет 7.7
,
Расчет 7.7
Конфигурация 1C77
Операционная система Windows
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)