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

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

Как оптимизировать 1С 8.3 и ускорить работу системы

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

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

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

Большинство описанных операций требуют прав администратора кластера 1С и СУБД. Перед любыми изменениями в продуктивной базе обязательно создайте резервную копию и по возможности проверьте настройки на тестовой копии.

Как определить, где именно теряется скорость

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

Для замеров используйте встроенные инструменты. В конфигураторе включите режим «Отладка → Замер производительности» и воспроизведите медленную операцию — вы увидите, какие строки кода и запросы занимают больше всего времени. Для клиент-серверного варианта полезен технологический журнал кластера: настройте сбор событий DBMSSQL с длительностью, и вы получите список тяжёлых запросов к базе.

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

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

Загрузку CPU и дисков на сервере СУБД, ожидания блокировок

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

Сеть, антивирус, ресурсы клиентского ПК

Медленный один отчётПроблема в запросе

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

Всё медленно по утрамРегламентные задачи

Расписание обновления статистики и обменов

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

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

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

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

Настройка кластера серверов 1С

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

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

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

Файловый режим: ограничения и что можно сделать

Файловый вариант работы (база в виде файла 1Cv8.1CD) принципиально ограничен в производительности: вся обработка данных идёт на компьютере пользователя, а при сетевом доступе файл передаётся по сети. Если база размещена на сетевой папке и с ней работают несколько пользователей, медленная работа — норма, а не поломка. Главная оптимизация здесь — перевод базы на клиент-серверный вариант или публикацию на веб-сервере.

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

Следите за размером файла базы. При приближении к нескольким гигабайтам файловый режим становится нестабильным: растёт риск повреждения файла при сбое сети или питания. Это прямой сигнал к миграции на СУБД.

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

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

Файловая база, 1–2 пользователя, размер до 1–2 ГБДостаточно SSD, локального размещения и регулярного сжатия таблиц
Файловая база по сети, 3 и более пользователейПланируйте переход на клиент-серверный вариант или веб-сервер
Клиент-сервер, тормоза у всехПроверяйте настройки SQL Server, статистику и блокировки
Медленный конкретный отчёт или документДелайте замер производительности и оптимизируйте запрос

Оптимизация конфигурации и запросов

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

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

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

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

Регламентное обслуживание базы

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

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

Рассмотрите свёртку итогов и архивацию старых периодов, если база ведётся много лет. Хранение десятилетней истории в рабочей базе увеличивает время любых выборок и резервного копирования.

Типичные ошибки
01
Оптимизация вслепую без замера: меняются настройки наугад, а узкое место остаётся нетронутым
02
Создание избыточных индексов на все спорные поля: ускоряется чтение, но замедляется запись и проведение документов
03
Хранение журнала регистрации без ограничения срока: таблица разрастается и тормозит всю базу
04
Одновременный запуск всех регламентных заданий ночью в одно время: сервер перегружается, задания конфликтуют
05
Обновление статистики в разгар рабочего дня: пользователи испытывают блокировки и тайм-ауты

Как проверить, что оптимизация сработала

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

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

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

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

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

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

Заметно сократилось по замеру до/после

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

Время не изменилось или выросло

Память rphost
Норма

Стабильное потребление без постоянного роста

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

Процессы раздуваются и перезапускаются

Блокировки в СУБД
Норма

Кратковременные, без очередей ожидания

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

Длинные цепочки ожиданий в пиковые часы

Диск с базой и журналом
Норма

Запас свободного места и низкая очередь диска

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

Диск заполнен или постоянно загружен на 100%

Часто задаваемые вопросы

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

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

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

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

Как часто нужно обновлять статистику в SQL Server?

Для активно изменяемых баз разумна ежедневная регламентная задача в нерабочее время. Для баз с умеренной активностью достаточно 2–3 раз в неделю. Признак того, что статистика устарела, — внезапное замедление привычных операций без изменения нагрузки.

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

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

Можно ли ускорить 1С на стороне клиента?

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

Когда стоит привлекать специалиста вместо самостоятельной настройки?

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

Итог

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

Оптимизация 1С 8.3 — это цикл «замер → локализация узкого места → точечное исправление → повторный замер». Основные резервы: обслуживание СУБД (статистика, индексы, tempdb), грамотная настройка кластера, отказ от запросов в циклах и регламентная чистка разросшихся таблиц. Все изменения выполняйте только после резервного копирования.