Автоматический перезапуск службы 1С на сервере Windows с очисткой кэша сеансов

15.08.24

База данных - Администрирование СУБД

Доброго дня, коллеги. Рубрика - администрирование серверов 1С: Предприятие.

Как известно, многие внедрения на платформе 1С Предприятие проходят тестирование лишь формально, а именно:

нагрузочное тестирование 
(подробно описывать не буду, т.к. об этом есть отдельная статья про интегральную оценку производительности по методике APDEX  Оценка интегральной производительности системы по методике APDEX :: Методики :: Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8 (1c.ru))

и стресс-тестирование 
(это когда моделируют программно выполнение конкретных операций и планомерно увеличивают количество потоков их выполнения до отказа системы, либо снижения ее производительности до неприемлемых значений)

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

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

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

Замечу, что чаще всего, причина именно не в неправильно подобранных параметрах инфраструктуры ( количества процессоров, объема оперативной памяти, быстрых или медленных дисков и т.д.), а именно в "плохом" коде на языке 1С, который требует рефакторинга экспертом по технологическим вопросам на основании исследования, например, как описано в статье про APDEX, ссылка на которую выше.

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

Все это время надо как-то "жить".

Часто проблему удается стабилизировать настройкой кластера 1С на перезапуск рабочих процессов средствами самого кластера 1с. Опять таки, подробно описывать не буду: для этого есть отдельные инструкции в документации на портале its.1c.ru.

Решение с настройкой кластера не всегда подходит: настройка позволяет

-перезапускать рабочие процессы по таймеру или

-по превышению заданного объема оперативной памяти.

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

Второе не решает проблему завершения именно "проблемных" рабочих процессов, поскольку не обязательно увеличившийся объем занимаемой ОЗУ у процесса означает неоптимальность кода, который в нем выполняется: возможно такой объем вполне допустим исходя из бизнес-логики приложения, например при массовом проведении каких-то документов по регламенту который заведен в компании.

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

 
 

 C:\Program Files\1cv8\8.3.22.2283\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

 

Для сервера, запущенного с параметром -regport 1541 каталог сеансовых данных будет в размещен в каталоге "reg_1541" и начинаться с "snccntx" , в общем виде так: 

 
 

 

Перезапуск нужно выполнять, само собой, в нерабочее время.

Можно, конечно, просить администратора этим заниматься вручную каждый день, но не каждый на такое согласиться.

Рабочей средой службы сервиса 1С может быть как Windows так и Linux. В обоих случаях нет средств перезапуска служб по таймеру "из коробки", а тем более с чисткой кэша сеансов.

-Для Windows решением может быть cmd или powershell скрипт и встроенный в ОС планировщик задач taskschd.msc, настроенный на выполнение данного скрипта.

-Для Linux - bash скрипт и встроенная в ОС служба cron - некий аналог планировщика в Windows.

Вариант для Linux я опишу как-нибудь в другой раз, уж извините.

Рассмотрим вариант для Windows и реализуем задачу средствами команд powershell, но сначала о том почему данный скрипт пришлось писать:

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

Сам скрипт:
 

 
 

 

'1C:Enterprise 8.3 Server Agent (x86-64)' - Это имя службы, как оно задано в ветке редактора реестра:

Клавиша Win+R: набираем команду regidit, откроется редактор реестра. Имя службы, это имя "папки" в ветке (выделено жирным):

 
 

 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)

 

Или в консоли служб 

Клавиша Win+R: services.msc. Находим службу в списке, открываем ее карточку, имя, это значение напротив "Service Name" ("Имя службы" в русском интерфейсе)

.

  • Как сохранить скрипт

Для того чтобы этот скрипт запустить, необходимо сохранить его в текстовый файл и дать файлу расширение ps1, размещаем этот файл в каталог, который доступен пользователю из-под которого он будет запускаться, например, каталог %appdata%.

  • Как настроить планировщик

Планировщик задач можно открыть так:

Клавиша Win+R: taskschd.msc

Переходим в папку Microsoft, правой кнопкой мыши - "создать простую задачу".

Заполняем понятное для себя наименование, отражающее сущность выполняемой операции, например restart1cserviceClearCache, описание заполнять не обязательно, но, поскольку сервер могут обсуживать другие люди после Вас, можете написать что-то , вроде "перезапуск службы 1с по расписанию". Поверьте, коллеги вспомнят о Вас потом добрым словом за понятное представление задачи:).

