Как исправить ошибку выполнения потока в Effector Saver при резервном копировании баз 1С?

Системный администратор IT и автоматизация бизнеса
← На главную

В процессе эксплуатации программного обеспечения для автоматизации бэкапов Effector Saver (особенно начиная с версий 4.11 и 4.12) системные администраторы, часто выполняющие очистку кэша 1С, сталкиваются с критической остановкой задач. В логах программы это фиксируется как «Ошибка выполнения потока» с сопровождением специфических кодов исключений, таких как 0xc5000296 или 0xc5000979. Рассмотрим природу этой проблемы и разберем по шагам проверенные методы её решения.

Анализируем причину возникновения ошибки

Прежде всего, проанализируем ситуацию: почему ошибка начала проявляться согласно справке по администрированию систем массово в конце 2023 года? Как показывает практика, коды ошибок типа 0xc500... не являются стандартными системными ошибками Windows или результатом нехватки оперативной памяти. Это внутренние идентификаторы протектора — защитного модуля самой программы Effector Saver.

Начиная с версии 4.11, разработчики в рамках концепции защищенной IT инфраструктуры внедрили более агрессивную систему онлайн-проверки лицензионных ключей. Теперь программа не просто проверяет ключ при активации, а совершает периодические фоновые запросы к серверу лицензий во время выполнения задач. Если сервер возвращает ответ о том, что ключ скомпрометирован (например, один и тот же ключ используется на множестве серверов с именами типа SRV1C или Server1), программа принудительно прерывает поток выполнения задачи, имитируя технический сбой. Именно поэтому ошибка возникает рандомно: иногда бэкап проходит успешно, а иногда падает в самом начале или конце процесса.

Способ 1: Блокировка сетевой активности через Брандмауэр Windows

Самый простой и эффективный метод, подтвержденный пользователями — это полная изоляция компонентов программы от внешней сети. Разберем, как правильно настроить правила в брандмауэре, чтобы программа не могла «достучаться» до сервера проверок.

Нам необходимо создать правила для блокировки исходящего трафика для трех основных исполняемых файлов. Проанализируем список необходимых объектов:

  1. efagent.exe — исполняемый модуль агента, который непосредственно выполняет задачи копирования.
  2. efsaver.exe — оболочка интерфейса управления.
  3. Effector Saver 4 Service — системная служба, работающая в фоновом режиме.

Пошаговая инструкция по настройке:

  1. Откроем Монитор брандмауэра защитника Windows в режиме повышенной безопасности (через wf.msc).
  2. Перейдем в раздел Правила для исходящего подключения.
  3. Создадим «Новое правило» для программы. Укажем путь к файлу efagent.exe (обычно находится в папке установки программы в Program Files (x86)).
  4. Выберем действие Блокировать подключение.
  5. Применим правило для всех профилей (Доменный, Частный, Публичный).
  6. Повторим эти действия для efsaver.exe.

Важный нюанс: рекомендуется блокировать именно исходящий трафик. Если заблокировать только входящий, агент может бесконечно ожидать ответа от сервера, что приведет к зависанию задачи (статус «Выполняется» без прогресса).

Способ 2: Модификация файла HOSTS для блокировки доменов

Если по каким-то причинам использование брандмауэра невозможно или он управляется групповыми политиками, рассмотрим альтернативный вариант — перенаправление запросов к серверам лицензирования на локальный адрес 127.0.0.1. Это заставит программу мгновенно получать отказ в соединении на уровне сетевого стека.

Для реализации этого метода выполним следующие действия:

  1. Запустим текстовый редактор (например, Блокнот) от имени администратора.
  2. Откроем файл по пути: C:\Windows\System32\drivers\etc\hosts.
  3. В конец файла добавим строки, блокирующие доменные имена разработчика:

127.0.0.1 effector-saver.com
127.0.0.1 www.effector-saver.com
127.0.0.1 update.effector-saver.com

После сохранения файла рекомендуется очистить кэш DNS в командной строке с помощью команды ipconfig /flushdns. Проанализируем ситуацию после применения: теперь при попытке проверить лицензию программа получит быстрый ответ об отсутствии связи и, в большинстве случаев, продолжит работу в автономном режиме без генерации ошибки потока.

Способ 3: Откат на стабильную версию 4.10

Выясним причину, почему версия 4.10 считается более предпочтительной в сложных случаях. В этой версии механизм онлайн-валидации еще не был столь жестким. Однако сложность заключается в том, что стандартного механизма экспорта/импорта задач между версиями «сверху вниз» не существует.

Рассмотрим алгоритм корректного перехода на старую версию:

  1. Сделаем резервную копию файла базы настроек efbase.db (обычно находится в %AppData%\Effector Saver\ или в корне папки с программой).
  2. Полностью удалим текущую версию (4.11 или 4.12).
  3. Установим версию 4.10.
  4. Для переноса задач воспользуемся утилитой DBManager или любым редактором SQLite.

Если мы просто подставим файл efbase.db от новой версии в старую, программа может выдать ошибку формата. Разберем, как это исправить через SQLite редактор. В таблице системных параметров необходимо найти поле, отвечающее за версию схемы базы данных, и вручную понизить его значение до того, которое ожидает версия 4.10. Это позволит программе «узнать» свои настройки и подхватить список задач без необходимости их ручного пересоздания.

Побочные эффекты и их решение

Нужно понимать, что блокировка доступа в интернет (любым из способов) приведет к двум последствиям:

  1. Перестанут работать автоматические обновления.
  2. Программа не сможет отправлять Email-отчеты о результатах бэкапа штатными средствами.

Если уведомления критически важны, проанализируем возможность использования внешних скриптов. Мы можем настроить регламентное задание Windows, которое будет запускать PowerShell-скрипт после завершения задачи бэкапа. Скрипт может парсить лог-файл Effector Saver на наличие ключевых слов «Ошибка» и самостоятельно отправлять письмо через SMTP-сервер организации. Для автоматизации мониторинга резервных копий и оповещений подойдёт скрипт для контроля состояния бэкапов с отчётами в Telegram.

Пример логики такого скрипта на языке PowerShell:


$LogPath = "C:\ProgramData\Effector Saver 4\Logs\last_log.txt"
$Content = Get-Content $LogPath -Raw
Если ($Content -match "Ошибки при выполнении задачи") {
    Send-MailMessage -To "admin@company.com" -Subject "Backup Failure" -Body $Content -SmtpServer "mail.company.com"
}

Заключение

Подведем итог: ошибка выполнения потока с кодами 0xc500... — это специфическая реакция защитных механизмов Effector Saver на проверку лицензии. Чтобы вернуть работоспособность системе резервного копирования, достаточно ограничить сетевую активность исполняемых файлов efagent.exe и efsaver.exe. Мы рекомендуем использовать метод с Брандмауэром как наиболее надежный и простой в реализации для системного администратора. В качестве альтернативы сторонним утилитам можно использовать скрипты на SQL для автоматизации архивации и сжатия баз данных.

← На главную