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

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

1С: как ускорить работу программы и базы данных

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

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

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

Ниже — практический план от диагностики до конкретных настроек, который подходит как для файловых баз, так и для клиент-серверных решений на SQL Server или PostgreSQL.

Шаг 1. Найдите, где именно теряется время

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

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

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

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

Загрузку CPU и RAM сервера, настройки СУБД, размер базы

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

Антивирус на его ПК, сетевое подключение, версию платформы

Тормозят только отчётыПроблема в запросах и индексах

План запроса, актуальность статистики, итоги регистров

Медленно в определённые часыКонкуренция за ресурсы

Регламентные задания, обмены данными, бэкапы в это же время

Шаг 2. Проверьте аппаратные ресурсы и сеть

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

Диски — второй узкий участок. База данных на обычных HDD работает заметно медленнее, чем на SSD или NVMe. Если миграция на SSD невозможна, хотя бы разнесите файлы данных и журнал транзакций на разные физические диски.

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

Шаг 3. Настройте регламентное обслуживание СУБД

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

Настройте автоматическое выполнение этих операций в нерабочее время — например, ночью. Для MS SQL Server это делается через планы обслуживания (Maintenance Plans) или скрипты Ola Hallengren, для PostgreSQL — через autovacuum и периодический ANALYZE.

Также проверьте модель восстановления базы. Полная модель (Full) без регулярного бэкапа журнала транзакций приводит к разрастанию LDF-файла до десятков и сотен гигабайт, что замедляет все операции записи. Если вам не нужно восстановление на произвольный момент времени, переключите базу в простую модель (Simple).

Обслуживание базы на MS SQL Server
  1. 1
    Сделайте полную резервную копию базы
  2. 2
    Обновите статистику по всем таблицам (UPDATE STATISTICS или sp_updatestats)
  3. 3
    Перестройте индексы с фрагментацией выше 30%, реорганизуйте при фрагментации 10–30%
  4. 4
    Проверьте размер журнала транзакций и при необходимости сожмите после бэкапа
  5. 5
    Настройте еженедельное автоматическое повторение в нерабочее время
  6. 6
    Замерьте время ключевых операций и сравните с исходными значениями

Шаг 4. Уменьшите объём данных и нагрузку от регламентных заданий

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

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

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

Типичные ошибки
01
Покупка нового сервера без диагностики — деньги потрачены, а проблема была в устаревшей статистике СУБД
02
Одновременный запуск свертки базы и обменов данными — конфликты и ошибки в распределённых узлах
03
Отключение всех регламентных заданий «подряд» — перестают работать обмены, расчёт итогов и напоминания
04
Хранение бэкапов на том же диске, что и база — при отказе диска теряется всё сразу
05
Установка 32-битного клиента на машины с большими отчётами — ошибки нехватки памяти при формировании

Шаг 5. Обновите платформу и проверьте режим работы

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

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

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

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

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

База файловая, пользователей больше 5–7, частые конфликтыПланируйте переход на клиент-серверный режим (SQL Server или PostgreSQL)
Медленные отчёты при нормальной работе документовАнализируйте планы запросов и индексы, проверяйте итоги регистров
Тормоза начались внезапно без изменений в системеПроверяйте статистику СУБД, фрагментацию индексов и рост журнала транзакций
Медленно только у части пользователей в другом офисеПроблема в канале связи — рассмотрите терминальный доступ или веб-клиент

Шаг 6. Оптимизируйте код и запросы, если есть доработки

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

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

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

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

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

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

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

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

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

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

Сократилось по сравнению с исходным замером

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

Не изменилось или выросло — узкое место не найдено

Фрагментация индексов в СУБД
Норма

Ниже 10–15% по основным таблицам

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

Быстро растёт снова — проверьте расписание обслуживания

Загрузка CPU и RAM сервера в час пик
Норма

Есть запас по памяти, нет постоянной 100% загрузки

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

Постоянная утилизация под 100% — ресурсов не хватает

Данные в отчётах до и после свертки
Норма

Итоги по текущему периоду совпадают

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

Расхождения — откатите изменения из резервной копии

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

Ускорит ли работу 1С переход на SSD?

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

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

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

Можно ли ускорить файловую базу без перехода на SQL?

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

Опасно ли отключать регламентные задания?

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

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

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

Нужно ли обновлять конфигурацию ради скорости?

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

Итог

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

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