К статье
Практический материал

Администрирование · 13 мин

Почему медленно работает 1С и как сделать её быстрее

Разбираем причины медленной работы 1С: сеть, сервер, СУБД, блокировки и настройки. Пошаговая диагностика и конкретные способы ускорить работу программы.

Медленная работа 1С почти никогда не бывает «просто так»: за ней стоит конкретная причина — перегруженный сервер, неоптимальные настройки СУБД, блокировки в базе, слабый канал связи или тяжёлый код в прикладном решении. Главная ошибка администраторов — начинать «лечить» программу наугад: перезагружать службы, чистить кэш, добавлять память. Без диагностики такие действия дают либо временный, либо нулевой эффект.

Правильный подход — сначала определить, где именно теряется время: на клиенте, в сети, на сервере 1С или на уровне СУБД. Для этого достаточно штатных инструментов: технологического журнала, монитора производительности Windows, средств диагностики PostgreSQL или MS SQL Server. Только после локализации узкого места имеет смысл вкладываться в оборудование или переписывать код.

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

Как понять, какое звено тормозит: клиент, сеть, сервер или СУБД

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

Простой тест: запустите одну и ту же операцию на сервере 1С локально (например, через RDP на самом сервере) и с рабочего места пользователя. Если на сервере быстро, а у пользователя медленно — виновата сеть или клиентский компьютер. Если медленно везде — копайте в сторону СУБД и кластера серверов.

Тормозит у одного пользователяПроблема на клиенте

Проверьте его ПК, антивирус, сетевое подключение, кэш 1С

Тормозит у всех периодическиСервер или СУБД

Смотрите загрузку CPU, память, диск, блокировки в СУБД

Тормозит одна операцияТяжёлый запрос или код

Снимите замер производительности в конфигураторе

Тормозит в часы пикНехватка ресурсов или блокировки

Сравните нагрузку утром и вечером, проверьте регламентные задания

Проблемы на стороне клиента: компьютер, антивирус, кэш

Клиентская часть 1С чувствительна к скорости диска и к работе антивируса. Каталоги кэша метаданных и временные файлы активно перезаписываются, и если антивирус проверяет каждый файл «на лету», запуск программы и открытие форм заметно замедляются. Добавьте каталоги 1С в исключения антивируса — это одна из самых частых и дешёвых мер.

Также помогает очистка кэша метаданных: при повреждённом или разросшемся кэше программа может подолгу открываться и «задумываться». Кэш находится в профиле пользователя (каталоги с длинными именами-идентификаторами). Удалять его следует при закрытой 1С — при следующем запуске кэш создастся заново.

Если клиент работает по тонкому каналу (филиал, VPN), рассмотрите переход на веб-клиент или терминальный доступ: по медленной сети тонкий клиент в файловом или клиент-серверном режиме передаёт заметно больше данных, чем веб-клиент или RDP.

Типичные ошибки
01
Удалять базу вместо кэша: кэш лежит в профиле пользователя, база — отдельно; путаница приводит к потере времени и нервов
02
Игнорировать антивирус: проверка файлов кэша в реальном времени способна замедлить запуск 1С в несколько раз
03
Добавлять оперативную память серверу, когда узкое место — дисковая подсистема или сеть
04
Перезапускать службы вместо диагностики: эффект держится минуты, причина остаётся

Сеть и инфраструктура: когда виноват канал связи

1С в клиент-серверном режиме чувствительна не столько к ширине канала, сколько к задержкам (latency). Даже при «быстром» интернете высокий пинг между клиентом и сервером превращает каждое обращение к базе в ощутимую паузу. Проверьте задержку командой ping до сервера: для комфортной работы желательны значения в единицы миллисекунд внутри локальной сети.

Отдельный источник проблем — Wi-Fi на рабочих местах бухгалтерии и склада. Беспроводная сеть даёт нестабильные задержки и потери пакетов, что для 1С критичнее, чем для просмотра веб-страниц. Там, где это возможно, переведите рабочие места с 1С на проводное подключение.

Как проверить задержку до сервера

bash
ping -n 20 имя_сервера_1С

Обратите внимание не только на среднее время, но и на разброс значений: стабильные 2 мс лучше, чем колебания от 1 до 80 мс. Большой разброс говорит о перегруженном сетевом оборудовании или помехах в беспроводном сегменте.

