Автоматическая архивация данных 1C c помощью WinRAR

0. vladimir_makarov 105 02.09.12 11:14 Сейчас в теме
Иногда случаются казусы типа: БД «рухнула», кто-то что-то совершенно «случайно» грохнул, или вообще HDD скончался…. Первая мысль: сейчас бы архивчик…. А его частенько нет, ибо любим мы на русский «авось» полагаться. Предлагаю универсальный и безотказный способ автоматической архивации, не требующий ничего потустороннего, только известный всем архиватор WinRAR. Потратите 5-10 минут на настройку, и Вы спокойны.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Trotter_NN 04.09.12 07:33 Сейчас в теме
Класно, как раз устроился в организацию и купил WinRar думал всё как же сделать, а тута бах и статейка подвернулась, спасибо попробую
2. DoctorRoza 04.09.12 09:40 Сейчас в теме
За раскопки плюс однозначно!
3. azmon 1 04.09.12 09:51 Сейчас в теме
5. vladimir_makarov 105 04.09.12 20:04 Сейчас в теме
(3)(4) Господа, простите, ZIP не пытался использовать, я его не люблю с детства. А WinRAR - с того же детства, как единственный достойный внимамания архиватор. А где т как его приобрести - Ваши проблемы.
8. markers 269 05.09.12 07:51 Сейчас в теме
(5) ZIP и 7-Zip не одно и тоже, я тоже со времен ещё DOS`а почитал RAR, но потом начал чаще пользоваться 7-zip`ом, особенно ещё и потому - что у него есть плагин для Far`а.
4. andrewks 1358 04.09.12 11:43 Сейчас в теме
лучше бы использовать бесплатный и свободный 7zip. конечно, лицензия стоит копейки, но тут уже дело принципа
6. Sergey03 05.09.12 06:22 Сейчас в теме
Может сразу добавить описание и для SQL в 7-ке?

в файл-список закинуть список файликов:
D:\Bases\"КаталогИБ"\1Cv7.MD
D:\Bases\"КаталогИБ"\1Cv7.DDS
D:\SQLBases\BackUPSQL -сделанный предварительно самим SQL по расписанию.
7. Sergey03 05.09.12 06:24 Сейчас в теме
все остальное так же, тока я еще дату прикручиваю к архиву
9. Slotty 05.09.12 07:58 Сейчас в теме
7-Zip по мне так куда лучше.
10. apatyukov 912 05.09.12 08:58 Сейчас в теме
Это все конечно хорошо... но скрипт генерящий командную строку к статье был бы уместен...
11. GSoft 2026 05.09.12 09:36 Сейчас в теме
в свое время, лет так 8-9 назад писал что-то подобное
По факту, удалялись индексы, архивировалась база, и запускалась переиндексация

All.bat
call E:\Arch\2003Trade\DelIndex.bat
call E:\Arch\2003Trade\Archive.bat
call E:\Arch\2003Trade\Reindex.bat


Archive.bat
"C:\Program Files\WinRAR\rar.exe" a -r -t -y -dh -ag_DD-MM-YYYY -x@Exclude.txt E:\Arch\2003Trade.rar \\Std\Bases\Trade\2005\


Exclude.txt
*.cdx
*.tmp
*.zip
*.rar
*.xls


DelIndex.bat
del \\Std\Bases\Trade\2005\*.cdx


Reindex.bat
"C:\Program Files\1Cv77\BIN\1cv7.exe" config /d\\Std\Bases\Trade\2005 /nSystem /psys /@E:\config_arch.prm
14. vladismi 168 05.09.12 09:53 Сейчас в теме
(11) GSoft, Все прекрасно, сам пользуюсь подобным, но дату в имя архива добавляю в обратном порядке да еще добавляю часы и минуты: -ag_YYYY-MM-DD-HH-MM или -ag_YYYYMMDDHHMM. Тогда, во первых, отсортированные по имени архивы будут находиться в порядке создания и, во вторых, в один день можно создавать несколько архивов.
16. GSoft 2026 05.09.12 10:43 Сейчас в теме
(14)согласен, это один из промежуточных вариантов, который нашел сходу

а так у меня был настроен следующий алгоритм

1. за час до начала работы делался утренний архив под текущей датой
2. каждые три часа делался текущий архив
3. вечером делался последний текущий архив и перезаписывал утренний под текущей датой
17. Ткачев 74 05.09.12 10:52 Сейчас в теме
25. GSoft 2026 06.09.12 09:02 Сейчас в теме
(17)(20)
Перезаписывая вечером утренний архив мы имеем под текущей датой все данные произведенные по эту дату включительно

по сути это сделано исключительно ради удобства и соответствия датирования архивов и данных в них

(20)
а зачем их копировать "куда-нибудь"?
26. Ткачев 74 06.09.12 10:33 Сейчас в теме
(25)> а зачем их копировать "куда-нибудь"?
Потому что не всегда можно за архивировать файл 1CD если в базе находятся пользователи.
12. ok0504 05.09.12 09:38 Сейчас в теме
Основная проблема в файловой базе 77 это не то как заархивировать данные, а то как отключить пользователей от базы во избежании глюков. Причем сделать это надо не перезагружая сервер. Без проблем "на лету" можно снять только бэкап с SQL версии базы.
33. vladimir_makarov 105 07.09.12 20:47 Сейчас в теме
(12) ok0504, абсолютно согласен! Ровно по этому и предлагаю примеры с АВТОМАТИЧЕСКИМ запуском, причем в то время, когда ЗАВЕДОМО в БД никого нет. Для этого есть все возможности. Всё упрощается, если есть Server, работающий круглосуточно: не надо использовать спящий режим, остаётся только вопрос к местному Админу: КУДА??? Т.е. путь архива. Не сочти идиотом, но повторюсь: Архивировать на тот же носитель, где исходные данные - мало полезное занятие, это без подробностей, все местные понимают.
13. GSoft 2026 05.09.12 09:40 Сейчас в теме
Кому интересно на семерке писал встроенную обработку архивации "1С:Архиватор" для rar.

В принципе при желании можно легко дописать для любого другого архиватора имеющего командную строку.

Из плюсов - простота запуска для пользователей (в нескольких компаниях бухи все никак не нарадуются)))), так как можно запускать в режиме предприятие. Также - не требуется монопольного доступа - работает в многопользовательском режиме.
15. Ткачев 74 05.09.12 10:37 Сейчас в теме
Имя для файла архива.
set hour=%time:~0,2%
if %hour% lss 10 set hour=0%time:~1,1%
set namefiles=%date:~8,2%%date:~3,2%%date:~0,2%%hour%%time:~3,2%%time:~6,2%
18. a1ex4ndr 5 05.09.12 11:16 Сейчас в теме
А зачем 3 ?

Для надежности наверное ;)
Если не брать отключение юзеров,от файловых баз, то винда и сама легко справляется с архивирование, особенно серверная, из плюсов рара вижу только удобное фильтрование того что надо исключить из архива, для экономии места
20. Ткачев 74 05.09.12 11:21 Сейчас в теме
(18)Я в смысле зачем перезаписывать утренний архив.
(12)Просто копирую куда нибудь все файлы и их оттуда архивирую.
@echo off
REM chcp 1251
copy C:\База\1Cv8.1CD C:\1Cv8.1CD
set hour=%time:~0,2%
if %hour% lss 10 set hour=0%time:~1,1%
set namefiles=%date:~8,2%%date:~3,2%%date:~0,2%%hour%%time:~3,2%%time:~6,2%
C:\Progra~1\WinRAR\RAR.exe m -m5 C:\Архив\%namefiles%.rar C:\1Cv8.1CD
copy C:\Архив\%namefiles%.rar \\freenas\backup\%namefiles%.rar
22. ok0504 05.09.12 11:31 Сейчас в теме
(20) Ткачев, Собственно я ставил вопрос об отключении пользователей в 77, там это целая проблема.
А в 8.2 зачем так извращаться? Отключить пользователей программно проще простого, можно никуда ничего не копировать, потом программно запустить выгрузку конфигурации и всё.
А если база в SQL, то всё еще проще - настроить Maintenance Plan, на выгрузку пользовательских баз и забыть про проблемы бэкапа на веки вечные.
23. Ткачев 74 05.09.12 11:33 Сейчас в теме
(22)Дело в том что их отключать нельзя, а архивы делать надо.
24. ok0504 05.09.12 11:43 Сейчас в теме
(23) Ну в таком случае, просто обязана быть клиент-серверная версия 1С.
19. Aleksey-29 05.09.12 11:19 Сейчас в теме
Для архивации лок. баз также пользуюсь архиватором. Работает без сбоев и нареканий.
21. Ткачев 74 05.09.12 11:31 Сейчас в теме
Архив при выключение компа, файл с расширением vbs, запускается из gpedit.msc "Конфигурация компьютера-Конфигурация Windows-Сценарии(Запуск/Завершение)-Завершение работы"

For Each ObjEvent In GetObject("winmgmts:").ExecQuery("Select Message From win32_ntlogevent "_
& "where Logfile = 'System' and SourceName= 'USER32' and (EventCode = '1074' or EventCode = '1076') "_
& "and TimeGenerated > '" & year(now) & right(0 & month(now),2) & right(0 & day(now),2) & "000000.000000+000'")
Exit For
Next
If InStr(ObjEvent.Message, "Тип выключения: Выключение питания") > 0 Then
mm = Right(0 & Month(Date()) , 2)
dd = Right(0 & Day(Date()) , 2)
hh = Right(0 & Hour(Time()) , 2)
mn = Right(0 & Minute(Time()), 2)
ss = Right(0 & Second(Time()), 2)
NameFile = Year(Date()) & mm & dd & hh & mn & ss
Set WshShell = CreateObject("Wscript.Shell")
CreateArchive = WshShell.Run("c:\Progra~1\7-Zip\7z.exe a -mx7 -r0 -x!*.cdx D:\Archive\DB_" & NameFile & ".7z d:\1C\DB", 1, True)
End If
27. OleGazz 13 06.09.12 11:42 Сейчас в теме
да спасибо, старый добрый винрар хорош! но я пользовался какой то уже не помню названия программой, она каждый день так же сама делала бэкапы...но она типо платная) но как всегда нашлись кряки)
28. capshow 06.09.12 15:15 Сейчас в теме
Есть как альтернатива бесплатная утилита xStarter, у неа ею все бэкапы настроены на ночное время
29. Ткачев 74 06.09.12 15:48 Сейчас в теме
Адинэсовской платформе надо ключ сделать в командную строку "Выкинуть всех пользователей"
30. vladimir_makarov 105 07.09.12 14:51 Сейчас в теме
Господа! о тонкостях ZIP и RAR: просто по памяти: У ZIP есть ограничение на размер файла, нет автоматического деления исходных данных на несколько архивов (последуемых, как дистриб 1С 7.7 разбит на дискеты), есть ли вообще управление из коммандной стороки у ZIP - не проверял. А главное, почему ЛЮБЛЮ с детства WinRAR, эта зараза обрабатывает ВСЕ типы архивов, а вот ZIP RAR-овский - ??? Никак! Да, степень сжатия (в RAR - регулируется), хотя и стандартная похлеще, чем ZIP, скорость и пр... В общем, я фанат WinRAR.
(29) Ткачев, я так понял, это шутка. Что самому-то проблемно их выкинуть??? Лично я никогда не справшиваю пароли (если они есть), зачем??? Клиентам неприятно пароли отдавать... У меня дома проще: просто ИЗНАЧАЛЬНО пароли игнорируются, НО! То, что пароль есть, я вижу, не вижу только текст пароля, а он мне и не нужен... А вообще, тут другая тема обсуждается. Напоминаю: об архивации.
31. Ткачев 74 07.09.12 15:05 Сейчас в теме
(30)rar windows не понимает, а zip понимает, жирный минус в rar сторону.
32. vladimir_makarov 105 07.09.12 20:30 Сейчас в теме
(31) Ткачев, это как понимать: "rar windows не понимает, а zip понимает, жирный минус в rar сторону.", то, что я написал (статейка) ИМЕННО об интеграции WinRAR и Windows!!! Любой из примеров можно использовать проще: КНОПКА "Выполнить", а туда эту самую строку, ЗАПУСТИТСЯ НА ВЫПОЛНЕНИЕ!!!
О главном: я не говорю о работе ZIP, ты знаешь, ты и напиши, всем будет интересно. Я описал мои методы, других мне не надо, если кто-нибудь лучше не покажет. Почитай комментарии (выше), там есть оч... хорошие примеры использования именно RAR-ской темы.
34. Ткачев 74 07.09.12 20:53 Сейчас в теме
Зачем использовать платный rar, если есть бесплатный 7-Zip ?
35. vladimir_makarov 105 07.09.12 21:16 Сейчас в теме
(34) Ткачев, Главное: ZIP на это способен или нет? Объясни! Не мне, сообществу, судя по комментариям, интерес есть. Я задал тему, которая РАБОТАЕТ!!! Идёт процесс обсуждения. Так ты СОВЕТЫ давай, или новую (подобную) статейку напиши! А я уже попробовал: ответ: НЕТ! ZIP вообще НИКАК для автоматики процесса не подходит, не считая недостатков, которые я выше описал. Одним словом: предложи КОНКРЕТНЫЙ РАБОЧИЙ способ решения текущей темы (автоматическая архивация), означенных в статье, тебе все будут благодарны.
36. Ткачев 74 07.09.12 21:58 Сейчас в теме
(35)Топик(21)c:\Progra~1\7-Zip\7z.exe a -mx7 -r0 -x!*.cdx D:\Archive\DB_Archiv.7z d:\1C\DB
37. vladimir_makarov 105 08.09.12 15:16 Сейчас в теме
(34)А зачем использовать платный WinRAR? Лично у меня несколько дистрибов, все полные и бесплатные. Найти не проблема.
(36)Если и ZIP на такое способен, я рад за него, и наверное все, у кого нет WinRAR.
Чем больше тут накопится примеров использования, тем полезнее всей нашей братии.
38. DarkDaemon 08.09.12 18:57 Сейчас в теме
Полезная статья, можно ее применять и к другим важным данным, не только к 1С. Но всё же лучше универсальную программу, которая сама все заархивирует, отправит на сервер, выключит комп. Я использую Backup42
39. Aleksey163 08.09.12 19:17 Сейчас в теме
Сейчас помоему ломанный вин рар найти проще простого...оставил бы конечно ссылочку..но...
40. sstar90 08.09.12 20:24 Сейчас в теме
А чем не устраивает Effector saver 3 ?
Из описания программы:
Программа Effector Saver 3 осуществляет резервное копирование баз данных 1С:Предприятия, Microsoft SQL, PostgreSQL и других файлов. Архиватор баз 1С:Предприятия 7.7/8.x выполняет свою работу по расписанию и при необходимости может корректно завершить работу пользователей (только для версии 1С:Преприятия 8.х). Effector saver 3 тестирует и исправляет базы, делает любые команды и скрипты.
Есть бесплатная версия.
42. vladimir_makarov 105 08.09.12 21:18 Сейчас в теме
(40) sstar90, поясняю: в моей практике была ситуёвина, когда со мной не договорилисись, к ним пришёл франч, содрал бобла, и сделал АВТОАРХИВАЦИЮ. Шло время, понадобился архив, он развёл ручками своими корявыми (потому, как франч), и сказал: сделать ничего нельзя! Потом они нашли меня, я через ... выдернул данные с HDD, а в его "архиве", кроме имён вложенных каталогов ничего нет... Девки "ручками" забивали остатки с бумажных носителелей. Если ты отвечаешь за сохранность БД, вот и пользуйся своим Effector Saver 3, я в этой статейке намекнул всему честному народу на НАДЁЖНЫЙ и БЕЗОТКАЗНЫЙ способ архивации, где каждый себе хозяин в параметрах. Более того, всем рекомендую: ПРОВЕРИТЬ НАСТРОЙКИ НА ПРАКТИКЕ!!!
41. Ткачев 74 08.09.12 20:56 Сейчас в теме
Ща много бесплатного намного круче платного, рар давно уже устарел, сам только им пользовался, потом асе появился, 7-zip и т.п., так рар отошел на 2-ое место.
43. vladimir_makarov 105 08.09.12 21:24 Сейчас в теме
(41) Да что ты не успокоишься? Все знают, что есть и другие архиваторы, я написал на примере WinRAR, таким образом обозначил тему, Бога ради, бояре, я намёк дал, а уж Вы фантазируйте, кому как нравится... Я вот тоже в комментарих увидел оч... интересную комбинацию ключей и параметров....
44. Sergey03 10.09.12 14:52 Сейчас в теме
Кондратеву ромке

чета в сообщении не могу тебе ни чего написать..
тебе полное описание выгрузки SQL или только про рар?
45. Sergey03 10.09.12 14:53 Сейчас в теме
от куда начать рассказывать не знаю:)
46. Trotter_NN 13.09.12 10:52 Сейчас в теме
(45) Sergey03, ды начните с малого напишите статью )) или в дувух словах зайти тудато и сапустить тото и написать код туда то ) запустить так то.
47. VictorK 13.09.12 16:58 Сейчас в теме
Тема полезная!!! Так много нового узнал о WinRAR и других методах архивации. Спасибо.
48. tazmag 22.09.12 00:17 Сейчас в теме
вот думая что за архивировать данные не будет большой проблемы, можно их даже не архивировать, а как выгнать пользователей из программы это уже другой вопрос... слава богу настроил бэкапы на сервере... но недавно защитники информации с целью защиты информации (персональных данных) решили как то защитить Зарплату и Кадры, купили АККОРДы поставили на компы работающие с ЗиК, еще программу VIPNet и запретили держать базу на сервере, вот и пришлось его переносить на локальный компьютер из этой закрытой сети, вот тут видимо и придется думать как автоматизировать БЭКАПЫ))) Теме зелень с тщательно расписанный механизм...
49. AlexO 132 02.11.12 09:59 Сейчас в теме
Платформа: Не имеет значения

ничего подобного.
Этот метод ТОЛЬКО для 7.7.
Ибо даже файловую 1С8 ПРИ РАБОТЕ заархивировать не удастся. А уж серверную и подавно.
И, если уж на то пошло, есть намного более путные бэкаперы - тот же APbackup со встроенным ZIP и возможностью подключения любых других архиваторов.
50. AlexO 132 29.11.12 11:42 Сейчас в теме
Макаров Владимир:
(49) AlexO,
1. Приятно видеть нормальную критику. Однако: прошу учесть: я показал, как можно использовать WinRAR and Windows совместно, не претендуя на оригинальность.
2. "Нельзя архивировать 8.х": МОЖНО! Просто в задании укажи откуда и куда, обеспечь доступ в данный момент времени. + Полномочия (на ПК, с которого задание запускается).
3. Сей архив = УНИВЕРСАЛЕН!!! Его можно "расшифровать" в полном объёме на любом компе! При этом, его можно защитить.
51. AlexO 132 29.11.12 11:53 Сейчас в теме
(50)"обеспечь доступ в данный момент времени"
- именно что заблокированный файл-базу невозможно сархивировать, именно винраром.
А когда файл разблокирован - это неизвестно.
52. AlexO 132 29.11.12 11:54 Сейчас в теме
vladimir_makarov
(51) AlexO,
WinRAR, кстати, может архивировать открытые в данный момент файлы (ключ -dh). НО!!! Не рекомендую использовать, т.к. в архиве могут оказаться несогласованные файлы, БД из архива не откроется. Поэтому, уж потудитесь, выбирать время архивации, когда в БД никого нет. Это не трудно. Напоминаю главный "+": у тебя в архиве полностью рабочая БД, выдёргивай и подключай! Архиватор работает долго только 1-й раз, потом он просто переписывает изменённые файлы.
И, напоминаю: я написал, как именно WinRAR использовать для этого, без претензий к другим способам. Если они у тебя есть (кроме конфигураторских), предложи, все вместе и обсудим, чтобы каждый нашёл для себя оптимальное...
53. AlexO 132 29.11.12 12:04 Сейчас в теме
(52)
Если они у тебя есть (кроме конфигураторских)

есть.
А через конфигуратор - даже сама 1С не рекомендует делать архивы.
Говорит, ненадежное это дело - хреново у нас сделана архивация....
Самый лучший и надежный способ бэкапирования базы 1С - средствами SQL.
ключ -dh

Нет такого ключа в WinRAR :)
И ни один процесс в Windows (читай - приложение WinRAR) не может получить полный доступ к файлу, который уже часть другого процесса.
54. vladimir_makarov 105 29.11.12 12:25 Сейчас в теме
(53)А через конфигуратор - даже сама 1С не рекомендует делать архивы. : именно поэтому я и писал об этом. Так ты намекнул про средство - вот и напиши народу, как им пользоваться!!! Чё слова впустую гонять? И мне интересно, и всем, кто тему смотрит.
55. vladimir_makarov 105 05.12.12 17:23 Сейчас в теме
(51) AlexO, читай (52)
(53) ++++ однозначно. Но! Ключик такой есть! Суть в том, какой у тебя WinRAR? Но, повторюсь, хреновый ключ, если использовать относительно ОТКРЫТЫХ в данный момент БД 1С! Причём, пофиг, к каким платформам они относятся... "Косяки" появятся везде, если неправильно пользоваться. Пример: ты открыл документ (в этот момент запустилась архивация):
а) ты ничего не изменил в документе. /а у него уже переписалась дата измененя и пр./
б) ты изменил документ (но не записал /не изменил егонные движения/) - тут веселее: что он в архив закинет?
в) в архив могут попасть данные ЧАСТИЧНО! В иоге всю БД не открыть...
К чему клоню:
Давайте ЗДЕСЬ обсмудим все известные способы архивации. Я предложил WinRAR. Предлагайте свои! Объясняйте их преимущества! Я же не говорю, что предлагаю панацею... В конце-концов, меня 1CV8х откровенно бесит! Так я молчу, приходится подстраиваться...
56. dddimmm 25.06.14 13:56 Сейчас в теме
еще бы пример задания где создается архив защищенный паролем
57. vladimir_makarov 105 09.07.14 04:36 Сейчас в теме
(56)
Ну пример писать не буду, но если интересно, то подскажу: в WinRAR Есть ключ, который не только устанавливает пароль, но и шифрует архив:

Ключ -HP[пароль] — зашифровать и данные, и заголовки файлов

Как и ключ -p[пароль], этот ключ включает режим шифрования архива, однако при этом шифруются не только содержащиеся в файлах данные, но и другая отображаемая информация, например, имена файлов. При указании этого ключа шифруются все важные области архива, включая данные файлов, имена файлов, размеры, атрибуты, комментарии и другие блоки, благодаря чему обеспечивается более высокая степень защиты.

Архив, зашифрованный с ключом -hp, без пароля невозможно не только распаковать, но даже просмотреть список содержащихся в нём файлов.

58. BorovikSV 1032 15.12.16 16:34 Сейчас в теме
Безопасное копирование файловых баз данных 1С (1Cv8.1CD)
Почему же нельзя просто скопировать файл 1cv8.1CD?

Принцип работы 1С, заключается в том, что основной файл базы 1cv8.1CD никак не блокируется. Блокировки накладываются на вспомогательный файл 1cv8.1CL. То есть когда 1С хочет что-то прочитать, или записать то она блокирует 1cv8.1CL с определенными смещениями, которые соответствуют тем или иным таблицам. Когда все, что нужно прочитала (записала), то блокировки снимаются.

В упрощенном виде можно процесс "Блокировка - Запись - Разблокировка", представить как транзакцию. В силу естественных причин они должны быть атомарны (неделимы), ведь иначе получим несогласованные данные, и как следствие заведомо аварийную базу.

В момент простого копирования, есть очень большой риск, что получите копию с несогласованным данными. Ведь пока вы копировали 5-й по счету мегабайт, 1С в 1-м по счету мегабайте внесла некоторые изменения. И вы получите копию, где 5-й мегабайт "свежий", а 1-й мегабайт "старый". Другими словами копия получилась несогласованная, аварийная, и она вам обязательно за это "отомстит" в самый неподходящий момент.
Оставьте свое сообщение
Вакансии
Начальник отдела программирования
Уфа
зарплата от 125 000 руб.
Полный день

Программист/тестировщик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Бизнес-аналитик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день