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

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

Что влияет на производительность 1С и как её повысить

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

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

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

Ниже разобраны основные группы факторов, способы диагностики и безопасные шаги оптимизации, которые можно выполнить штатными средствами платформы и СУБД.

Аппаратные ресурсы: диски, память и процессор

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

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

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

Диск занят на 90–100% при простое запросовУзкое место — подсистема хранения

Проверьте тип дисков, размещение базы и журнала транзакций

Высокая загрузка CPU одним ядромТяжёлый запрос или расчёт в коде

Найдите операцию через технологический журнал

Память занята почти полностьюНедостаток ОЗУ или утечка в rphost

Проверьте лимиты памяти СУБД и перезапуск рабочих процессов

Тормоза только в часы пикКонкуренция пользователей и блокировки

Анализируйте взаимоблокировки и параллельность сеансов

Настройки СУБД и сервера 1С

Большинство промышленных баз 1С работают на MS SQL Server или PostgreSQL. Настройки по умолчанию редко оптимальны: например, неограниченное потребление памяти SQL Server приводит к вытеснению других процессов, а малое значение work_mem в PostgreSQL заставляет сортировки уходить на диск. Минимальный набор — ограничить максимум памяти СУБД, настроить tempdb (для SQL Server) и регулярно выполнять обслуживание индексов и статистики.

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

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

Размер базы и состояние данных

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

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

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

Конфигурация: запросы, код и архитектура решений

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

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

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

Порядок поиска узкого места
  1. 1
    Зафиксируйте симптом: какая операция, у каких пользователей, в какое время тормозит
  2. 2
    Включите технологический журнал с фильтром по длительным событиям (DBMSSQL/DBPOSTGRS, CALL)
  3. 3
    Замерьте типовую операцию до изменений и сохраните результат как базовую точку
  4. 4
    Проверьте загрузку сервера: диск, память, CPU в момент проблемы
  5. 5
    Найдите самый длительный запрос или участок кода и оптимизируйте именно его
  6. 6
    Повторите замер и сравните с базовой точкой

Блокировки, фоновые задания и параллельная работа

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

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

Полезно вести список всех регламентных заданий с их расписанием и длительностью. Нередко обнаруживается, что какое-то задание запускается каждые 5 минут и выполняется по 4 минуты, фактически не давая системе передышки.

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

Сеть и клиентская часть

В клиент-серверном режиме сеть между клиентом, сервером 1С и СУБД влияет на отзывчивость интерфейса. Высокие задержки (особенно при работе через VPN или Wi-Fi) делают «тяжёлыми» даже простые операции, потому что каждый серверный вызов требует сетевого обмена. Признак сетевой проблемы: на сервере всё быстро, а у пользователей медленно, и деградация одинакова для всех операций.

Для удалённых сотрудников веб-клиент или терминальный доступ (RDP) обычно работают стабильнее, чем тонкий клиент через медленный канал, поскольку сокращается объём передаваемых данных или число сетевых обращений. На самом клиенте влияют антивирус (исключите каталоги 1С из проверки в реальном времени), недостаток памяти и устаревшая версия платформы.

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

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

Медленно у всех пользователей и на сервере, диск загруженПеренесите базу и журнал транзакций на SSD, проверьте обслуживание СУБД
Медленно только в часы пик, на сервере ресурсы свободныАнализируйте блокировки и расписание фоновых заданий
Тормозит одна конкретная операция или отчётСнимите замер производительности и оптимизируйте запрос или код
На сервере быстро, у удалённых пользователей медленноПроверьте сеть и переведите пользователей на веб-клиент или RDP
База выросла, всё деградирует постепенноПланируйте свёртку периодов, сокращение журнала регистрации и обслуживание индексов

Как закрепить результат и не допустить повторной деградации

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

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

Итог

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

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

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

Сколько оперативной памяти нужно серверу 1С?

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

Почему 1С тормозит только по утрам или в конце месяца?

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

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

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

Что безопасно сделать самостоятельно без привлечения специалиста?

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

Как понять, что проблема в блокировках, а не в железе?

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

Стоит ли переходить с файловой базы на клиент-серверную?

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