Как запустить рабочий процесс rphost и исправить ошибку при выполнении операции с информационной базой 1С

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

Разберем классическую проблему, с которой часто сталкиваются системные администраторы и специалисты при работе с клиент-серверной версией «1С:Предприятие 8.3». При попытке пользователей войти в базу данных программа выдает критическое сообщение: «Ошибка при выполнении операции с информационной базой». При этом при анализе активных задач на сервере обнаруживается полное отсутствие рабочего процесса rphost.

Выясним причину этой неполадки, изучим архитектуру взаимодействия компонентов системы и рассмотрим пошаговое руководство по восстановлению работоспособности серверов.

Понимание архитектуры процессов сервера «1С:Предприятие»

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

  1. ragent (Агент сервера 1С): Это основная служба Windows (или демон в Linux), которая запускается автоматически при старте операционной системы. Она отвечает за общую координацию работы всего кластера.
  2. rmngr (Менеджер кластера): Этот процесс запускается агентом ragent. Менеджер отвечает за управление сервисами кластера (сервис блокировок, сервис сеансов, трансляция запросов и т. д.).
  3. rphost (Рабочий процесс): Непосредственно запускается менеджером rmngr. Именно rphost берет на себя всю вычислительную нагрузку: взаимодействует с клиентскими сеансами, выполняет программный код конфигурации и осуществляет запросы к СУБД (например, Microsoft SQL Server или PostgreSQL).

В распределенных инфраструктурах пользователи часто работают на одном сервере (например, через терминальный доступ RDP на Сервере №1), СУБД установлена на другом (Сервере №2), а сам сервер приложений 1С может быть развернут как на Сервере №1, так и на Сервере №2 (или вообще на выделенном Сервере №3). Если мы не видим процесс rphost в диспетчере задач терминального сервера, это абсолютно нормально, если сервер приложений 1С физически запущен на другом компьютере. Рабочие процессы функционируют там, где крутится служба ragent.

Шаг 1. Локализация проблемы и проверка запущенных служб

Проанализируем текущую схему работы сети. Если пользователи работают терминально на первом сервере, а база данных SQL и сервер 1С установлены на втором сервере, то искать процессы rphost на первом сервере бессмысленно. Вся нагрузка ложится на второй сервер.

Для решения проблемы выполним следующие действия на сервере приложений (в нашем случае — на втором сервере, где установлен сервер 1С):

  1. Откроем оснастку «Службы» (выполним команду services.msc через строку «Выполнить»).
  2. Найдем в списке службу «Агент сервера 1С:Предприятия 8.3».
  3. Посмотрим на ее текущее состояние. Если служба остановлена, запустим ее. Если она находится в состоянии «Выполняется», выполним ее принудительный перезапуск.

При перезапуске службы ragent операционная система автоматически остановит и заново инициирует зависимые процессы rmngr и rphost.

Шаг 2. Очистка кэша сервера 1С при сбоях запуска

Иногда простая попытка перезапустить службу агента 1С не приводит к успеху: служба либо зависает в состоянии «Запуск», либо запускается, но процессы rphost так и не появляются в диспетчере задач. Часто это связано с повреждением конфигурационных файлов или кэша сеансов.

Рассмотрим алгоритм полной очистки серверного кэша:

  1. Остановим службу «Агент сервера 1С:Предприятия 8.3» через консоль служб.
  2. Убедимся через Диспетчер задач, что все процессы ragent, rmngr и rphost полностью завершили работу. Если какие-то процессы зависли, завершим их принудительно (кнопкой «Снять задачу»).
  3. Перейдем в каталог служебных файлов сервера 1С. По умолчанию в Windows это папка: C:\Program Files\1cv8\srvinfo\ (или C:\Program Files (x86)\1cv8\srvinfo\ для 32-битной версии).
  4. Внутри этого каталога найдем папки с именами формата reg_1541 (где 1541 — порт кластера по умолчанию).
  5. Удалим все временные файлы и папки кэша (папки с длинными буквенно-цифровыми идентификаторами GUID, например, snccntry...), но будьте осторожны: не удаляйте файл 1cv8wsrv.lst, так как в нем хранится список зарегистрированных на сервере информационных баз. Если его удалить, базы придется регистрировать в консоли администрирования заново.
  6. Запустим службу агента 1С заново. Система создаст чистые файлы кэша, и процессы rphost должны успешно стартовать.

Шаг 3. Проверка сетевой доступности и портов

Если сервер 1С и СУБД разнесены по разным физическим машинам, причиной падения или отсутствия запуска процессов rphost могут стать сетевые ограничения брандмауэра.

Нам необходимо проверить, открыты ли порты, по которым общаются компоненты системы:

Если брандмауэр Windows (Firewall) или сторонний антивирус на сервере блокирует эти порты, рабочий процесс rphost не сможет связаться с менеджером кластера и клиентами, что приведет к его аварийному завершению. Добавим исполняемые файлы 1С в исключения брандмауэра или откроем указанные диапазоны портов для входящего и исходящего трафика.

Шаг 4. Настройка параметров rphost для предотвращения падений в будущем

Часто рабочие процессы rphost аварийно завершают работу из-за банальной нехватки оперативной памяти на сервере приложений или из-за утечек памяти, вызванных неоптимальным кодом в конфигурациях. Для минимизации таких рисков настроим параметры кластера 1С.

Откроем утилиту «Администрирование серверов 1С Предприятия»:

  1. Перейдем к свойствам нашего кластера (обычно «Локальный кластер»).
  2. Обратим внимание на следующие критически важные параметры:
    • Допустимый объем памяти: задает максимальный объем оперативной памяти, который могут занимать все рабочие процессы. Установим его в соответствии с физическими возможностями сервера (например, 80% от общего объема ОЗУ).
    • Интервал перезапуска процессов: установим значение 86400 секунд (24 часа). Это позволит серверу раз в сутки автоматически и бесшовно для пользователей создавать новые процессы rphost, завершая старые и освобождая тем самым накопленную в оперативной памяти нагрузку.
    • Выключенные процессы завершать через: установим значение 180 или 300 секунд. Это время, которое дается старому процессу на завершение текущих клиентских вызовов после старта нового «чистого» процесса.

Проанализировав эти шаги и внедрив регулярный мониторинг системных служб, мы сможем гарантировать стабильную работу серверной инфраструктуры 1С без внезапных исчезновений процессов rphost.

← На главную