Жалоба «1С тормозит на терминале» звучит одинаково, а причины за ней бывают совсем разные: медленный диск, антивирус, проверяющий каждый файл базы, файловая база на соседнем сервере, раздутый профиль пользователя или нехватка памяти. Если сразу менять сервер или переустанавливать платформу, можно потратить деньги и не решить проблему.
Коротко: сначала выясните, у кого и когда тормозит. Потом по порядку проверьте диски и антивирус, где лежит база, загрузку процессора и памяти, кэш 1С, профиль пользователя и версию платформы. По моему опыту, причина чаще всего находится уже на первых шагах.
Шаг 0. Уточнить симптом
Прежде чем что-то настраивать, я задаю несколько вопросов:
- Тормозит у всех или у одного пользователя? Если у одного, смотрите сразу на профиль и кэш (шаги 5 и 6).
- Тормозит всё или одна операция? Медленный отчёт или проведение одного вида документов — чаще вопрос к конфигурации, а не к серверу.
- В какое время? Если только утром или в момент резервного копирования, ищите, что в это время нагружает сервер.
- С чего началось? Обновление Windows, новый антивирус, перенос базы, рост числа пользователей.
Посмотреть, кто сейчас работает на сервере и сколько запущено клиентов 1С, можно так:
quser
tasklist /fi "imagename eq 1cv8c.exe"
tasklist /fi "imagename eq 1cv8.exe"
1cv8c.exe — тонкий клиент, 1cv8.exe — толстый клиент и конфигуратор.
Шаг 1. Диски
Файловая база 1С очень чувствительна к задержкам диска. Откройте «Монитор ресурсов» (resmon), вкладку «Диск», и посмотрите во время тормозов, какие файлы читаются и какая очередь у диска. Если сервер на обычных HDD или на перегруженном общем хранилище, никакие настройки 1С этого не компенсируют. Для замеров дольше нескольких минут удобнее «Системный монитор» (perfmon) и счётчики PhysicalDisk(*)Avg. Disk sec/Read и PhysicalDisk(*)Avg. Disk sec/Write.
Ещё проверьте свободное место на системном диске и на диске с базами. Когда места почти нет, тормозит всё, а не только 1С.
Шаг 2. Антивирус и исключения
Антивирус в режиме постоянной защиты проверяет файлы при каждом обращении. Для файловой базы это означает проверку файла 1Cv8.1CD, который непрерывно читается и пишется, плюс тысячи мелких файлов кэша у каждого пользователя. Я добавляю в исключения:
- каталог с файловыми базами;
- каталоги кэша 1С в профилях пользователей:
%APPDATA%1C1cv8и%LOCALAPPDATA%1C1cv8; - если на этом же сервере работает сервер 1С — его рабочий каталог (по умолчанию
srvinfoв каталоге установки); - если там же СУБД — файлы данных и журналов базы.
Для встроенного Microsoft Defender исключения добавляются из PowerShell с правами администратора. Add-MpPreference дописывает исключения, не трогая существующие, а Set-MpPreference их перезаписывает (документация Microsoft):
Add-MpPreference -ExclusionPath "D:Bases"
Add-MpPreference -ExclusionPath "C:Users*AppDataRoaming1C1cv8"
Add-MpPreference -ExclusionPath "C:Users*AppDataLocal1C1cv8"
Get-MpPreference | Select-Object -ExpandProperty ExclusionPath
Обратите внимание: в исключениях Defender нельзя писать %APPDATA% в расчёте на профиль пользователя. Служба антивируса работает от имени LocalSystem, и такая переменная раскроется в путь системного профиля. Поэтому для всех профилей используется путь со звёздочкой, где * заменяет одну папку (имя пользователя).
Исключения ослабляют защиту, поэтому делайте их точечно: конкретные каталоги, а не целый диск. Если стоит сторонний антивирус, исключения настраиваются в его консоли, и проверить их стоит именно там: после обновления антивируса политика иногда сбрасывается.
Шаг 3. Файловая база по сети
Частая схема: терминальный сервер один, а файловые базы лежат в общей папке на другом сервере или NAS. Тогда каждое обращение к данным идёт по сети через SMB, и все пользователи терминала работают с файлом по сети одновременно. Это медленно и ненадёжно: при обрыве связи файловая база может повредиться.
Варианты решения, от простого к правильному:
- Перенести каталог базы на локальный быстрый диск самого терминального сервера.
- Если пользователей много или база большая — перевести её в клиент-серверный режим с MS SQL или PostgreSQL.
Ярлык на сетевую папку вместо локального пути — первое, что я ищу в списке баз у пользователей.
Шаг 4. Ресурсы сервера
В «Диспетчере задач» на вкладке «Пользователи» видно, сколько ресурсов занимает каждый сеанс. На что смотреть:
- Процессор. Многие операции в 1С выполняются в один поток, поэтому важна частота ядра, а не только их количество. Если одно ядро загружено полностью, а остальные отдыхают, это похоже на тяжёлую операцию одного пользователя.
- Память. Если свободной памяти почти нет, система уходит в файл подкачки, и тормозит всё. Каждый открытый клиент 1С занимает память, а пользователи часто держат открытыми по две-три базы.
- Схема электропитания. На физическом сервере схема «Сбалансированная» может снижать частоту процессора. Проверить и включить «Высокую производительность»:
powercfg /getactivescheme
powercfg /setactive SCHEME_MIN
Если сервер виртуальный, проверьте также хост: перегруженный хост или ограничения процессора у виртуальной машины изнутри гостевой ОС не видны.
Шаг 5. Кэш 1С
Платформа хранит в профиле пользователя кэш конфигурации. Иногда он повреждается, и тогда у одного пользователя 1С работает медленнее, чем у остальных, или ведёт себя странно после обновления конфигурации. Решения:
- добавить к параметрам запуска базы ключ
/ClearCache(поле «Дополнительные параметры запуска» в свойствах базы), запустить один раз и убрать ключ; - или при закрытой 1С удалить в
%APPDATA%1C1cv8и%LOCALAPPDATA%1C1cv8каталоги с именами-идентификаторами (GUID).
Удаляйте именно каталоги кэша, а не всю папку 1C: там же хранятся список баз и настройки пользователя.
Шаг 6. Профиль пользователя
Если на терминальном сервере используются перемещаемые профили или папка AppData перенаправлена на файловый сервер, кэш 1С оказывается в сети. Тогда каждый запуск и открытие формы идут через сетевую папку. Кэш 1С должен лежать на локальном диске терминального сервера.
Простой тест: создайте нового пользователя, войдите под ним и откройте ту же базу. Если у нового пользователя всё работает быстро, проблема в профиле: в его размере, перенаправлении папок, мусоре во временной папке %TEMP% или в надстройках, которые загружаются при входе.
Шаг 7. Версия платформы
Проверьте, какой версией платформы открывается база и какие версии установлены на сервере. Если ставили много версий подряд, у разных пользователей база может запускаться разными сборками. Обновляйте платформу до версии, которую рекомендует для вашей конфигурации 1С в описании релиза, и удаляйте старые сборки, когда они больше не нужны. Обновление платформы — не первое средство от тормозов, но в описаниях изменений 1С регулярно встречаются исправления производительности.
Тест Гилёва: что это и зачем
Тест Гилёва — синтетический тест производительности платформы 1С:Предприятие, распространяется как внешняя обработка. Основная часть теста оценивает скорость выполнения операций в один поток, результат выдаётся в условных единицах. Абсолютное значение само по себе мало что говорит. Полезно сравнивать: тот же сервер до и после изменений, два сервера между собой, файловую и клиент-серверную базу. Запускайте тест, когда сервер не нагружен, повторяйте несколько раз и сравнивайте результаты, полученные на одной версии платформы. Если тест на сервере показывает нормальный результат, а пользователям всё равно медленно, ищите причину в конфигурации, сети или профилях.
Сводная таблица
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| Медленно у всех, сильная активность диска | Медленный диск или антивирус | Исключения для баз и кэша, быстрый локальный диск |
| Медленно у всех, база в сетевой папке | Файловая база по SMB | Перенести базу локально или перейти в клиент-серверный режим |
| Медленно у одного пользователя | Кэш или профиль | /ClearCache, тест с новым пользователем |
| Медленно в определённые часы | Резервное копирование, обновления, тяжёлые регламентные задания | Развести задачи по времени |
| Нет свободной памяти, растёт файл подкачки | Мало памяти на число сеансов | Добавить память или ограничить число открытых баз |
| Тормозит одна операция или отчёт | Конфигурация или данные | Анализ замером производительности, обращение к программисту 1С |
Если искать узкие места на своём сервере некогда, можно арендовать готовый терминальный сервер для 1С, где базы, диски и антивирус уже настроены под эту нагрузку. А для разбора проблем на собственном оборудовании подойдёт удалённое обслуживание компьютеров и серверов.
Частые вопросы
Поможет ли просто добавить ядер процессора?
Не всегда. Многие операции 1С выполняются в один поток, поэтому быстрее они от новых ядер не станут. Дополнительные ядра помогают, когда одновременно работает много пользователей, а частота каждого ядра важна для скорости отдельной операции.
Можно ли совсем отключить антивирус на терминальном сервере?
Не советую. На терминальном сервере работают люди, которые открывают почту и файлы из интернета. Правильнее настроить точечные исключения для баз 1С и кэша.
Безопасно ли удалять кэш 1С?
Да, если 1С у этого пользователя закрыта и удаляются только каталоги кэша. Платформа создаст их заново при следующем запуске. Первый запуск после очистки будет чуть дольше обычного.
Тест Гилёва показал низкий результат. Сервер плохой?
Не обязательно. Результат зависит от частоты процессора, схемы электропитания, виртуализации и текущей нагрузки. Сначала проверьте эти параметры и повторите тест в спокойное время, а сравнивайте только с результатами, полученными в тех же условиях.