gifts2017

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

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

Конфигурация осуществляет резервное копирование баз данных 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 Добавлена возможность удаления старых копий и создана форма для записей в логе (было не удобно смотреть сообщения).

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

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


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

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

нагуглил
Такая ошибка обычно появляется после установки новой платформы.
Надо заново зарегистрировать dll comcntr.dll утилитой regsvr32
Меню "Пуск->выполнить"
regsvr32 "c:\Program Files\1cv82\8.х.хх.ххх\bin\comcntr.dll"
13. Вова Вишин (Tahallus) 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) 31.07.13 10:53
(13) Tahallus, спасибо, принято.
Я думаю тогда в каждой базе добавить ещё реквизит ПутьДо1С, который автоматом заполняется из функции КаталогПрограммы(), но если нужно может быть интерактивно исправлен пользователем. Как вам такое решение?
15. Вова Вишин (Tahallus) 31.07.13 11:07
(14) Я думаю проще сделать 2 константы указывающие на пути до сервера и платформы
причем без версии чтобы постоянно их не менять,
и уже в коде проверять существует ли такой файл и если нет то менять пути.
16. Игорь Зуйков (quares) 27.08.14 12:37
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа