Почему тормозит и замирает 1С 8.3 и как вернуть скорость

· 10 мин

Содержание

Если 1С зависает, сначала выясните, у кого: у одного пользователя или у всех. Зависает у одного — проблема на клиентском месте (кэш, антивирус, сеть до сервера). У всех сразу — ищите причину в базе: блокировки, тяжёлое фоновое задание, перегруженная СУБД или сервер.

Это разделение экономит больше всего времени. Дальше — порядок проверок от простых и безопасных к серьёзным. Он подходит для любой конфигурации на платформе 8.3: Бухгалтерии, ЗУП, УТ, ERP. Решения отличаются только для файловой и клиент-серверной базы, это отмечено в каждом разделе.

Первичная диагностика: где именно зависает 1С

Пять минут наблюдения дают больше, чем час случайных действий. Ответьте на вопросы:

  • 👥 Сколько людей затронуто? Один, отдел или вся компания.
  • ⏱ Когда началось? После обновления, установки антивируса, переезда на новый сервер, роста базы.
  • 🔁 Что именно висит? Запуск программы, открытие конкретного документа, проведение, формирование отчёта, закрытие месяца .
  • 🕘 В какое время? Ровно в 9:00 или по ночам часто работают регламентные задания и резервное копирование .
  • 💻 Тип базы. Файловая (папка с файлом 1Cv8.1CD) или клиент-серверная (в окне запуска указан сервер и имя базы).

Параллельно откройте «Диспетчер задач» на компьютере пользователя и на сервере. Смотрите на четыре показателя:

Что видноВероятная причина
Процессор 100% у 1cv8.exe или 1cv8c.exeТяжёлая операция на клиенте, зациклившийся код, отрисовка большого отчёта
Память близка к пределу, активный файл подкачкиМало ОЗУ, утечка в долго открытом сеансе
Диск загружен на 100%Медленный HDD, антивирус сканирует базу, идёт резервное копирование
Ресурсы почти свободны, а 1С стоитОжидание: блокировка, сеть, ответ от сервера

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

Клиентское место: когда 1С тормозит у одного пользователя

Если у коллег всё работает, проблема почти наверняка на этом компьютере.

Очистка кэша

Кэш конфигурации на клиенте со временем повреждается, особенно после обновлений. Признаки: долгий запуск, «замирание» при открытии форм, странные ошибки отображения.

Самый простой способ — запустить 1С с параметром /ClearCache. В окне запуска выберите базу → «Изменить» → на последнем шаге в поле «Дополнительные параметры запуска» впишите /ClearCache. Запустите один раз, потом параметр можно убрать.

Радикальный способ — закрыть 1С и удалить содержимое папок кэша:

rem Закройте все окна 1С перед запуском
rd /s /q "%APPDATA%\1C\1cv8\"
rd /s /q "%LOCALAPPDATA%\1C\1cv8\"

В %APPDATA%\1C\1cv8 лежит не только кэш, но и сохранённые настройки окон. Список баз хранится отдельно, в %APPDATA%\1C\1CEStart\ibases.v8i, — его эта команда не затрагивает. Если сомневаетесь, сначала переименуйте папки, а не удаляйте.

Антивирус и Защитник Windows

Антивирус проверяет каждый файл, к которому обращается 1С. Для файловой базы это означает проверку огромного 1Cv8.1CD при каждом чтении.

Добавьте в исключения:

  1. Папку с файловой базой.
  2. Каталог установки платформы, обычно C:\Program Files\1cv8\.
  3. Папки кэша из примера выше.
  4. На сервере 1С — каталог данных кластера (по умолчанию srvinfo в папке службы).

Ресурсы компьютера

  • 🧠 Для тонкого клиента в типовых конфигурациях комфортно от 8 ГБ ОЗУ, для толстого клиента с файловой базой — больше.
  • 💽 Файловая база на HDD при росте за 5–10 ГБ тормозит заметно. SSD даёт кратный выигрыш.
  • ⚡ Схема электропитания «Экономия энергии» на ноутбуках и даже серверах снижает частоту процессора. Поставьте «Высокая производительность».

Тяжёлые настройки пользователя

Отчёт с периодом «за всё время» и отбором по всем организациям способен «повесить» 1С на десятки минут. Перед тем как искать сложные причины, сузьте период и отборы. Если тормозит одна конкретная форма, сбросьте её настройки: в форме откройте меню «Ещё» → «Изменить форму» → «Стандартные настройки».

Блокировки и монопольный режим: когда зависают все сразу

Если у всех пользователей «крутится колёсико» на одних и тех же операциях, первым делом смотрите, кто сейчас работает в базе.

Кто держит базу

