Почему вылетает сервер 1С с ошибкой rmngr.exe и модулем backbas.dll?

Системный администратор 1С v8.3 (Управляемые формы)
← На главную

Одной из самых неприятных ситуаций для системного администратора 1С является внезапное падение службы сервера, особенно когда это происходит с определенной периодичностью, например, раз в две недели. В таких случаях работа пользователей прерывается, а в журнале событий Windows фиксируется ошибка приложения rmngr.exe с кодом исключения 0xc0000005 и указанием на сбойный модуль backbas.dll. Разберем подробно, почему это происходит и как стабилизировать работу системы.

Анализ природы ошибки 0xc0000005

Код исключения 0xc0000005 означает Access Violation (нарушение прав доступа к памяти). Это техническое состояние, при котором процесс rmngr.exe (менеджер кластера) пытается обратиться к адресу оперативной памяти, который ему не принадлежит, либо к участку памяти, выполнение кода в котором запрещено системой безопасности Windows. Сбойный модуль backbas.dll является базовой библиотекой платформы, отвечающей за основные механизмы работы сервера и проверку лицензионной чистоты.

Выясним причину возникновения такой ситуации. В контексте платформы 8.3.15.1489 и аналогичных версий это может быть вызвано следующими факторами:

  1. Утечки памяти и фрагментация: Со временем процессы сервера накапливают ошибки в распределении памяти, и через 10-14 дней непрерывной работы менеджер кластера не может корректно обработать очередной запрос.
  2. Конфликт с системой DEP: Функция предотвращения выполнения данных (Data Execution Prevention) может ошибочно блокировать работу модулей 1С.
  3. Проблемы с лицензированием: Обращение к библиотеке backbas.dll часто происходит в моменты проверки ключей защиты или при использовании эмуляторов.
  4. Фоновые задания и полнотекстовый поиск: Интенсивная индексация или «тяжелые» регламентные задания могут вызывать сбои в менеджере кластера.

Решение 1: Настройка перезапуска рабочих процессов в консоли кластера

Рассмотрим наиболее правильный способ борьбы с нестабильностью сервера с точки зрения архитектуры 1С. Вместо жесткого перезапуска всей службы ragent (который прерывает работу всех сеансов), мы можем настроить автоматическое обновление рабочих процессов. Это позволит системе «освежать» память без участия администратора.

Разберем по шагам, как настроить перезапуск процессов в консоли администрирования серверов 1С:

  1. Откроем консоль администрирования серверов 1С:Предприятия.
  2. Перейдем в свойства нашего кластера (обычно это Локальный кластер).
  3. Найдем параметр Интервал перезапуска (по умолчанию он равен 0, что означает отключение функции).
  4. Установим значение 86400 секунд (это ровно одни сутки). Если нагрузка велика, можно установить меньшее значение, но для стабильности раз в две недели суток будет достаточно.
  5. Параметр Допустимый объем памяти установим в соответствии с возможностями сервера, чтобы процессы завершались при достижении критического порога.
  6. Поле Выключенные процессы завершать через установим в значение 600–1200 секунд. Это время, которое дается «старому» процессу на завершение работы после того, как новые пользователи начали подключаться к «новому» процессу.

Проанализируем ситуацию: при таких настройках менеджер кластера будет по очереди создавать новые процессы rphost.exe, плавно переводить на них пользователей и закрывать старые, очищая занятую ими память.

Решение 2: Настройка исключений DEP (Data Execution Prevention)

Поскольку ошибка 0xc0000005 напрямую связана с доступом к памяти, нам необходимо убедиться, что Windows не блокирует функции 1С. Рассмотрим алгоритм настройки исключений:

  1. Зайдем в Панель управления -> Система -> Дополнительные параметры системы.
  2. На вкладке Дополнительно в разделе Производительность нажмем Параметры.
  3. Перейдем на вкладку Предотвращение выполнения данных.
  4. Рекомендуется выбрать режим "Включить DEP только для основных программ и служб Windows".
  5. Если политика безопасности компании требует режима "Для всех программ", необходимо вручную добавить в список исключений файлы: rmngr.exe, rphost.exe, ragent.exe, которые находятся в папке bin вашей версии платформы.

Решение 3: Обслуживание системы лицензирования и COM-компонентов

Часто вылет в модуле backbas.dll сигнализирует о проблемах при взаимодействии с драйвером защиты или при попытке COM-соединения с другими базами. Выясним причину через проверку драйверов:

  1. Проверим версию драйвера Sentinel HASP. Устаревшие версии драйверов часто конфликтуют с обновленными сборками Windows Server. Рекомендуется скачать последнюю версию драйвера с сайта производителя.
  2. Если база взаимодействует с внешними источниками данных через COM-соединение, необходимо проверить настройки безопасности компонента V83.COMConnector в оснастке "Службы компонентов". Убедимся, что у пользователя, под которым запускается служба 1С, есть права на запуск и активацию компонента.

Решение 4: Очистка серверного кэша и регламентные работы

Если падения происходят с завидной регулярностью, возможно, дело в накоплении ошибок в сеансовых данных. Проанализируем способ радикальной очистки:

Перезапуск службы 1С по расписанию (например, раз в неделю ночью в субботу) — это "костыль", но зачастую самый эффективный в условиях ограниченного времени. Создадим простой bat-файл для планировщика заданий:


net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
timeout /t 30 /nobreak
taskkill /f /im rphost.exe
taskkill /f /im rmngr.exe
taskkill /f /im ragent.exe
rd /s /q "C:\Program Files\1cv8\srvinfo\reg_1541\snaccxt"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"

Важный момент: Команда rd /s /q удаляет папку временных данных сеансов (snaccxt). Это помогает избавиться от "мусора", который накапливается в кластере и может приводить к ошибкам в rmngr.exe. Перед выполнением этих действий обязательно убедитесь, что путь к srvinfo соответствует вашим настройкам.

Решение 5: Проверка полнотекстового поиска и багов платформы

Платформа 8.3.15.1489 имеет известные проблемы со стабильностью при работе с индексами полнотекстового поиска. Если индекс поврежден, при попытке автоматического обновления (которое часто происходит по расписанию) менеджер кластера падает. Рассмотрим шаги по исправлению:

  1. Зайдем в базу в режиме "1С:Предприятие" под правами администратора.
  2. Перейдем в раздел Администрирование -> Поддержка и обслуживание -> Управление полнотекстовым поиском.
  3. Нажмем кнопку Очистить индекс, а затем Обновить индекс.
  4. Если стабильность не восстановится, попробуйте временно отключить полнотекстовый поиск (снять флаг "Полнотекстовый поиск данных разрешен") и понаблюдать за сервером в течение 2-3 недель.

В завершение отметим, что если ни один из методов не помогает, наиболее надежным решением будет обновление платформы до актуальных стабильных релизов (например, из веток 8.3.18 или 8.3.22), где многие ошибки управления памятью в rmngr.exe уже исправлены разработчиками "1С".

← На главную