1С:Парабэкапер - конфигурация для резервного копирования баз 1С

Публикация № 193907

Администрирование - Архивирование (backup)

16
Конфигурация осуществляет резервное копирование баз данных 1С по расписанию в "dt" архив.
Запуск копирования осуществляется регламентным заданием, поэтому если использовать клиент-серверный вариант, то нет необходимости запускать отдельный сеанс 1С. Но файловый режим запуска так же поддерживается.
Парабэкапер может работать как с файловыми, так и клиент-серверными вариантами баз 1С.

Не найдя приемлимого ПО для резервирования и не найдя в себе силы вспоминать другие языки программирования, сделал небольшую конфигурацию в 1С. Может кому пригодится =)

Конфигурация осуществляет резервное копирование баз данных 1С по расписанию в "dt" архив.
Запуск копирования осуществляется регламентным заданием, поэтому если использовать клиент-серверный вариант, то нет необходимости запускать отдельный сеанс 1С. Но файловый режим запуска так же поддерживается.
Парабэкапер может работать как с файловыми, так и клиент-серверными вариантами баз 1С.

Особенности работы в разных режимах работы:

 - Клиент-серверный вариант: если в параметрах базы указано, то может закрывать все соединения с базой перед выгрузкой копии (что кстати не всегда гарантирует успешную выгрузку.. из-за разных зависших соединений с ИБ)

 - Файловый вариант: при неудаче выгрузки архива "dt" просто копирует файл базы данных "1cd" из папки с базой в указанную. Имя файла создается также согласно шаблону, только с расширением "1cd".

 

В любом режиме делает 5 попыток выгрузки базы. Все записывается в логе.

Есть возможность интерактивно создавать резервные копии каждой базы в отдельности и всех разом.

Автоматическое резрвное копирование производиться не будет для тех баз, где не поднят флаг "Активность".

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

Предложения по доработкам приветствуются, но ничего не обещаю))

В проекте:

1. Добавить оповещение по Email о результате копирования

2. Добавить возможность делать копии на FTP сервер

 

Изменения в версиях:

1.0.0.2 Убрал пробелы в строке запуска после ключей /S /F /DumpIB /Out (спасибо Tahallus)

1.0.0.3 Добавлена возможность удаления старых копий и создана форма для записей в логе (было не удобно смотреть сообщения).

16

Скачать файлы

Наименование Файл Версия Размер
Парабэкапер v.1.0.0.3 ("dt" выгрузка)
.dt 42,51Kb
12.07.13
114
.dt 42,51Kb 114 Скачать
Парабэкапер v.1.0.0.3 ("cf" файл конфигурации)
.cf 33,24Kb
12.07.13
34
.cf 33,24Kb 34 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Tahallus 425 11.07.13 01:31 Сейчас в теме
Только после параметров /S /F /DumpIB /Out пробел не ставиться, иначе выгрузка не идет.
СтрокаЗапуска1С = " DESIGNER /"+?(КлиентСервер,"S","F")+""""+
      Местонахождение+""" /N"""+Результат.Имя+""" /P"""+Результат.Пароль+""" /DumpIB"""+
      ПапкаДляКопий+ИмяФайла+""" /Out"""+ВремФайл+"""";
2. shalex5 51 11.07.13 09:27 Сейчас в теме
(1) Tahallus, Не знаю почему, но у меня и так и так работает) но все равно спасибо, изменил.
3. aet 37 11.07.13 09:51 Сейчас в теме
1С не рекомендует для архивации использовать выгрузку в dt.
http://its.1c.ru/db/metod81?db=metod81#content:2922:1
4. shalex5 51 11.07.13 09:57 Сейчас в теме
(3) aet, об этом можно дискутировать бесконечно) не будем и начинать. Каждый делает так как считает нужным.
5. Sergoninfostarru 2 17.07.13 11:19 Сейчас в теме
Что-то не заметил возможности отключать пользователей, которые "забыли" выйти на время архивации ? Это предусмотрено в конфигурации или все рассчитано на дисциплинированных бухгалтеров и операторов ?
6. shalex5 51 17.07.13 12:26 Сейчас в теме
(5) Sergoninfostarru, в описании это есть)

- Клиент-серверный вариант: если в параметрах базы указано, то может закрывать все соединения с базой перед выгрузкой копии (что кстати не всегда гарантирует успешную выгрузку.. из-за разных зависших соединений с ИБ)

- Файловый вариант: при неудаче выгрузки архива "dt" просто копирует файл базы данных "1cd" из папки с базой в указанную. Имя файла создается также согласно шаблону, только с расширением "1cd".


на втором скриншоте есть галочка, но она работает только на клиент-серверными базами.
7. Sergoninfostarru 2 18.07.13 11:34 Сейчас в теме
(6) я спрашивал о корректном завершении работы пользователей в 1С, а не об остановке сервера и обрубывания соединения с базой данных. Процедура "ЗавершитьРаботу" используется при отключении ?
8. shalex5 51 18.07.13 12:20 Сейчас в теме
(7) Sergoninfostarru, нет. Делает только то, что описано.
Кстати, сервер не останавливает, разрывает соединения пользователей только от той базы, бэкап которой пытается сделать.
9. Sergoninfostarru 2 18.07.13 12:47 Сейчас в теме
(8) В результате, у клиентов будет открыта 1С на локльной машине и сообщение об утрате связи с сервером !!!
10. shalex5 51 19.07.13 02:13 Сейчас в теме
(9) Sergoninfostarru, именно так. Тут уже каждый сам решает что важнее - сделать бэкап или сохранить забытые на ночь подключения пользователей.
11. Dethmond 23.07.13 17:11 Сейчас в теме
Не создают бэкапы базы, а если вручную запускать создание бэкапа, то вываливается ошибка
Недопустимая строка с указанием класса

Конфа развернута в к-с варианте. Все базы так же в к-с.
12. shalex5 51 23.07.13 17:19 Сейчас в теме
(11) Dethmond, это глюк с регистрацией comcntr.dll

нагуглил
Такая ошибка обычно появляется после установки новой платформы.
Надо заново зарегистрировать dll comcntr.dll утилитой regsvr32
Меню "Пуск->выполнить"
regsvr32 "c:\Program Files\1cv82\8.х.хх.ххх\bin\comcntr.dll"
13. Tahallus 425 31.07.13 10:32 Сейчас в теме
Еще ошибка есть! (у меня по крайней мере проявляется)
ПутьДо1С = КаталогПрограммы()+"1cv8.exe";

Вот если база будет серверная и сервер при этом установлен в папке
отличной от той где установлена платформа то программы 1cv8.exe там не будет.
Пример:
Сервер 64-х разрядный стоит в папке "C:\Program Files\1cv82"
Платформа стоит в папке "C:\Program Files (x86)\1cv82"
Вызов функции КаталогПрограммы() вернет "C:\Program Files\1cv82",
а для выгрузки необходим путь "C:\Program Files (x86)\1cv82"
14. shalex5 51 31.07.13 10:53 Сейчас в теме
(13) Tahallus, спасибо, принято.
Я думаю тогда в каждой базе добавить ещё реквизит ПутьДо1С, который автоматом заполняется из функции КаталогПрограммы(), но если нужно может быть интерактивно исправлен пользователем. Как вам такое решение?
15. Tahallus 425 31.07.13 11:07 Сейчас в теме
(14) Я думаю проще сделать 2 константы указывающие на пути до сервера и платформы
причем без версии чтобы постоянно их не менять,
и уже в коде проверять существует ли такой файл и если нет то менять пути.
16. quares 19 27.08.14 12:37 Сейчас в теме
Оставьте свое сообщение