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

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

Как увеличить скорость работы 1С

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

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

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

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

Как найти узкое место: диагностика перед оптимизацией

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

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

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

Формы открываются 5–10 секундПроблема на клиенте или сервере 1С

Проверить антивирус на клиенте, загрузку сервера приложений, версию платформы

Документы проводятся минутамиТяжёлые запросы или блокировки

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

Отчёты строятся долго у всехНеоптимальные запросы или отсутствие индексов

Замер в конфигураторе, анализ планов запросов в СУБД

Тормозит только по сети из филиалаПропускная способность и задержки канала

Проверить пинг и потери пакетов, рассмотреть тонкий/веб-клиент или RDP

Оптимизация сервера и СУБД

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

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

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

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

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

Для файловых баз критично периодическое тестирование и исправление средствами конфигуратора — оно перестраивает таблицы и устраняет накопленные внутренние проблемы файла. Выполняется строго в монопольном режиме и только после копии файла 1Cv8.1CD.

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

Порядок регламентного обслуживания
  1. 1
    Сделайте полную резервную копию базы и проверьте, что она восстанавливается
  2. 2
    Выполните обновление статистики по всем таблицам
  3. 3
    Перестройте или реорганизуйте индексы с высокой фрагментацией
  4. 4
    Очистите устаревшие версии объектов, историю и очереди обменов
  5. 5
    Проверьте выполнение регламентных заданий в консоли заданий
  6. 6
    Сравните время типовых операций до и после обслуживания

Настройка клиентских рабочих мест

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

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

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

Сравнение вариантов подключения

Толстый клиент

Подходит для локальной сети с быстрым каналом; по медленным каналам работает крайне медленно из-за объёма передаваемых данных

Тонкий клиент

Оптимален для филиалов и VPN: минимальный трафик, вся логика на сервере; требует корректной публикации и стабильного соединения

Веб-клиент

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

Терминальный доступ (RDP)

Все вычисления на терминальном сервере рядом с сервером 1С; хорош для слабых каналов, но требует лицензий и мощного терминального сервера

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

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

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

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

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

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

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

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

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

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

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

Очередь диска на сервере СУБД стабильно высокаяПереносите базу и журнал на SSD/NVMe, разносите tempdb и данные по разным дискам
Память сервера уходит в файл подкачкиУвеличьте ОЗУ и ограничьте потребление памяти СУБД и рабочих процессов 1С
Замер показывает один запрос на 80% времени операцииОптимизируйте запрос и индексы, железо здесь не поможет
Тормозит только удалённый филиалПереведите пользователей на тонкий клиент, веб-клиент или терминальный доступ
Медленно у всех и везде после обновления конфигурацииОткатите на тестовую копию, сравните замеры до и после, ищите регрессию в доработках

Проверка результата и контрольные точки

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

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

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

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

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

Сократилось или осталось прежним, стабильно при повторах

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

Вырасло после изменений или сильно колеблется

Очередь диска на сервере СУБД в часы пик
Норма

Близка к нулю, всплески кратковременны

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

Стабильно выше 1–2, диск загружен на 100%

Свободная память на сервере
Норма

Есть резерв, файл подкачки не растёт

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

Память исчерпана, активный свопинг

Выполнение регламентных заданий
Норма

Все задания завершаются без ошибок по расписанию

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

Задания падают или накапливаются в очереди

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

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

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

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

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

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

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

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

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

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

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

Опасно ли чистить кэш 1С на клиенте?

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

Итог

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

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