Автоматический перезапуск службы 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% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Администрирование СУБД 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

База 1С:ERP размером 646 Гб, полное маскирование за 5 часов - без создания промежуточной незащищенной копии. Разбираем бесплатный pg_anon на сквозном примере с реального продуктива.

27.07.2026    1548    Tantor    16    

12

HighLoad оптимизация Администрирование СУБД Программист Россия Бесплатно (free)

Если вы работаете с 1С на PostgreSQL и жалуетесь на тормоза — скорее всего, дело в join predicate pushdown, которого в стандартном PostgreSQL нет. В MS SQL Server этот механизм работает «из коробки», и при миграции именно запросы к виртуальным таблицам 1С бьют по производительности сильнее всего. В этой статье — реальный кейс от Postgres Professional с разбором плана выполнения, ручным экспериментом и доработкой планировщика СУБД, которая ускорила запросы от 22 до 54 000 раз.

16.06.2026    7719    postgres_professional    13    

12

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С:Предприятие 8 Бесплатно (free)

Вышел релиз СУБД Tantor Postgres 18, и мы хотим рассказать о его новых возможностях для работы с приложениями на платформе "1С:Предприятие". В обзоре разберем улучшения планировщика, по традиции коснемся работы временных таблиц и не обойдем вниманием вспомогательные утилиты, которые упрощают поиск и диагностику проблем в высоконагруженных системах. За каждым пунктом - реальные запросы 1С, реальные рабочие базы и сотни часов тестирования!

16.06.2026    2611    Tantor    7    

10

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

База 1С за несколько лет эксплуатации разрослась, - стала большой, медленно работает, требует много места и времени для копирования и прочего обслуживания. Нужна ли обязательно свертка или можно обойтись более «мягкими» средствами. Делюсь своим опытном как для новых конфигураций, так и для старых УПП, УТ 10…

01.06.2026    7427    2ncom    30    

11

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

Пошаговый опыт миграции файловой базы 1С УНФ 1.6 с арендованного сервера на собственную железку в частный дом. Разбираем: сборку ПК за 50 тыс. руб., нюансы публикации базы через IIS на Windows 11, решение проблем с правами доступа и настройку проброса портов на роутере TP-Link, а так же настройка ежедневного бекапа c архивацией в облако встроенными средствами Windows. Итог — быстрая работа через веб-клиент без арендных платежей и кошмаров о потере данных

12.05.2026    2350    war41k    34    

11

Администрирование СУБД Системный администратор Программист Бесплатно (free)

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

20.04.2026    8407    berserg    12    

27

Сервера Программист Бесплатно (free)

Разбираем автономный сервер с непривычной стороны – через призму безопасности и реальных рисков его использования. Показываем, как можно выполнять выгрузку базы и изменять конфигурацию без следов в журнале регистрации, а также объясняем механизм раскрытия паролей подключения к СУБД. Отдельно рассматриваем, почему эти сценарии становятся возможны и какие ошибки в настройке инфраструктуры к этому приводят. В завершение рассказываем, какие меры защиты помогают предотвратить подобные ситуации и снизить риски.

30.03.2026    5067    ardn    10    

18

Администрирование СУБД Программист Бесплатно (free)

Прокачиваем Постгрес с помощью пользовательских функций и процедур.

02.03.2026    3667    SerVer1C    3    

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

А ведь найдутся такие, которые именно так и сделают и скопипастят, только про pause в конце даже и не задумаются…
4. mefalcon 40 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 40 24.07.24 15:35 Сейчас в теме
(2)
restart-service
как освобожусь еще допишу чистку кэша сеансов, тогда рестарт не подойдет. ))
5. redfred 24.07.24 15:55 Сейчас в теме
(3)
как освобожусь еще допишу чистку кэша сеансов, тогда рестарт не подойдет. ))

stop-service ; очистка кэша ; start-service. Ихмо более компактно и читаемо. Хотя это уже дело вкуса
6. mefalcon 40 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 40 02.08.24 14:18 Сейчас в теме
(7) Доброго дня, переписал на ps.
Все же stop-service выполняется асинхронно, не ожидает пока завершатся процессы службы, поэтому вставил цикл проверки остановки процессов:)
11. Armando 1402 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 40 26.07.24 08:47 Сейчас в теме
(8)
то рпхосты не завершились и это приводит к необъяснимым проблемам в перезапущенном класте

Вы правы, спасибо!)
10. Garilia 73 25.07.24 21:09 Сейчас в теме
В моей практике бест практисом является просто ребут службы и отдельный ps скрипт на мягкий ребут рпхостов с переездом соединений. Снос сеансовых на постоянной основе нужен если динамику постоянно катаете, либо расширениями нещадно балуетесь
mefalcon; +1 Ответить
14. mefalcon 40 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 1561 21.09.24 11:35 Сейчас в теме
Так, а чем штатный механизм перезапуска не устраивает?
Чистка кеша на сервере это последнее дело, если не качественно делают обновления.
И для чего регламент в случае сбоя стопается сервер и чистится руками(бантиком).
Или во время внедрения настолько кривые обновы ставят, что админы устали обслуживание руками запускать?
17. mefalcon 40 28.11.24 09:22 Сейчас в теме
(16) добрый день.
Особенностью инфраструктуры заказчика, сложившейся исторически. По ночам периодически скачки электроэнергии, например
Для отправки сообщения требуется регистрация/авторизация