Указываем время и периодичность выполнения на ваше усмотрение. 

Действие (Action) - "Запустить программу" (Start a program)

В поле "Программа или сценарий" (Program/script) указываем программу powershell (у меня путь такой: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe),

в качестве параметра ( поле "Добавить аргументы(необязательно)") указываем через ключ -File путь к файлу со скриптом: -File "%appdata%\restart1cserviceClearCache.ps1".

 

Нажимаем "ОК".

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

  • Как проверить работоспособность задания планировщика

Если есть тестовый сервер, где нет работающих разработчиков или пользователей, настройте задание вначале на нем.

Для проверки работоспособности, откройте каталог сеансовых данных проводником, чтобы были видны даты создания файлов в нем "C:\Program Files\1cv8\srvinfo\reg_1541\snccntx* и редактор powershell

В редакторе powershell наберите команду (*)

 
 

 

Результатом этой команды является табличка с датой старта процессов службы 1С, например

 
 

 

Редактор не закрывайте.

В планировщике задач установить курсор на созданном Вами задании, правой кнопкой мыши -> Выполнить (Run)

После выполнения перейдите в редактор powershell и повторите команду (*) еще раз. Если вы видите новые значения StartTime для процессов, значит перезапуск выполнен успешно, осталось проверить очистился ли кэш. Смотрим на даты создания файлов в каталоге "C:\Program Files\1cv8\srvinfo\reg_1541\snccntx*. Если они соответствуют новым значениям StartTime, то скрипт отработал успешно.

На этом все, спасибо за внимание :)

///////////////

ПС:

ранее скрипт писал для cmd, оставлю его для истории:

 
 

 echo off
sc stop "1C:Enterprise 8.3 Server Agent (x86-64)" 
ping -n 1 -w 3000 10.10.254.254 >nul
:gettasklist
tasklist /fi "imagename eq rmngr.exe">"%appdata%\log.txt"
ping -n 1 -w 1000 10.10.254.254 >nul
set findoutput=""
set /p findoutput=<%appdata%\log.txt
echo "Awaiting for rmngr.exe stopping..." !
if not "%findoutput%"=="Информация: Задачи, отвечающие заданным критериям, отсутствуют." goto gettasklist
sc start "1C:Enterprise 8.3 Server Agent (x86-64)"
pause

 

Вступайте в нашу телеграмм-группу Инфостарт

перезапуск сервера 1с по расписанию перезапуск службы 1с 8.3 по расписанию

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

HighLoad оптимизация Администрирование СУБД Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бухгалтерский учет Бесплатно (free)

После миграции с MS SQL на PostgreSQL закрытие месяца в 1С:ERP стало идти 8 часов вместо 12 минут. Рассказываем, как мы нашли причину в оценке Hash Join, которую планировщик завышал в миллионы раз, и как исправили её так, что проблемный запрос теперь выполняется за 18 секунд вместо часа.

19.10.2026    971    Tantor    0    

10

Сервера Системный администратор 1С 8.5 1С:Управление торговлей 11 Россия Бесплатно (free)

Когда запускается новейший 16-ядерный флагман AMD Ryzen 9 9950X (микроархитектура Zen 5 с паспортным бустом до 5.7 ГГц), скоростные накопители NVMe PCIe 5.0 x4 и быстрый комплект DDR5, подсознательно ждешь феноменальных результатов «из коробки». Мы развернули монолитный вычислительный комплекс «All-in-One» (сервер приложений «1С:Предприятие 8.5.1» + СУБД Microsoft SQL Server 2022 Enterprise на Windows Server 2025) внутри гипервизора Proxmox VE 9.2. Запускаем однопоточный синтетический тест Гилёва (TPC-1C) и видим на экране холодный душ: 35.46 балла. Ниже — детальная хроника инженерного расследования, в ходе которого мы шаг за шагом сняли скрытые инфраструктурные барьеры на каждом слое системы (BIOS, гипервизор KVM, ядро Windows, СУБД, платформа 1С) и разогнали сервер с 35.46 до 79.37 баллов (+123.8% чистой скорости проведения документов), сделав виртуальную машину абсолютным лидером среди KVM-систем в глобальном датасете 1С 8.5.1.