Сервер 1С: настройки кластера и ресурсы

На сервере 1С чаще всего проблемы связаны с нехваткой оперативной памяти и неоптимальными настройками кластера. Рабочие процессы rphost обслуживают соединения пользователей, и если их мало при большом числе пользователей — запросы встают в очередь. Если же процессов слишком много, они начинают конкурировать за память и процессор.

Проверьте в консоли кластера количество рабочих процессов и их загрузку. Для небольших внедрений часто достаточно одного-двух рабочих процессов; при росте числа пользователей их количество увеличивают постепенно, наблюдая за метриками. Также обратите внимание на ограничение объёма памяти рабочих процессов и настройки перезапуска — корректный перезапуск процессов по расписанию помогает избегать накопления «утечек» памяти.

Важно разнести сервер 1С и сервер СУБД по разным машинам при сколько-нибудь заметной нагрузке. Совместное размещение допустимо для небольших баз, но при росте числа пользователей оба сервиса начинают конкурировать за память и диск, и производительность падает у обоих.

СУБД: главный источник тормозов в клиент-серверном режиме

В большинстве случаев, когда «медленно работает 1С», реальная причина находится на уровне СУБД: нехватка памяти под буферы, медленные диски, отсутствующие или неактуальные индексы, давно не обновлявшаяся статистика. Планировщик запросов при устаревшей статистике выбирает неоптимальные планы, и запрос, который должен выполняться секунды, работает минутами.

Базовые регламентные операции для MS SQL Server и PostgreSQL включают: обновление статистики, перестроение или реорганизацию индексов, контроль размера и фрагментации файлов базы и журнала транзакций. Эти операции должны выполняться регулярно по расписанию — в периоды минимальной нагрузки. Их отсутствие — одна из самых частых причин постепенной деградации производительности: база «плывёт» медленно, неделями, и пользователи привыкают к тормозам как к норме.

Дисковая подсистема критична: база данных на медленных HDD почти всегда становится узким местом при росте объёма данных. Перевод базы на SSD даёт один из наиболее заметных приростов производительности из всех возможных апгрейдов железа.

Технологический журнал: как найти медленный запрос

Технологический журнал (ТЖ) — штатный механизм платформы, который фиксирует события сервера: вызовы СУБД, длительность запросов, блокировки. Настройте ТЖ на запись событий DBMSSQL/DBPOSTGRS с длительностью выше порога (например, от нескольких секунд) — и вы получите конкретный список запросов-виновников, а не общее ощущение «всё тормозит».

Порядок диагностики медленной операции
  1. 1
    Воспроизведите проблему и зафиксируйте точное время: какая операция, у какого пользователя, сколько длилась
  2. 2
    Проверьте, повторяется ли замедление у других пользователей и на самом сервере
  3. 3
    Посмотрите загрузку CPU, памяти и диска на сервере СУБД в момент проблемы
  4. 4
    Включите технологический журнал с фильтром по длительным запросам и повторите операцию
  5. 5
    Найдите конкретный запрос или блокировку и только после этого выбирайте способ исправления

Блокировки и параллельная работа пользователей

Если 1С «зависает» не постоянно, а в моменты, когда несколько пользователей одновременно проводят документы или закрывают смену, почти наверняка вы столкнулись с блокировками. Один сеанс удерживает данные, остальные ждут — и для пользователей это выглядит как «программа зависла».

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

Диагностируются блокировки через технологический журнал (события TLOCK, TDEADLOCK) и средства СУБД. Взаимоблокировки (deadlock) — особый случай: платформа принудительно завершает одну из транзакций, и пользователь получает ошибку. Повторяющиеся взаимоблокировки в одном и том же месте — признак проблем в коде конфигурации, которые не решаются настройками сервера.

Маршрут решения

Как выбрать действие

Медленно только у одного пользователяПроверьте его ПК, антивирус, сеть и очистите кэш 1С
Медленно у всех, диск сервера загружен на 100%Проверяйте дисковую подсистему СУБД и регламентные операции
Зависания при одновременной работе нескольких пользователейИщите блокировки через технологический журнал, проверяйте режим управляемых блокировок
Медленно выполняется один конкретный отчёт или проведениеДелайте замер производительности и оптимизируйте запросы в коде
База растёт и тормозит всё сильнее с каждым месяцемПроверьте регламентные задания СУБД, индексы, статистику и рассмотрите свёртку старых данных