В конфигурации откройте список активных сеансов. Путь в Бухгалтерии 3.0 и ЗУП 3.1: Администрирование → Обслуживание → Активные пользователи (в некоторых релизах — через Все функции → Обработки → Активные пользователи). В Конфигураторе: Администрирование → Активные пользователи.

Для клиент-серверной базы надёжнее «Консоль администрирования серверов 1С:Предприятия». В ветке базы → «Сеансы» видно, какой сеанс сколько времени работает и сколько выполнил вызовов. Сеанс, который час висит на «проведении документа», — главный подозреваемый.

Ту же информацию даёт утилита rac:

rac cluster list
rac session list --cluster=<id_кластера>

Если нужных параметров не знаете, смотрите справку rac help session.

Конфликт блокировок

Типичный текст ошибки после долгого зависания:

Конфликт блокировок при выполнении транзакции: Превышено максимальное время ожидания предоставления блокировки

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

Что делать:

  1. Найти долгую операцию в списке сеансов.
  2. Договориться с пользователем и дождаться её окончания.
  3. Тяжёлые операции (закрытие месяца, перепроведение, групповую обработку) переносить на время, когда в базе мало людей.

Принудительное завершение сеанса откатывает его незавершённую транзакцию. Пользователь потеряет несохранённые данные, а проведение, которое шло час, придётся запускать заново. Завершайте сеанс, только предупредив человека.

Монопольный режим

Монопольный доступ нужен для обновления структуры базы, загрузки .dt, тестирования и исправления. Пока кто-то держит базу в монопольном режиме, остальные не войдут — у них это выглядит как «не запускается» или сообщение о блокировке. Проверьте, не запущено ли у администратора обновление, и не висит ли брошенный сеанс Конфигуратора.

В клиент-серверной базе через консоль кластера можно также включить «Блокировку начала сеансов» на время обслуживания — тогда пользователи видят понятное сообщение, а не зависание.

Сервер баз данных: когда тормозит СУБД

В клиент-серверном варианте данные хранит MS SQL Server или PostgreSQL. Если СУБД не обслуживается, база замедляется постепенно, месяц за месяцем, пока не начинает «висеть».

MS SQL Server

Три настройки, которые чаще всего забывают:

  • 📊 Обновление статистики. Без неё планировщик запросов выбирает плохие планы. Делается в плане обслуживания или командой EXEC sp_updatestats; в контексте базы.
  • 🧱 Обслуживание индексов. Реорганизация или перестроение индексов раз в неделю, в нерабочее время.
  • 🧠 Ограничение памяти. Если 1С и SQL на одном сервере, задайте в свойствах SQL Server параметр «Максимальный размер памяти сервера». Иначе SQL заберёт почти всё ОЗУ, и рабочим процессам 1С не хватит.
-- обновить статистику по всей базе (выполнять в нерабочее время)
USE [имя_базы];
EXEC sp_updatestats;

PostgreSQL

Здесь ключевое — регулярные VACUUM и ANALYZE. Автовакуум обычно включён, но на крупных базах его не хватает. Раз в неделю ночью запускайте:

vacuumdb --all --analyze

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

Диски и место

  • Файлы базы и журнала транзакций SQL лучше держать на SSD.
  • Журнал транзакций MS SQL в полной модели восстановления растёт без резервного копирования журнала. Когда кончается место на диске, база фактически встаёт.
  • Свободного места на томе с базой должно быть не меньше 15–20%.

Журнал регистрации и технологический журнал

Эти два журнала отвечают на вопрос «что происходило в момент зависания».

Журнал регистрации

Открывается в конфигурации: Администрирование → Обслуживание → Журнал регистрации. Поставьте отбор по времени зависания и по пользователю. Смотрите события с ошибками, долгие транзакции, запуск фоновых заданий в это же время.

Сам журнал тоже может тормозить базу, если он разросся до десятков гигабайт. Варианты:

  1. В Конфигураторе Администрирование → Настройка журнала регистрации — сократить уровень регистрации или разделение файлов по периодам.
  2. Там же «Сократить» — удалить записи старше выбранной даты, предварительно сохранив их в файл.

Технологический журнал

Техжурнал включается файлом logcfg.xml. Его кладут в каталог conf платформы, например C:\Program Files\1cv8\conf\. Платформа подхватывает файл без перезапуска. Пример для поиска конфликтов блокировок и ошибок:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\techlog" history="24">
    <event><eq property="name" value="TTIMEOUT"/></event>
    <event><eq property="name" value="TDEADLOCK"/></event>
    <event><eq property="name" value="EXCP"/></event>
    <property name="all"/>
  </log>
