Автоматическая архивация баз данных 1С 8.2, 8.1 и 7.7

Опубликовал roskmv в раздел Администрирование - Архивирование (backup)

Автоматическая архивация баз данных 1С 8.2, 8.1 и 7.7  без установки дополнительного ПО. Удаление устаревших архивов, дублирование ежемесячное в другой каталог, отправка на e-mail письма о работе скрипта (каждый раз или после аварийного завершения), максимально подробный лог-файл.

С обновления от 14.07.2010 поддержка 1С 8.2 !!!

Ничего сложно нет. Кто работает со скриптами все поймет. Для остальных созданы комметарии к наиболее важным блокам программы.

Основные принципы работы:


    *  каждая база 1С архивируется в отдельную папку;
    *  в этой самой "отдельной папке" накапливаются все архивы баз 1С;
    *  при наступлении окончания срока хранения архива(ов) - автоматически удаляются из   соответсвующих папок;
    *  перед выгрузкой баз закрываются все локально запущенные экземпляры 1С версий 7.7, 8.1 и 8.2;
    *  ведётся максимально подробный лог;
    *  в случае АВАРИЙНОГО ЗАВЕРШЕНИЯ работы скрипта от имени заданного пользователя (напр. администратора) отправляется предупреждающее сообщение на указанный адрес. Есть возможность вложить в сообщение файл (напр. подробный лог, записываемый при архивации);
    *  работает с ФАЙЛОВЫМИ базами 1С v 8.1, 8.2 и любыми базами 1С v 7.7.

Весь процесс архивирования выполняется только средствами самой Windows и 1С (без привлечения дополнительного ПО).

Опубликована ОБНОВЛЕННАЯ ВЕРСИЯ v2 от 06.07.2010!!!


ИЗМЕНЕНИЯ в новой версии:

    *  Теперь все необходимые переменные и константы вынесены в начало скрипта;
    *  Сам код стал более информативным (добавлены новые комментарии);
    *  Лог-файл также стал более информативным, каждая операция подробно отражена;
    *  Добавлена функция дополнительного ежемесячного резервного копирования (дублирования) архивных файлов в отдельный каталог (раз в месяц дублируется последний файл). Если файл уже был ранее скопирован, то повторное копирование не происходит (дабы избежать безсмысленных операций), о чем выводится сообщение в логе;
    *  После операции ежемесячного дублирования в лог выводится результат операции (напр. имя скопированного файла);
    *  После удаления устаревших файлов в лог записывается информация о кол-ве удаленных объектов;
    *  Появилась возможность управления состояниями процессов удаления файлов, дополнительного резервного копирования и отправки e-mail. Теперь при помощи констант можно ВКЛ. или ВЫКЛ. данные процессы;
    *  Проверяет наличие свободного места на диске для архивных копий и записывает в лог;
    *  Исправлена ошибка при работе с базами 1С v 7.7, при которой не выполнялось удаление устаревших файлов.

С  ОБНОВЛЕНИЯ от 14.07.2010 поддержка 1С 8.2 !!!

С  ОБНОВЛЕНИЯ от 24.07.2010 добавлена возможность отправки сообщений о каждом завершении работы скрипта на e-mail. При помощи константы EmailEndScript: если True будет отправляться извешение об окончании работы скрипта, если False - не будет!

Еще новая опция. Определить наличие зарегистрированного пользователя в системе 1С. Константа User = True - пользователь есть (логин+пароль), User = False - в системе нет определенных пользователей (при этом имя и пароль запрашивать не будет).

Скрипт редактируем в блокноте, указавая свои данные. Что и где ввести см. на скриншотах!

В последней редакции исправлена некорректная работа с сетевыми путями при создании каталогов на удаленном компьютере.

Скачивайте! Буду рад, если кому-то помог!

P.S.
Планирую продолжить развитие темы.
Что будет в новой версии?
Информирование пользователей домена о начале регламентных работ.
Возможность принудительного завершения процессов 1С на всех компьютерах домена.
Отправки e-mail с компьютера, на котором не установлен локальный SMTP-сервис/сервер.
и конечно работа с SQL-версиями.
Идей много... Дело за малым... Найти ВРЕМЯ!

