В практике администрирования 1С часто встречается ситуация, когда попытка «подлечить» одну информационную базу приводит к аварийному завершению работы всех пользователей на сервере. Разберем детально, почему это происходит, как восстановить работоспособность системы и какие превентивные меры помогут избежать подобных сбоев в будущем.
Для начала проанализируем ситуацию, описанную в обращении. Когда администратор запускает тяжелую операцию, такую как Тестирование и исправление (ТиС), нагрузка на серверную часть 1С возрастает экспоненциально. Основная причина того, что «выкинуло всех», кроется в настройках кластера серверов.
По умолчанию в кластере 1С несколько информационных баз могут обслуживаться одним и тем же рабочим процессом rphost.exe. Если в одной базе запускается ресурсоемкий процесс, который приводит к критической ошибке, переполнению памяти или аварийному завершению rphost, все сеансы пользователей других баз, находящиеся в этом же процессе, также обрываются. Выясним, как это предотвратить:
rphost до 1, если ресурсы сервера позволяют это сделать.Рассмотрим подробнее операцию Тестирование и исправление. Это мощный инструмент, который блокирует таблицу или всю базу данных для выполнения низкоуровневых проверок. Если база находится в клиент-серверном варианте под управлением SQL Server 2012, запуск ТиС вызывает колоссальную нагрузку на системную базу tempdb.
Проанализируем ситуацию со стороны СУБД: если tempdb расположена на медленном дисковом массиве или на диске закончилось место в момент реиндексации, SQL-сервер перестает отвечать на запросы других сессий. В результате сервер приложений 1С разрывает соединения по тайм-ауту, и пользователи видят окно с ошибкой «Соединение с сервером прервано».
Часто пользователи жалуются, что база «тупо зависает» при старте. Разберем, почему это происходит именно в терминальной среде. При каждом запуске 1С обращается к локальному кэшу метаданных, который хранится в профиле пользователя. Если предыдущий сеанс был завершен некорректно (например, админ «убил» процесс или моргнул свет), файлы кэша могут повредиться.
В этом случае помогает только полная очистка временных папок. Рассмотрим процедуру, которую должен выполнять администратор:
1cv8.exe в сеансе пользователя.%AppData%\1C\1Cv8\%LocalAppData%\1C\1Cv8\Чтобы не делать это вручную каждый раз, мы рекомендуем использовать скрипт очистки кэша при входе или выходе пользователя из терминальной сессии. Посмотрим на пример простого .bat файла для автоматизации:
rmdir /s /q "%AppData%\1C\1Cv8"
rmdir /s /q "%LocalAppData%\1C\1Cv8"
mkdir "%AppData%\1C\1Cv8"
mkdir "%LocalAppData%\1C\1Cv8"
Важный момент: использование параметра запуска /ClearCache не всегда решает проблему, так как он очищает только кэш запросов, но не кэш конфигурации и форм.
Выясним причину возможных «замираний» всей системы через настройки SQL-сервера. Для стабильной работы 1С крайне важен параметр Max Degree of Parallelism (MAXDOP).
Если этот параметр установлен в значение 0 (по умолчанию), один тяжелый запрос (например, при расчете себестоимости или том же ТиС) может занять все доступные ядра процессора. Проанализируем рекомендации: для 1С рекомендуется устанавливать MAXDOP равным 1. Это гарантирует, что один процесс не парализует работу всего сервера, оставляя ресурсы для обслуживания других запросов пользователей.
Иногда корень проблемы лежит глубже уровня 1С. Рассмотрим два часто игнорируемых фактора:
1. Протокол IPv6: В операционных системах Windows Server он включен по умолчанию. Часто сервер 1С пытается разрешить имя сервера через IPv6, что приводит к задержкам в 15-20 секунд при каждом обращении к базе. Это выглядит как «зависание». Рекомендуется либо отключить IPv6, либо жестко прописать приоритет IPv4 в реестре и файле hosts.
2. Антивирусное сканирование: 1С создает множество мелких временных файлов. Если антивирус на терминальном сервере настроен на сканирование «на лету», он блокирует эти файлы для проверки. Посмотрим, что нужно добавить в исключения:
rphost.exe, rmngr.exe, ragent.exe, 1cv8.exe.*.1cl, *.1cd, *.log, *.pfl.srvinfo) и профили пользователей в части AppData\Local\1C.Если вы столкнулись с ситуацией, когда сервер «встал», проанализируем последовательность шагов для быстрого восстановления:
Агент сервера 1С:Предприятия. Помните, что это прервет работу всех пользователей.Activity Monitor.1Cv8, как было описано выше.Таким образом, стабильная работа сервера 1С обеспечивается не только мощным железом, но и правильной изоляцией рабочих процессов, настройкой СУБД и регулярной гигиеной кэша пользователей.