Оптимизация кода и данных: когда настройки не помогают

Если диагностика показала, что железо не перегружено, а тормозит конкретная операция, причина — в прикладном коде: запросы в цикле, отсутствие индексов по полям отборов, чтение лишних данных, обращения к серверу внутри цикла на клиенте. Такие проблемы не лечатся ни памятью, ни SSD — их исправляет разработчик.

Штатный инструмент — замер производительности в конфигураторе (Отладка → Замер производительности). Он показывает, какие строки кода и запросы занимают больше всего времени. Частые находки: запрос внутри цикла обхода табличной части, получение данных через точку от ссылки («разыменование»), отборы по неиндексированным полям в больших таблицах.

Отдельная тема — объём данных. Базы, в которых годами копятся документы и движения регистров, неизбежно замедляются: растут таблицы, индексы, время выборок. Штатное средство — свёртка базы (перенос остатков на дату с отсечением старой истории). Операция требовательная и рискованная: выполняется только на копии, с полной проверкой результатов.

Как проверить, что стало быстрее

Любую оптимизацию нужно измерять «до» и «после», иначе невозможно отличить реальный эффект от совпадения. Выберите 3–5 типовых операций (открытие программы, проведение документа, формирование ключевого отчёта) и замерьте их время в одинаковых условиях до изменений и после.

Контрольные точки

Как проверить результат

Время типовых операций
Норма

Сократилось заметно и стабильно в течение нескольких дней

Тревожный признак

Улучшение есть только сразу после перезапуска служб

Загрузка диска и памяти сервера
Норма

Нет постоянной 100% загрузки в рабочее время

Тревожный признак

Диск или память упираются в предел при каждой активности

Жалобы пользователей
Норма

Замедления исчезли или стали редкими и объяснимыми

Тревожный признак

Пользователи по-прежнему фиксируют зависания в часы пик

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

Длительных запросов и блокировок стало меньше

Тревожный признак

Те же запросы в топе по длительности

Если после всех мер производительность не восстановилась, проблема, скорее всего, глубже: в архитектуре решения, неудачных доработках конфигурации или принципиальной нехватке ресурсов под текущий объём данных. На этом этапе разумнее привлечь специалиста по оптимизации 1С с опытом анализа технологического журнала и планов запросов.

Итог

Что важно запомнить

Сначала диагностика, потом действия. Локализуйте звено (клиент, сеть, сервер, СУБД), найдите конкретного виновника через технологический журнал и замеры, устраните причину и измерьте результат. Регулярные регламентные операции с СУБД и исключения антивируса — самые дешёвые и эффективные профилактические меры.

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

Поможет ли увеличение оперативной памяти сервера?

Только если память действительно является узким местом. Проверьте загрузку: если память занята под завязку и активно используется файл подкачки — добавление памяти поможет. Если узкое место — диск или блокировки, эффекта не будет. Сначала смотрите счётчики производительности, потом покупайте железо.

Что быстрее: файловый или клиент-серверный режим?

Для одного-двух пользователей файловый режим проще и часто достаточен. При росте числа пользователей и объёма данных клиент-серверный режим с полноценной СУБД работает стабильнее и быстрее, особенно при параллельной работе. Файловая база по сети — самый медленный и рискованный вариант.

Как часто нужно обновлять статистику и перестраивать индексы в СУБД?

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

Почему 1С тормозит именно утром, когда все заходят в систему?

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

Можно ли ускорить 1С без покупки нового оборудования?

Часто да. Исключения антивируса, очистка кэша, регламентное обслуживание СУБД, настройка кластера, перенос тяжёлых заданий на ночь и исправление явных проблем в коде не требуют вложений в железо. Апгрейд оборудования оправдан, когда диагностика показала упор в конкретный ресурс — обычно диск или память.

Что делать, если тормозит только один отчёт?

Это почти всегда проблема конкретного запроса или алгоритма, а не сервера. Сделайте замер производительности при формировании отчёта, найдите самый длительный запрос и проверьте его план в СУБД. Типовые причины — отсутствие индекса по полю отбора, выборка избыточного объёма данных, соединения с виртуальными таблицами без отборов. Исправление — задача разработчика.