Каждый системный администратор, обеспечивающий бесперебойную работу баз данных 1С:Предприятие, сталкивался с необходимостью настройки автоматического резервного копирования во внерабочее время. Одним из самых популярных и надежных сторонних инструментов для автоматизации этого процесса является программа Effector Saver. Однако после очередного обновления технологической платформы 1С:Предприятие часто возникает неприятная ситуация: настроенные ранее ежедневные выгрузки баз данных внезапно перестают работать. Главная причина кроется в том, что программа не может принудительно завершить сеансы активных пользователей и зависшие соединения. Если помимо создания резервных копий требуется регулярно выполнять тестирование, исправление ошибок и обновление конфигураций в автоматическом режиме, для этих целей настраивают программу для пакетного обслуживания баз 1С по расписанию.
В этой статье мы подробно разберем, почему возникает эта проблема, как функционируют механизмы взаимодействия Effector Saver с сервером 1С, и по шагам настроим систему так, чтобы автоматическое резервное копирование снова выполнялось без сбоев.
Проанализируем ситуацию, описанную в обращении. До обновления платформы резервное копирование выполнялось в штатном режиме: программа успешно инициировала блокировку базы, отключала пользователей, выгружала файлы и восстанавливала доступ. После обновления настройки в консоли администрирования серверов 1С сбросились, а COM-объект, отвечающий за связь внешней программы с сервером 1С, перестал корректно обрабатывать запросы.
Для решения проблемы нам необходимо проработать три ключевых направления:
V83.ComConnector в операционной системе Windows Server./UC) в консоли администрирования 1С и в самом Effector Saver..dt) и физическим бэкапом базы данных на уровне СУБД.Программа Effector Saver управляет сеансами на сервере (подключается к кластеру, блокирует новые соединения и программно завершает текущие) через COM-соединение. При установке новой версии платформы 1С регистрация старой библиотеки comcntr.dll в операционной системе Windows затирается, а новая библиотека часто не регистрируется автоматически из-за нехватки прав или особенностей установщика 1С. Для быстрой проверки регистрации библиотеки и выявления конфликтов платформ можно использовать обработку для диагностики COM-соединения.
Рассмотрим подробнее процесс ручной регистрации компоненты:
cmd.exe строго от имени администратора. Это обязательное условие, иначе операционная система заблокирует изменения в реестре Windows.
regsvr32 /u "C:\Program Files\1cv8\8.3.15.1830\bin\comcntr.dll"
Вместо указанной версии 8.3.15.1830 введите путь к вашей старой версии платформы, которая использовалась ранее.
comcntr.dll из папки актуальной платформы:
regsvr32 "C:\Program Files\1cv8\8.3.15.1830\bin\comcntr.dll"
После выполнения этой команды должно появиться системное сообщение об успешной регистрации модуля.
Важное примечание для 64-битных систем: Если сервер 1С:Предприятие у вас работает в 64-разрядном режиме, а Effector Saver запущен как 32-битное приложение (или наоборот), вам может потребоваться настроить службу компонентов COM+. Для этого выполним следующие действия:
dcomcnfg.V83COMConnector там нет, создадим его: нажмем правой кнопкой мыши по папке Приложения COM+ -> Создать -> Приложение. В мастере выберем "Создать новое приложение", дадим ему имя V83COMConnector и выберем тип "Серверное приложение".comcntr.dll.Когда Effector Saver запускает процедуру резервного копирования, он должен наложить на базу данных временную блокировку, чтобы обычные пользователи не могли войти в систему во время создания бэкапа. Но самой программе резервного копирования доступ в базу должен оставаться открыт. Для этого используется так называемый Код разрешения.
При обновлении платформы параметры информационной базы в консоли серверов 1С часто сбрасываются к значениям по умолчанию. Разберем по шагам, как правильно восстановить эти настройки:
000000, или текстовые строки вроде BackupCode. Этот код будет служить ключом для обхода блокировки.Теперь нам необходимо передать этот секретный ключ программе резервного копирования, чтобы она могла беспрепятственно работать с заблокированной базой.
000000)./UC 000000. Именно этот ключ сообщает серверу, что запуск программы выполняется легитимно в обход установленной блокировки.Проанализируем логику работы этой связки:
000000./UC 000000.Иногда даже при полностью исправных COM-объектах и правильно настроенных кодах разрешения сеансы пользователей не закрываются. Это происходит из-за "зависания" сеансов на сервере приложений. Например, если пользователь некорректно выключил компьютер, отключился от терминала или у него временно оборвалась сеть, сервер 1С может продолжать считать этот сеанс активным. Такие "призрачные" сеансы могут препятствовать монопольной выгрузке базы.
Выясним, как автоматизировать борьбу с такими сеансами штатными средствами платформы 1С:
1200 (что соответствует 20 минутам). По истечении этого времени неактивный сеанс засыпает, освобождая занятые им лицензии.3600 (что соответствует 1 часу). Через час после перехода в спящий режим сервер полностью удалит сеанс из списка активных подключений.Благодаря этим настройкам, к моменту начала ночного резервного копирования сервер 1С самостоятельно очистит большую часть зависших и забытых пользователями сеансов, что существенно снизит нагрузку на механизмы принудительного отключения Effector Saver. Для решения этой задачи также подойдёт подсистема автоматического завершения неактивных сеансов.
Если вы выполнили все вышеперечисленные шаги, но Effector Saver по-прежнему сообщает об ошибке при попытке отключить пользователей, причиной может быть известный баг самой платформы 1С:Предприятие. В некоторых релизах (особенно часто это проявлялось в ветках 8.3.15, 8.3.18 и 8.3.19) при обращении к серверным методам отключения пользователей через COM-соединение происходил критический сбой процесса.
В логах Effector Saver в этом случае может фигурировать ошибка вида:
Access violation... в модуле rtrsrvc.dll
Если вы столкнулись именно с этим системным сбоем, единственным надежным решением является обновление технологической платформы 1С:Предприятие на более стабильный и защищенный релиз, в котором данная ошибка была официально исправлена разработчиками.
Разберем важный комментарий одного из участников обсуждения: "выгрузка в dt это не бэкап". И это чистая правда. Выгрузка в файл с расширением .dt представляет собой логическое сжатие данных 1С, предназначенное в первую очередь для переноса базы между СУБД (например, из файлового режима в клиент-серверный или с MSSQL на PostgreSQL).
Проанализируем основные риски использования только выгрузок .dt:
.dt может создаться без ошибок. Однако при попытке развернуть его на новом сервере платформа выдаст критическую ошибку, и вы останетесь без работающей базы..dt требует полной монопольной блокировки. На "живой" и активно работающей базе сделать ее корректно невозможно.Рекомендация: Для надежного резервного копирования клиент-серверных баз настройте в Effector Saver создание резервных копий средствами СУБД (например, создание бэкапов через утилиту pg_dump для PostgreSQL или создание файлов .bak для Microsoft SQL Server). Выгрузку в .dt оставьте как дополнительный инструмент для архивации редких исторических срезов данных.
Мы подробно разобрали, как восстановить корректную работу связки Effector Saver и сервера 1С:Предприятие после обновления платформы. Внимательно следите за регистрацией библиотеки comcntr.dll, всегда проверяйте актуальность кодов разрешения /UC в настройках баз данных и своевременно настраивайте автоматическое завершение спящих сеансов на сервере. Эти простые профилактические меры гарантируют стабильное создание резервных копий ваших баз данных каждую ночь.