Запуск копирования осуществляется регламентным заданием, поэтому если использовать клиент-серверный вариант, то нет необходимости запускать отдельный сеанс 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 Добавлена возможность удаления старых копий и создана форма для записей в логе (было не удобно смотреть сообщения).
Только после параметров /S /F /DumpIB /Out пробел не ставиться, иначе выгрузка не идет.
(1) Tahallus, Не знаю почему, но у меня и так и так работает) но все равно спасибо, изменил.
1С не рекомендует для архивации использовать выгрузку в dt.
http://its.1c.ru/db/metod81?db=metod81#content:2922:1
(3) aet, об этом можно дискутировать бесконечно) не будем и начинать. Каждый делает так как считает нужным.
Что-то не заметил возможности отключать пользователей, которые «забыли» выйти на время архивации ? Это предусмотрено в конфигурации или все рассчитано на дисциплинированных бухгалтеров и операторов ?
(5) Sergoninfostarru, в описании это есть)
— Файловый вариант: при неудаче выгрузки архива «dt» просто копирует файл базы данных «1cd» из папки с базой в указанную. Имя файла создается также согласно шаблону, только с расширением «1cd».
на втором скриншоте есть галочка, но она работает только на клиент-серверными базами.
(6) я спрашивал о корректном завершении работы пользователей в 1С, а не об остановке сервера и обрубывания соединения с базой данных. Процедура «ЗавершитьРаботу» используется при отключении ?
(7) Sergoninfostarru, нет. Делает только то, что описано.
Кстати, сервер не останавливает, разрывает соединения пользователей только от той базы, бэкап которой пытается сделать.
(8) В результате, у клиентов будет открыта 1С на локльной машине и сообщение об утрате связи с сервером !!!
(9) Sergoninfostarru, именно так. Тут уже каждый сам решает что важнее — сделать бэкап или сохранить забытые на ночь подключения пользователей.
Не создают бэкапы базы, а если вручную запускать создание бэкапа, то вываливается ошибка
Конфа развернута в к-с варианте. Все базы так же в к-с.
(11) Dethmond, это глюк с регистрацией comcntr.dll
нагуглил
Надо заново зарегистрировать dll comcntr.dll утилитой regsvr32
Меню «Пуск->выполнить»
regsvr32 «c:Program Files1cv828.х.хх.хххincomcntr.dll»
Еще ошибка есть! (у меня по крайней мере проявляется)
Вот если база будет серверная и сервер при этом установлен в папке
отличной от той где установлена платформа то программы 1cv8.exe там не будет.
Пример:
Сервер 64-х разрядный стоит в папке «C:Program Files1cv82»
Платформа стоит в папке «C:Program Files (x86)1cv82»
Вызов функции КаталогПрограммы() вернет «C:Program Files1cv82»,
а для выгрузки необходим путь «C:Program Files (x86)1cv82»
(13) Tahallus, спасибо, принято.
Я думаю тогда в каждой базе добавить ещё реквизит ПутьДо1С, который автоматом заполняется из функции КаталогПрограммы(), но если нужно может быть интерактивно исправлен пользователем. Как вам такое решение?
(14) Я думаю проще сделать 2 константы указывающие на пути до сервера и платформы
причем без версии чтобы постоянно их не менять,
и уже в коде проверять существует ли такой файл и если нет то менять пути.
Респект!