Наименование
Archivator1Cv8_v2
Скачать

См. также

Лучшие комментарии

40. semkon (файл скачал) 16.07.2010 17:58
Скачал и ... неожидал ... заработало сразу, правильно и без глюков. :o
Такое редкость.
Автору однозначно преспект !!! :D
Плюсануть не жалко ;)
+ 2 [ skutuz; werdikt; ]
# Ответить
41. roskmv 16.07.2010 18:08
Однако...
Всем нравится, качают, все работает, а ... плюсануть забываем!?
Обидно-о-о :(
# Ответить
43. roskmv 19.07.2010 23:49
Все правильно заполнил...
Прошу прощения, моя ошибка :o
Уже исправил файл и закачал ;)
+ 1 [ 11120222; ]
# Ответить
72. DobryaginaB (файл скачал) 14.10.2010 13:38
Спасибо за обработку! Работает отлично. Немного дописала, чтобы по окончании выдавалось окно сообщения. А то не видно было, когда закончилась архивация.

В целом - все очень понравилось и пригодилось.
+ 1 [ andreyrosp; ]
# Ответить
63. Brom46 (файл скачал) 14.09.2010 15:26
Отличный скрипт :D,
в коплекте с бесплатным xStarter работает на 5 с плюсом :)

немного дописал функцию для прямой отправки мыла через SMTP майла-ру (можно и любого другого)...
Set iConf=CreateObject("CDO.Configuration")
        Set Flds=iConf.Fields
        Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
        Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
        Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")="sender@mail.ru"       'почтовый ящик отправителя
        Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")="pass"   ' пароль на почтовый ящик
        Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.mail.ru"
        Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25
        Flds.Update
        objEmail.Send()
...Показать Скрыть

(может пригодится кому)
Ответили: (69)
+ 1 [ numerok; ]
# Ответить
Загрузка цен номенклатуры из Excel для УТ 11 (управляемая форма)
Зарплата в средних общеобразовательных школах (релиз 1.0.78.1)
TurboConf - турбина для Конфигуратора
Консоль СКД - программа интерактивного изучения Системы компоновки данных
Подсистема "Инструменты разработчика" v3.21
Универсальная выгрузка/загрузка данных для отличающихся конфигураций (JSON, Такси+ОФ)
Программа Дисплей покупателя 1С: второй монитор (Информационное табло)
Обработки для удаления данных с отбором и построением дерева ссылок в базах 1С 8.1-8.3 (обычное, управляемое, "такс...
Contragent+ (1С 8.2/8.3)
Алкогольная декларация для "1С:БП3.0, УТ 10.3, УТ 11, КА 8", с подписью, шифрованием и форматно-логическим ко...
Простой и Удобный Универсальный отчет (СКД) v 2.1
Перенос данных из программы "1С:Бухгалтерия 8 ред.2.0" в "1С:Управление производственным предприятием&quo...

Комментарии

101. Bassar 26.10.2011 10:50
Выдает ошибку при запуске:
Сценарий: Пусть к файлу
Строка:601
Символ: 6
Ошибка: Устройство не готово
Код: 80070015
Источник: CDO.Message.1
Ответили: (122)
# Ответить
102. roskmv 26.10.2011 11:36
Проверьте константу
Const EmailAddAttachment = "F:\\SBS BackUp.Log" 'вложение в письмо (ВНИМАНИЕ двойной \\)

тут должно быть указано место расположения вашего Log файла.
Еще раз обращаю ваше внимание на вот этот момент - ВНИМАНИЕ двойной \\ !!!
# Ответить
103. zorgus06 27.10.2011 14:20
Автору респект. интересно было бы скульную версию потестить...
Ответили: (133)
# Ответить
104. artem19rus 10.11.2011 09:40
Удобная вещь
Ответили: (133)
# Ответить
105. artem19rus 10.11.2011 10:35
А если имя пользователя нет?
Ответили: (133)
# Ответить
106. Strannik99 (файл скачал) 14.11.2011 13:33
Может пропустил,
1. что будет если в базе висит пользователь ?
2. Работает ли на win2003standart ? (может кто использовал уже )
Ответили: (133)
# Ответить
107. margo2007 (файл скачал) 15.11.2011 07:06
Хотелось бы посмотреть на эту обработку..
# Ответить
108. Strannik99 (файл скачал) 16.11.2011 11:17
Роман Спасибо
Снимаю вопрос 1 в 106, скрипт останавливает 1с8 и 1с77
Продолжаем разбираться дальше
# Ответить
109. Strannik99 (файл скачал) 17.11.2011 10:30
Ещё раз спасибо.
После прописки необходимых путей скрипт замечательно работает на 2003 сервере, архивирую 3 базы, 2 -8.1, одна 8.2. Запуск архивации (скрипта) по планировщику.
Вопрос, я так понял скрипт может почту слать только с ЛОКАЛЬНОГО smtp ? Или можно заставит подключиться к внешнему?
# Ответить
110. AndreyMurom 23.11.2011 08:41
Автору большой плюс, пробовал и на 7.7, и на 8.1, и на 8,2. Все работает прекрасно, архивирует отлично. Тестировал на файловой версии.
# Ответить
111. malina-da 24.11.2011 15:11
Спасибо, очень пригодилась в работе !
# Ответить
112. trustgros (файл скачал) 27.11.2011 23:33
все работает.. даже с sql версией.. только шеф поставил задачу составлять имена файлов в формате гггг.мм.дд, чтобы файлы лучше сортировались.может кто сталкивалсо?
# Ответить
113. mirkomp (файл скачал) 30.11.2011 00:35
А в удаленном доступе будет работать? Win 7/
# Ответить
114. Asaqura 05.12.2011 01:39
каким образом закрываются локально запущенные экземпляры 1С ?
# Ответить
115. Трактор (файл скачал) 15.12.2011 12:12
Вызывают вопросы строки

strLogFileName = "BackUp1CBases.Log"
strLogFileName = ScriptPath + strLogFileName

По идее переменная strLogFileName должна содержать тоже что и EmailAddAttachment. Иначе почта не отправится.
Ответили: (162)
# Ответить
116. h0201 (файл скачал) 21.12.2011 15:48
добавить бы уведомление пользователям с открытой сессией о завершении работы + таймаут минуты две на сохранение и выход из программы.
# Ответить
118. xklos 29.12.2011 10:11
Доброго времени суток Автору большой плюс, пробовал и на 7.7, и на 8.0, и на 8.1, и на 8,2. Все работает прекрасно, архивирует отлично. Тестировал на файловой версии, разные модификации вроде нареканий не вызывает большой плюс :)
# Ответить
119. Pashikuss 29.12.2011 11:15
Замечательная штучка
# Ответить
120. webester (файл скачал) 10.01.2012 05:34
Пасиба, забрал. Колебаюсь между самостоятельной прогой за 350 рубликов которая еще и на фтп бэкапы ложит и твоим скриптом.
# Ответить
121. baronzelan4 (файл скачал) 20.01.2012 09:21
Поставил прогу на 8.2. Все прекрасно работает. Бухи довольны, что теперь не надо все делать ручками. Автору респект и уважуха. А от бухов отдельное спасибо.
# Ответить
122. Naton (файл скачал) 23.01.2012 19:58
(101) Bassar, У меня аналогичный результат.
Вы разобрались?
# Ответить
123. Andro_sas (файл скачал) 29.01.2012 14:09
Отличный скрипт) уже неделю полировал, настраивал под свои ИБ. Огроменное спасибо - Все работает как часы!
# Ответить
124. Владимир Зайцев 29.01.2012 23:57
Вполне приемлема, но ошибка осталась!
# Ответить
125. ReLock 30.01.2012 00:03
Спасибо. Хороший скрипт! Побольше бы таких!
# Ответить
126. Konstatine (файл скачал) 01.02.2012 11:05
Подскажите...
Необходимо прописать BackUpFolder и ReserveFolder как сервер.
Пишу: "\\192.168.0.100\d$\1\", а программа создает такие же папки на этом компьютере!
Хотя из командной строки обращаюсь к серверу - все нормально.
Помогите.
# Ответить
127. oleglg 01.02.2012 11:49
Озадачился и я этой проблемой.
Имеем 40 адресов, 70 серваков, 270 баз 1С разного вида и рода.
Надо настроить бэкапы.
Бэкапы должны копироваться на сетевые хранилища. Желательно это все администрировать удаленно.