15.10.2026    2295    YA_93013054    18    

20

Администрирование СУБД HighLoad оптимизация Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Большинство материалов о компрессии в PostgreSQL отвечают на вопрос «во сколько раз удалось уменьшить базу». Мы предлагаем посмотреть на проблему с другой стороны — какой ценой достигается эта экономия? В статье разбираем архитектурные компромиссы различных подходов к компрессии страниц, объясняем, почему при разработке CSM в Tantor Postgres отказались от погони за максимальным коэффициентом сжатия, и показываем результаты нагрузочных испытаний на реальных базах 1С.

01.10.2026    1472    Tantor    6    

17

HighLoad оптимизация Администрирование СУБД Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

В рамках 18 релиза СУБД Tantor Postgres мы рассказывали об оптимизациях, которые помогают планировщику сделать более точный выбор между Nested Loop и Hash Join. В следующем релизе у нас планируются оптимизации, которые позволят ускорить выполнение как Nested Loop, так и Hash Join. Сегодня мы расскажем об одном из таких методов - фильтре Блума.

31.08.2026    6138    Tantor    3    

18

Администрирование СУБД Системный администратор Разработчик Бесплатно (free)

5,5 тысячи пользователей в единой базе 1С, розница в режиме 24/7 и SLA 99,98% – в таких условиях любая авария быстро превращается в очереди на кассах, потерю денег и давление со стороны бизнеса. Показываем, как выстроить процесс аварийно-восстановительных работ: от первых алертов и базового скрининга системы до подключения команды, проверки гипотез и дебрифа после инцидента. Разбираем, как метрики, дашборды, техжурнал, Zabbix, Prometheus, Grafana, Telegram-боты и скрипты помогают не гадать, а быстро находить причину проблемы. На реальных авариях объясняем, почему «быстро» не должно означать «рискованно», как работа над ошибками снижает панику и почему каждая авария может сделать систему надежнее.

11.08.2026    3425    jul.dolganova    9    

24

Облачные сервисы, хостинг Сервера Нейросети Разработчик Бесплатно (free)

В последние годы спор «облако или локалка» стал одним из самых горячих в мире работы с нейросетями. Давайте разберемся.

03.08.2026    4852    dsdred    54    

12

Администрирование веб-серверов Сервера HighLoad оптимизация Системный администратор Разработчик Бесплатно (free)

Каждый вечер в час закрытия смен 200 касс розничной сети начинали «залипать», и у всех было готовое объяснение: блокировки. Аудит ожиданий в час пика показал: блокировок — ноль. Сессии ждали не друг друга, а свободных потоков: заводские cost threshold for parallelism = 5 и MAXDOP = 0 на 48-ядерном сервере отправляли даже лёгкие запросы разбегаться по всем ядрам, и две трети запросов стояли в очереди за потоками. Разбираем детектив: почему рефлекс «вечером тормозит — значит, блокировки» подменяет диагностику, как читается картина ожиданий, причём тут сосед по инстансу с отчётом на 24 потока и 4,3 часа — и как две динамические настройки без перезапуска сняли проблему в тот же вечер. С чек-листом «блокировки или параллелизм».

28.07.2026    3174    nedomolkov.ivan    4    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. jmw 61 24.07.24 09:00 Сейчас в теме
Собственно, этот скрипт оборачиваем в bat файл,

А ведь найдутся такие, которые именно так и сделают и скопипастят, только про pause в конце даже и не задумаются…
4. mefalcon 41 24.07.24 15:41 Сейчас в теме
(1)
(1) Как говорил Винни Пух, "это ЖЖЖ тут не с проста."
Так и здесь pause для отображения результата для первичного использования, когда юзер(админ) поймет, что ему мешает это окно, уже пусть задумывается о pause и так далее. =))
2. redfred 24.07.24 14:15 Сейчас в теме
А банальный повершельный restart-service -displayname "1C:Enterprise 8.3 Server Agent (x86-64)" -force не тоже самое сделает?
3. mefalcon 41 24.07.24 15:35 Сейчас в теме
(2)
restart-service
как освобожусь еще допишу чистку кэша сеансов, тогда рестарт не подойдет. ))
5. redfred 24.07.24 15:55 Сейчас в теме
(3)
как освобожусь еще допишу чистку кэша сеансов, тогда рестарт не подойдет. ))