</config>
  • TTIMEOUT — превышено время ожидания блокировки.
  • TDEADLOCK — взаимоблокировка.
  • EXCP — исключения, в том числе аварийные.
  • history="24" — хранить логи 24 часа.

Событие TLOCK даёт полную картину блокировок, но пишет очень много. Включайте его на короткое время и на диск с запасом места.

Не забудьте удалить или переименовать logcfg.xml после диагностики. Забытый техжурнал сам становится причиной тормозов и забивает диск.

Диагностика: выберите симптом

Сеть и TCP/IP: когда 1С зависает из-за связи

Файловая база по сети

Файловый вариант по сетевой папке — самая частая причина жалоб «тормозит 1С». Каждый клиент читает файл базы по протоколу SMB, и любые задержки сети превращаются в зависания.

  • 📶 Wi-Fi и VPN для файловой базы плохо подходят. Обрывы связи ещё и грозят повреждением базы.
  • 👥 При 5–7 одновременных пользователях и больше файловую базу стоит переводить на клиент-серверный вариант или публиковать через веб-сервер.
  • 🖥 Альтернатива — работа через терминальный сервер (RDP), когда база и клиенты физически на одной машине.

Клиент-серверный вариант

Клиент сначала обращается к агенту сервера (порт 1540), затем к менеджеру кластера (1541) и к рабочим процессам. Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера, по умолчанию 1560–1591.

Если какой-то порт режет межсетевой экран, подключение долго висит и падает по тайм-ауту. Проверьте:

ping -t имя_сервера
tracert имя_сервера

Пинг внутри офиса должен быть единицы миллисекунд и без потерь. Потери пакетов даже в 1–2% дают ощутимые «подвисания» интерфейса. Имя сервера должно одинаково разрешаться у клиентов и на самом сервере — при путанице в DNS используйте файл hosts.

Регламентные задания и профилактика

Фоновые задания внутри 1С

Откройте Администрирование → Обслуживание → Регламентные и фоновые задания. Посмотрите, что выполняется в момент зависания. Частые виновники:

  • 🔎 Обновление индекса полнотекстового поиска на большой базе.
  • 🔄 Обмены данными с другими базами и сайтом.
  • 📥 Загрузка курсов валют, классификаторов, работа с сервисами 1С при недоступном интернете.
  • 📨 Обмен с ЭДО и сервисами отчётности.

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

График профилактики

ЧтоКак частоКогда
Резервная копия базыЕжедневноНочью, вне рабочих часов
Статистика и индексы СУБД / VACUUMРаз в неделюНочью или в выходные
Тестирование и исправление (файловая база)Раз в 1–3 месяцаПри монопольном доступе
Очистка или сокращение журнала регистрацииРаз в кварталПосле выгрузки старых записей
Проверка свободного места на дискахЕженедельноЛюбое время

Тестирование и исправление запускается из Конфигуратора: Администрирование → Тестирование и исправление. Нужен монопольный доступ, а пользователей придётся выгнать.

Перед тестированием и исправлением обязательно сделайте копию базы. Режим «Реструктуризация таблиц» и исправление ссылок меняют данные, откатить без копии нельзя.

Перезапуск сервера 1С как крайняя мера

Если рабочий процесс rphost съел всю память и не отвечает, помогает перезапуск службы «Агент сервера 1С:Предприятия». Это оборвёт сеансы всех пользователей, и незавершённые транзакции откатятся. Делайте это после предупреждения, а лучше в нерабочее время. Повторяющийся рост памяти rphost лечится настройками перезапуска рабочих процессов в свойствах рабочего сервера, а не ежедневной перезагрузкой.

Частые вопросы

Поможет ли обновление платформы, если 1С зависает?
Иногда да: в новых версиях платформы исправляют ошибки производительности. Но сначала исключите блокировки, кэш и СУБД — обновление не лечит плохое обслуживание базы.
Как понять, что тормозит именно код конфигурации?
Включите замер производительности в режиме отладки или посмотрите техжурнал: если время уходит на одну процедуру или запрос, а ресурсы сервера свободны, проблема в коде или доработке.
Сколько оперативной памяти нужно серверу 1С?
Ориентировочно от 16 ГБ для небольшой компании с СУБД на той же машине. Точнее покажет нагрузка: если сервер регулярно уходит в файл подкачки, памяти не хватает.
Почему 1С зависает при закрытии программы?
Чаще всего при выходе сохраняются настройки и завершаются фоновые операции, а при медленной сети это занимает время. Помогает очистка кэша и проверка связи с сервером.
Можно ли ускорить 1С, просто купив более мощный компьютер?
Только если узкое место именно в железе. При конфликтах блокировок или необслуживаемой СУБД новый сервер даст небольшой прирост, а зависания останутся.