Сравнил я проги:
Хранитель http://www.backupper.ru/products.htm
Эфектор http://effector.com.ua

(глянул мельком http://www.handybackup.ru/help_5_5_1.shtml)

По сути это просто копировальщики файлов, умеют копировать файлы по шаблону 1С,
умеют посылать сообщение о результатах бэкапа.
Все эти проги не смогут сбэкапить 1С, если в нее кто-то зашел монопольно. Выкидывать юзеров они не умеют.
Ответили: (152)
# Ответить
128. roskmv 01.02.2012 12:38
Добрый день.
Спасибо за комментарии.
Протестировал, и действительно, есть проблема с созданием папки на сервере по сети. Сейчас вношу корректировки. Так что, через пару часов сможете скачать обновленную версию.

Жду других замечаний, если таковые будут. А также принимаются пожелания.
# Ответить
129. Konstatine (файл скачал) 01.02.2012 14:02
Спасибо.
Прошу написать когда все будет готово!
# Ответить
130. roskmv 01.02.2012 15:01
Новая версия доступна для скачивания.
Тестируйте!
# Ответить
131. Svetlana_67 (файл скачал) 07.02.2012 12:56
Отзывы хорошие. захотелось скачать и поробовать, т.к. проблемы возникают время от времени и надеятся на сознательность бухгалтеров не приходиться.
# Ответить
132. Mudrii_Gankster 08.02.2012 13:17
одно пока не понятно, если я правильно понимаю это скрипт - обработка, запускается под 1с, но для выгрузки базы нужен монопольный доступ. Получается коллапс для выгрузки нужна монополия, а запустить без входа в 1с нельзя.

Либо она работает тупо копированием файлов и архивированием в архив? если так то думаю Скуль точно не будет работать.
Ответили: (135)
# Ответить
135. Strannik99 (файл скачал) 09.02.2012 23:02
(132) Mudrii_Gankster,
скрипт запускается самостоятельно.Сначала находит запущеные процессы 1с и "убивает" их, потом запускает конфигуратор 1с и штатно создаёт копии баз в указаные папки. Причём у меня на такое создание уходит времени в два раза меньше нежели запускать вручную.
Ответили: (144)
# Ответить
136. bvk (файл скачал) 13.02.2012 00:09
Все вроде делает, а в конце выскакивает ошибка строка 604, символ 6, Системе не удалось найти указаный путь. Где это строка 604? В Блокноте считать запаришься.:)
# Ответить
137. bvk (файл скачал) 13.02.2012 00:16
нашел, в блокноте оказывается можно перейти к строке, а там что-то с почтой связано.
# Ответить
138. velichutin (файл скачал) 21.02.2012 14:58
У меня все отработало на 1с 8.2
# Ответить
. Aleksey-29 (файл скачал) 02.03.2012 14:17
Даааа, хороша разработка.
Сам ею пользовался, тока вот на новой работе приходится заново качать.
Весчь!!!
скачавших 3360 человек! На рекорд идет!
# Ответить
. fomix (файл скачал) 02.03.2012 15:26
(70) roskmv, Спасибо за скрипт - все работает, кроме отправки на почту без локального smtp клиента.. пробовал вставить скрипт из 69 поста - ругается.
# Ответить
142. klel 06.03.2012 21:18
Оболденная штука мне понравилась буду пользоваться =) не нужно ручками а один раз сделал и пользуйся
# Ответить
143. Necytij (файл скачал) 11.04.2012 20:27
Может быть я один такой, но у меня даже обладая правами локального администратор на терминальном сервере без домена не вырубались процессы 1Сок обычных юзеров. Находил их, потому что о количестве запущенных докладывает, но, почему-то, не убивал и ошибки не видно, хотя в стандартном скрипте нет обработчика ошибок во время процессов "убийства", только в момент создания объекта, так же как в моей версии процедуры. Зависший сессий не было, просто не вырубал их.
Вышел из положения следующим образом:
Заменил процедуру "насильственного процессо-убийства" на такую вот
Function KillProcess (ByVal PName)
Dim objShell
    Err.Clear
    On Error Resume Next

	Set objShell = WScript.CreateObject ("WScript.shell")

    If Err.Number <> 0 Then
        AppendToFile strLogFileName, "ПРОИЗОШЛА ОШИБКА!!!"
        AppendToFile strLogFileName, Err.Number & ": " & Err.Description
        AppendToFile strLogFileName, "АВАРИЙНОЕ ЗАВЕРШЕНИЕ РАБОТЫ ПРОГРАММЫ!!!"'
	SendEmail        
	WScript.Quit
    End If

	objShell.run "taskkill /F /IM " & PName, 0
	Set objShell = Nothing