stop-service ; очистка кэша ; start-service. Ихмо более компактно и читаемо. Хотя это уже дело вкуса
6. mefalcon 41 24.07.24 19:14 Сейчас в теме
(5) Да, Вы правы, читаемо.
Не знаете , stop-service - выполняется синхронно? т.е. дожидается остановки всех процессов службы?
sc stop и net stop асинхронны. т.е. команду ОС службе отправляет, и дальше следующие команды шарашит))
А мне надо, чтобы сначала остановились все процессы службы, причем штатно, желательно без kill, а потом выполнялись либо запуск, либо чистка кэша. Кстати, чистка кэша , пока процессы не оставнолены , невозможна. Поэтому получается так "нелаконично" =)
7. redfred 24.07.24 21:20 Сейчас в теме
(6)
Не знаете , stop-service - выполняется синхронно? т.е. дожидается остановки всех процессов службы?


Да, синхронно
mefalcon; +1 – Ответить
13. mefalcon 41 02.08.24 14:18 Сейчас в теме
(7) Доброго дня, переписал на ps.
Все же stop-service выполняется асинхронно, не ожидает пока завершатся процессы службы, поэтому вставил цикл проверки остановки процессов:)
11. Armando 1403 26.07.24 08:22 Сейчас в теме
(6)
А мне надо, чтобы сначала остановились все процессы службы, причем штатно, желательно без kill

Зачем? Даже 1С в своей методичке приводит пример скрипта для рестарта с принудительным завершением процессов через taskkill
https://its.1c.ru/db/metod8dev#content:5899:hdoc:%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20%D1%81%D0%BA%D1­%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2
mefalcon; +1 – Ответить
8. Cyberhawk 135 25.07.24 11:39 Сейчас в теме
отключился ли процесс оперционной системы "rmngr.exe". Именно это событие принял как за успешное завершение остановки службы 1С
Лучше ориентироваться на завершение всех трех видов процессов кластера - менеджер, агент, рпхост.
Можно еще и dbgs туда добавить.
А то бывает что рпхосты не завершились и это приводит к необъяснимым проблемам в перезапущенном кластере.
mefalcon; +1 – Ответить
9. paulwist 25.07.24 12:52 Сейчас в теме
(8)
Можно еще и dbgs туда добавить.


Ну тогда ещё dbda для полного комплекта :)
12. mefalcon 41 26.07.24 08:47 Сейчас в теме
(8)
то рпхосты не завершились и это приводит к необъяснимым проблемам в перезапущенном класте

Вы правы, спасибо!)
10. Garilia 73 25.07.24 21:09 Сейчас в теме
В моей практике бест практисом является просто ребут службы и отдельный ps скрипт на мягкий ребут рпхостов с переездом соединений. Снос сеансовых на постоянной основе нужен если динамику постоянно катаете, либо расширениями нещадно балуетесь
mefalcon; +1 – Ответить
14. mefalcon 41 07.08.24 09:22 Сейчас в теме
(10) Доброе утро. Подскажи, пожалуйста, что имеешь в виду под "мягким ребутом"? изменяешь параметры кластера динамически (программно) или как-то иначе?
15. Garilia 73 09.09.24 15:21 Сейчас в теме
UPdate
(14) скрипт во вложении, можно запускать планировщиком по определенному расписанию
Прикрепленные файлы:
RebootRphosts 8.3.21.ps1
mefalcon; +1 – Ответить
16. Xershi 1566 21.09.24 11:35 Сейчас в теме
Так, а чем штатный механизм перезапуска не устраивает?
Чистка кеша на сервере это последнее дело, если не качественно делают обновления.
И для чего регламент в случае сбоя стопается сервер и чистится руками(бантиком).
Или во время внедрения настолько кривые обновы ставят, что админы устали обслуживание руками запускать?
17. mefalcon 41 28.11.24 09:22 Сейчас в теме
(16) добрый день.
Особенностью инфраструктуры заказчика, сложившейся исторически. По ночам периодически скачки электроэнергии, например
Для отправки сообщения требуется регистрация/авторизация