Перезапуск 1С без потери данных: от рабочего места до службы кластера
Содержание
Чтобы перезагрузить 1С Предприятие на одном компьютере, закройте программу и запустите её снова, при зависании завершите процесс 1cv8c.exe или 1cv8.exe в диспетчере задач. Серверную часть перезапускают службой «Агент сервера 1С:Предприятия 8.3» в оснастке services.msc или командой net stop / net start. Остановка службы обрывает сеансы всех пользователей, поэтому её делают после предупреждения или ночью.
Перезапуск — не одна кнопка, а лестница из четырёх ступеней: клиент, сеанс, кластер, СУБД. Начинайте с нижней. Почти всегда хватает первых двух, и тогда остальные пользователи продолжают работать.
С чего начать: где именно зависло
Прежде чем что-то останавливать, поймите масштаб. Вопрос простой: тормозит у одного человека или у всех?
- 🖥️ У одного пользователя — проблема на рабочем месте: клиент, кэш, сеть этого компьютера. Сервер не трогаем.
- 👥 У всех в одной базе — подозрение на блокировку, долгую фоновую операцию или зависший сеанс.
- 🏢 У всех во всех базах — кластер или СУБД: память, рабочие процессы, диск.
- 🔌 Ошибка подключения к серверу — служба агента остановлена или недоступна по сети.
Дальше три быстрые проверки. Они занимают пару минут и часто снимают вопрос без перезапуска.
- Откройте на сервере диспетчер задач и отсортируйте по памяти. Процессы
rphost.exe, занимающие десятки гигабайт, — частая картина перед «зависанием всех». - Посмотрите свободное место на диске с базой и с каталогом
srvinfo. Заполненный диск останавливает и СУБД, и кластер. - Откройте консоль кластера и вкладку сеансов нужной базы. Ищите сеанс, который давно висит в состоянии вызова сервера или держит много времени вызова.
Перед перезапуском запишите, что видели: время, сообщение об ошибке, кто работал. Если проблема повторится, без этих данных причину не найти.
Перезапуск 1С на рабочем месте пользователя
Обычный выход — через главное меню программы: Файл → Выход или сочетание Alt+F4. Затем запустите базу из списка заново. Если 1С предлагает дождаться завершения операции, лучше дождаться: прерванное проведение группы документов придётся перезапускать.
Если окно не реагирует несколько минут:
- Откройте диспетчер задач (
Ctrl+Shift+Esc). - На вкладке «Подробности» найдите процесс клиента:
1cv8c.exe(тонкий клиент) или1cv8.exe(толстый клиент и Конфигуратор). - Выберите его и нажмите «Снять задачу».
- Подождите 10–20 секунд и запустите 1С снова.
Несохранённые данные в открытых формах при снятии задачи пропадут. Записанные и проведённые документы останутся в базе: они уже на сервере или в файле базы.
Команда для того же действия из командной строки:
taskkill /im 1cv8c.exe /f
На терминальном сервере эта команда без фильтра закроет 1С у всех пользователей. Там добавляйте фильтр по пользователю: taskkill /fi "USERNAME eq ivanova" /im 1cv8c.exe /f.
В клиент-серверном режиме после принудительного закрытия сеанс на сервере может повисеть ещё несколько минут. Кластер сам удалит его, когда перестанет получать отклик от клиента. Если лицензия нужна срочно, сеанс удаляют вручную в консоли кластера.
Как перезапустить сервер 1С: служба агента и рабочие процессы
Серверная часть 1С — это три процесса: ragent.exe (агент), rmngr.exe (менеджер кластера) и rphost.exe (рабочие процессы). Все они поднимаются одной службой Windows. Перезапуск службы перезапускает весь кластер.
Перезапуск службы агента обрывает сеансы всех пользователей во всех базах этого сервера. Делайте его вне рабочего времени или после рассылки «выйдите из 1С через 10 минут».
Перезапуск через оснастку «Службы»
- Нажмите
Win+R, введитеservices.msc. - Найдите службу «Агент сервера 1С:Предприятия 8.3». В названии может стоять разрядность, например
(x86-64). - Правой кнопкой — «Перезапустить».
- Дождитесь статуса «Выполняется» и проверьте подключение из клиента.
Перезапуск из командной строки
Точное имя службы посмотрите в её свойствах, поле «Имя службы». Обычно оно такое:
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
Если на сервере стоит несколько версий платформы, служб тоже несколько, и в имени каждой будет свой признак. Перезапускайте ту, через которую работают ваши базы.
Если служба не останавливается
Бывает, что служба висит в состоянии «Остановка», а rphost.exe остаются в памяти. Тогда процессы завершают вручную:
taskkill /im rphost.exe /f
taskkill /im rmngr.exe /f
taskkill /im ragent.exe /f
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
Перезапуск одного рабочего процесса без остановки службы
Если раздулся один rphost.exe, а остальные в норме, весь кластер останавливать не нужно. Завершите этот процесс в диспетчере задач по его PID. Пользователи, чьи сеансы обслуживал этот процесс, получат ошибку соединения, остальные продолжат работать. Кластер запустит новый рабочий процесс сам.
Сервер на Linux
На Linux сервер 1С работает как сервис systemd. Имя юнита зависит от версии платформы, найдите его так:
systemctl list-units --type=service | grep -i 1c
sudo systemctl restart <имя_юнита>
Очистка кэша клиента и сеансовых данных сервера
Кэш — частая причина «странностей» после обновления: старые формы, ошибки при открытии, медленный запуск. Сбрасывать его нужно с той стороны, где проблема.
Кэш на компьютере пользователя
Самый безопасный способ — параметр запуска /ClearCache. Откройте список баз, выберите базу, нажмите «Изменить» и на последнем шаге допишите в поле дополнительных параметров:
/ClearCache
Запустите базу один раз и уберите параметр, иначе каждый запуск будет долгим.
Ручная очистка — удалить папки с длинными именами вида GUID в двух каталогах при закрытой 1С:
| Каталог | Что там лежит |
|---|---|
%APPDATA%\1C\1cv8 | кэш конфигурации и пользовательских настроек по базам |
%LOCALAPPDATA%\1C\1cv8 | кэш метаданных и временные данные |
Не удаляйте файлы ibases.v8i и 1cv8strt.pfl в %APPDATA%\1C\1CEStart — в первом хранится список баз, его придётся заполнять заново.
Кэш сеансовых данных на сервере
Если ошибки идут у всех пользователей одной базы, и перезапуск клиентов не помогает, чистят сеансовые данные кластера. Это каталоги snccntx с GUID в имени внутри srvinfo\reg_1541. Путь к srvinfo по умолчанию — C:\Program Files\1cv8\srvinfo. Точный путь виден в свойствах службы агента: в строке запуска после ключа -d.
Порядок:
- Предупредите пользователей и остановите службу агента.
- Убедитесь, что процессов
rphost.exeиrmngr.exeнет. - Удалите папки
snccntx*вsrvinfo\reg_1541. - Запустите службу.
Не удаляйте файл 1CV8Clst.lst и папки с GUID самих баз — в них реестр кластера со списком информационных баз. Без него базы придётся регистрировать заново.
СУБД и блокировки: когда перезапуск сервера 1С не помогает
Перезапуск службы 1С не лечит проблемы в самой СУБД. Если после него база снова встаёт, смотрите блокировки на стороне MS SQL или PostgreSQL.
MS SQL Server
Найти, кто кого блокирует:
SELECT session_id, blocking_session_id, wait_type, wait_time, command
FROM sys.dm_exec_requests
WHERE blocking_session_id <> 0;
В колонке blocking_session_id — номер сеанса-виновника. Его завершают командой KILL с этим номером. Транзакция откатится, и откат большой транзакции может занять столько же времени, сколько она шла.
Перезапуск всего SQL Server — служба «SQL Server (MSSQLSERVER)» для экземпляра по умолчанию. Перед ним остановите службу агента 1С, после — запустите её снова. Иначе рабочие процессы будут держать оборванные соединения.
PostgreSQL
Активные запросы и блокирующие процессы по базе:
SELECT pid, usename, state, now() - query_start AS dlitelnost,
pg_blocking_pids(pid) AS blokiruyut
FROM pg_stat_activity
WHERE datname = 'buh_base';
Завершить зависший процесс: SELECT pg_terminate_backend(<pid>);. Имя службы PostgreSQL на Windows зависит от сборки и версии — посмотрите в services.msc по слову postgres.
Блокировка файловой базы
В файловом режиме сервера нет, базу держит процесс клиента. Если 1С сообщает, что база занята, а пользователей нет, проверьте на всех компьютерах процессы 1cv8.exe и 1cv8c.exe. Чаще всего база открыта у кого-то в свернутом Конфигураторе. Файл 1Cv8.1CL рядом с 1Cv8.1CD удаляйте только когда уверены, что базу не открыл ни один процесс.
Перед перезапуском в рабочее время найдите в базе список пользователей: Администрирование → Обслуживание → Активные пользователи в типовых конфигурациях на БСП. Так видно, кого предупредить.
Автоматический перезапуск: скрипт и планировщик
На нагруженных серверах rphost.exe со временем копят память. Плановый ночной рестарт снимает эту проблему до того, как её заметят пользователи.
Сначала — встроенный механизм кластера
В консоли кластера откройте свойства кластера. Там есть параметр «Интервал перезапуска» (в секундах) и ограничения по памяти рабочих процессов. Кластер сам поднимет новый процесс, переведёт на него новые соединения и погасит старый. Сеансы при этом не обрываются так резко, как при остановке службы. Это мягче скрипта, начните с него.
Скрипт ночного перезапуска
Если нужен полный рестарт с очисткой сеансовых данных, сохраните файл, например, как C:\scripts\restart1c.bat:
@echo off
set SVC="1C:Enterprise 8.3 Server Agent (x86-64)"
set SRVINFO=C:\Program Files\1cv8\srvinfo\reg_1541
net stop %SVC%
timeout /t 20 /nobreak >nul
taskkill /im rphost.exe /f 2>nul
taskkill /im rmngr.exe /f 2>nul
taskkill /im ragent.exe /f 2>nul
for /d %%D in ("%SRVINFO%\snccntx*") do rd /s /q "%%D"
net start %SVC%
echo %date% %time% restart done >> C:\scripts\restart1c.log
Подставьте своё имя службы и путь к srvinfo. Прогоните скрипт вручную один раз и проверьте, что базы открываются.
Задание в планировщике Windows
Создайте задание от имени системы на 04:00 каждый день:
schtasks /create /tn "Restart 1C" /tr "C:\scripts\restart1c.bat" /sc daily /st 04:00 /ru SYSTEM
Время выбирайте так, чтобы рестарт не пересекался с выгрузкой резервной копии, регламентными заданиями обмена и обновлением полнотекстового индекса. Перезапуск посреди бэкапа СУБД даст неполную копию.
Если в организации работают ночные смены или интеграции с сайтом, рестарт оборвёт и их. Согласуйте окно с владельцами этих процессов.
Если после перезапуска 1С не запускается
Иногда служба стартует, но клиенты не подключаются. Проверьте по порядку.
- 🔑 Лицензии. После рестарта сервер заново получает программную лицензию или ищет ключ. Если ключ USB проброшен по сети, убедитесь, что менеджер ключей работает.
- 🌐 Порты. Клиент идёт к агенту на 1540, затем к менеджеру кластера на 1541 и в диапазон портов рабочих процессов, заданный в свойствах рабочего сервера. Брандмауэр мог закрыть их после обновления Windows.
- 📄 Журнал событий. В «Просмотре событий Windows» в журнале «Приложение» служба агента пишет причину отказа запуска.
- 🧩 Версия платформы. После обновления сервера клиент с другой версией не подключится. Номер версии клиента должен совпадать с версией сервера.
- 👤 Учётная запись службы. Если служба работает от отдельного пользователя и у него сменили пароль, служба не стартует. Обновите пароль в свойствах службы на вкладке «Вход в систему».
Можно ли перезапустить сервер 1С, не выгоняя пользователей?
Сколько длится перезапуск службы агента?
Нужно ли перезагружать сам Windows Server?
Потеряются ли проведённые документы после снятия задачи?
Как перезапустить 1С удалённо?
sc \\имя_сервера stop и start с именем службы с компьютера администратора, имея права администратора на сервере.