end function
...Показать Скрыть
# Ответить
144. Necytij (файл скачал) 11.04.2012 20:31
(135) Strannik99,
В 2 раза меньше времени???
У вас наверное дикие проблемы с компом. Процедура выполняет те же функции, за исключением открытия конфигурации и показа интерфейса. Ну разве что еще не надо ждать пока процесс 1Сок завершится, а быстро убивает его, но это все-таки некорректно, в первую очередь надо решать проблему "выключения" 1Ски штатными административными мерами.
Ответили: (145)
# Ответить
145. Strannik99 (файл скачал) 16.04.2012 22:37
(144) Necytij,
не в два конечно, но быстрее.
Скрипт трудится месяца 4, пока проблем не замечал.
Правда ещё раз в неделю тестирование запускается.
В логе по результатам тестирования тоже вроде нет ничего криминального
вин 2003, стандарт. копируются 3 базы две 8.1 и 8.2, базы файловые, терминальных сессий нет.
# Ответить
146. artm 17.04.2012 02:10
Эффектор сейвер для этих целей как по мне самое интересное решение...
# Ответить
147. Necytij (файл скачал) 03.05.2012 00:35
Также отказался скрипт работать как в стандартном варианте (предложенном автором) так и с собственной доработкой из поста 143 на Windows XP Home Edition sp3. Почему не работает родной вариант даже не догадываюсь - надо поболее системные языки запросов знать, почему мой вариант не прошел - так потому что, как оказалось, нет там taskkill программы. В Хоум положили только устаревшую от Win 2000 tskill, намучился я с ней. Не умеет она убивать по маске все процессы, и даже если у вас два процесса одновременно запущено 1Ски, он ничего не может сделать - говорит не указан id процесса, если вы пытаетесь убить его по имени, что интересно не нашел такой инфы в интернете. А перечислить их я не смог, думаю, это возможно, но я не смог. Мое решение: скопировал taskkill с Win Pro в папку system32, и мой вариант заработал через 2 секунды.
Может кому пригодится.
# Ответить
148. Quasar (файл скачал) 21.05.2012 15:21
Прежде всего БОЛЬШОЕ СПАСИБО! Обработка классная.
Но вот не могу никак понять почему у меня для 8.2 баз открывает окно авторизации? Параметр User=True, Пользователь и пароль в параметрах указал. А она все равно спрашивает. Как это лечить?
Ответили: (149)
# Ответить
149. Quasar (файл скачал) 21.05.2012 15:41
(148) Quasar, Сам же и отвечу на свой вопрос))) В общем, Пользователя то я указал, а пароль у этого пользователя был пустой. Установил пароли в конфигураторе и указал их в скрипте и все отлично запускается, ничего не просит.
# Ответить
150. Sasha255n 24.06.2012 09:31
Я всегда пользовался эффектором органайзером конечно было бы интересно поролбовать и эту
# Ответить
151. iDjvu 24.07.2012 10:15
Спасибо за Скрипт!
# Ответить
152. OscarTT 02.08.2012 14:05
(127)
"Озадачился и я этой проблемой.
Имеем 40 адресов, 70 серваков, 270 баз 1С разного вида и рода.
Надо настроить бэкапы.
Бэкапы должны копироваться на сетевые хранилища. Желательно это все администрировать удаленно.

Сравнил я проги:
Хранитель http://www.backupper.ru/products.htm
Эфектор http://effector.com.ua

