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

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

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

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

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

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

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

С чего начать: соберите симптомы, а не догадки

Прежде чем что-либо менять, зафиксируйте, как именно проявляется медлительность. «Всё тормозит» — не диагноз. Полезные вопросы: тормозит у всех пользователей или у части? Всегда или в определённые часы? Медленно работают все операции или конкретные (проведение документов, отчёты, открытие списков)? Проблема в файловой или клиент-серверной базе?

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

Замерьте конкретные операции секундомером: открытие журнала документов, проведение типового документа, формирование стандартного отчёта. Эти цифры станут точкой отсчёта — после каждого изменения вы сможете объективно проверить, помогло оно или нет.

Тормозит у всех пользователейПроблема на сервере или в базе

Диски, RAM, СУБД, регламентные задания

Тормозит у части пользователейСеть или клиентские машины

Пинг до сервера, канал, антивирус на клиенте

Тормозит в одно и то же времяФоновый процесс по расписанию

Бэкапы, регламентные задания, сканирование антивируса

Медленно растёт со временемРаздувание базы

Объём таблиц, журналы регистрации, итоги

Уровень 1: железо, диски и сеть

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

Оперативная память — второй кандидат. СУБД (MS SQL или PostgreSQL) должна держать в кэше активную часть базы. Если памяти мало, сервер постоянно читает данные с диска, и всё замедляется. Признак: высокая утилизация диска при умеренной нагрузке на процессор. Общее правило — чем больше базы помещается в память, тем лучше, но точные пропорции зависят от размера базы и числа пользователей.

Сеть влияет сильнее, чем кажется. Для файловой базы по сети требования к каналу особенно высоки: любые задержки и потери пакетов превращаются в многократное замедление. Проверьте пинг до сервера и скорость копирования файла. Если пользователи работают через Wi-Fi или VPN — это первое, что стоит исключить, переведя их на проводное подключение или терминальный доступ.

Уровень 2: СУБД и сервер 1С

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

Для MS SQL проверьте план обслуживания: обновление статистики и перестроение индексов должны выполняться регулярно. Если статистика устарела, оптимизатор строит плохие планы запросов, и даже простые операции начинают сканировать миллионы строк. Для PostgreSQL аналогично важны autovacuum и периодический ANALYZE.

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

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

Уровень 3: сама база данных

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

Журнал регистрации стоит периодически сокращать, оставляя разумную глубину истории. Для регистров накопления и сведений проверьте, не копятся ли данные, которые уже не нужны для учёта. Свертка базы (отсечение старых периодов с переносом остатков) — радикальный, но рабочий способ для баз, которым много лет.

Тестирование и исправление информационной базы (в файловом варианте — обязательно с реструктуризацией) помогает устранить физическую фрагментацию и ошибки таблиц. В клиент-серверном варианте аналогичную роль играет обслуживание на уровне СУБД. Выполняйте такие операции в нерабочее время: они блокируют базу и на больших объёмах могут занять часы.

Уровень 4: конфигурация и код

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

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

Отдельный случай — доработки, сделанные давно и без учёта роста объёмов. Код, который нормально работал на базе в 5 ГБ, может деградировать на 50 ГБ. Если тормоза начались после обновления конфигурации или установки расширения — проверьте именно изменённые объекты.

Полезно вести простой журнал замеров: дата, операция, время выполнения, что меняли. Без такой истории легко потерять, какое из пяти изменений реально помогло, а какое — совпало по времени с падением нагрузки.
ПЗ
Практическое замечание

Файловая база: особый случай

Файловый режим работы 1С (база в виде файла 1Cv8.1CD на общем сетевом ресурсе) имеет жёсткие архитектурные ограничения. Он рассчитан на небольшое число одновременных пользователей и умеренные объёмы. При росте базы и числа пользователей блокировки на уровне файла делают работу всё медленнее, и никакая настройка сервера это не вылечит полностью.

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

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

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

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

Файловая база, пользователей больше 10–15, тормоза постоянныеПланируйте переход на клиент-серверный вариант
Клиент-сервер, диски загружены на 100% при умеренном CPUПереносите базу на SSD и увеличивайте память для кэша СУБД
Тормозит одна конкретная операция, остальное работает нормальноДелайте замер производительности и оптимизируйте код этой операции
Тормоза по расписанию в одно времяИщите и разносите по времени бэкапы, регламентные задания и антивирусные проверки

Частые ошибки при борьбе с тормозами

Самая дорогая ошибка — покупка нового сервера без диагностики. Если причина в неоптимальном запросе или отсутствии индекса, более мощное железо даст временное и частичное улучшение, а проблема вернётся с ростом базы. Сначала замерьте, потом тратьте.

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

Третья ошибка — игнорирование регламентных заданий. Задачи обмена, расчёта итогов, полнотекстового поиска, запущенные каждые несколько минут, создают постоянный фон нагрузки. Ревизия расписаний часто даёт бесплатный прирост производительности.

Типичные ошибки
01
Покупка нового железа без диагностики — деньги потрачены, узкое место осталось
02
Несколько изменений за один раз — невозможно понять, что сработало
03
Оптимизация без резервной копии — риск потери данных при ошибке
04
Игнорирование регламентных заданий — фоновая нагрузка съедает ресурсы
05
Надежда, что обновление платформы само всё ускорит — обычно эффект незначителен

Как проверить, что стало лучше

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

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

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

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

Время проведения типового документа
Норма

Сопоставимо с исходным замером или быстрее, стабильно в течение дня

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

Улучшение есть только в часы низкой нагрузки

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

Есть запас, нет постоянной 100% утилизации

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

Диск по-прежнему является узким местом

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

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

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

Те же запросы по-прежнему попадают в журнал

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

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

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

Поможет ли обновление платформы 1С ускорить работу?

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

Сколько пользователей выдерживает файловая база?

Точного порога нет: он зависит от объёма базы, интенсивности работы и железа. Ориентировочно файловый режим комфортен для небольших коллективов; при росте числа одновременных пользователей и объёма данных блокировки файла начинают доминировать, и переход на клиент-серверный вариант становится оправданным.

Опасно ли делать тестирование и исправление базы?

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

Тормозит только один отчёт — куда смотреть?

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

Как понять, что пора привлекать специалиста?

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

Итог

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

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