(глянул мельком http://www.handybackup.ru/help_5_5_1.shtml)

По сути это просто копировальщики файлов, умеют копировать файлы по шаблону 1С,
умеют посылать сообщение о результатах бэкапа.
Все эти проги не смогут сбэкапить 1С, если в нее кто-то зашел монопольно. Выкидывать юзеров они не умеют."

Эфектор (http://effector.com.ua) умеет, но только в платной версии.
# Ответить
153. tana1257 15.08.2012 11:31
Добрый день. У нас сервер 2008 , релиз 1С v7.7, база данных SQL. Средствами 1С не могу сделать архив, так как архив перевалил 2Гб, Вопрос - ваш архиватор дает работать с такими базами?
Ответили: (154)
# Ответить
154. roskmv 15.08.2012 11:42
(153) tana1257, Сожалею, но с базами SQL данный архиватор пока не работает, было в проекте, но сейчас нет времени.
Попробуйте программы, о которых упоминают выше.
# Ответить
155. tana1257 15.08.2012 12:01
Спасибо за оперативный ответ.
# Ответить
156. ghool (файл скачал) 14.09.2012 14:33
- 1с77
- запуск в пакетном режиме с указанием базы, пароля
- в случае, если в список (по сути в реестр) эти базы добавлены не были

В этой ситуации 1с-ка не выполняет указанные операции, а тупо предлагает дописать базы в список баз (в реестр)

У вас эта ситуация продумана?
Самы простой вариант, для 1с77 дописывать новую "временную" базу в реестр, а после окончания выгрузки удалять её.
Там же можно добавить всякие галочки "не показывать при запуске", которые иногда вылазят при первом запуске базы после обновления.
# Ответить
157. ghool (файл скачал) 14.09.2012 14:33
выгонять юзеров, как это тут реализовано
http://infostart.ru/public/101417/
не думаете?
# Ответить
158. skilster (файл скачал) 27.09.2012 09:43
Спасибо! Все прекрасно работает, но не мешало бы расширить функционал на SQL-базы. Предлагаю воспользоваться моим скриптом: http://infostart.ru/public/153571/
# Ответить
159. eigen20 23.10.2012 17:23
Большое спасибо автору, очень нужная вещь!
# Ответить
160. internetname 08.02.2013 14:41
Нужная вещь.
# Ответить
161. binagal (файл скачал) 13.03.2013 05:37
Константа EmailAddAttachment используется только в отправке почты:
objEmail.AddAttachment(EmailAddAttachment)
в записи лога она не используется. Т.е. такого файла не существует. Получаем ошибку:
CDO.Message.1: Не удается найти указанный файл.

Какой файл тут должен использоваться?
# Ответить
162. binagal (файл скачал) 13.03.2013 05:39
(115) Трактор, как Вы решили проблему с EmailAddAttachment?
# Ответить
163. c00lwork (файл скачал) 05.01.2014 13:33
я не программист но в логе у меня написано Запускаем 1C в пакетном режиме.. и ошибка
# Ответить
164. Sergafan10 (файл скачал) 02.10.2014 21:20
Кому нужен был SQL-вариант скрипта?! Отдельную публикацию лепить не стал, т.к. несправедливо.

Отличия от исходника:
1) В параметры базы добавлен ещё один параметр - "SQL"
2) Параметр BaseLocationPath принимает значение "имя_сервера\имя_базы", если база скульная
3) В связи с п.2 удалена конструкция поиска папки с базой, т.к. я счёл, что среди нас слепошарых нет
4) Удалил вилку зависимости наличия зареганных пользователей в базе (нахуана автор влепил User в константы, ведь в одной базе они могут быть, а в другой неть, я так и не вкурил)
5) Вместо п.4 воткнул вилку проверки варианта "файл/SQL"
=============
В общем добавляем параметры из своих скриптов, только не грохайте и отрегулируйте строку
MyBase.SQL = "True" 'если база SQL, иначе ставим "False"  


P.S. Приветствуются плюсики, чтобы загнать пост вверх, т.к. скуль версия много кому спонадобится.

Прикрепленные файлы:

Archivator1Cv8_v3.vbs
+ 1 [ Dubasov; ]
# Ответить
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл