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

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

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

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

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

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

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

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

Главный инструмент диагностики — замер производительности, встроенный в конфигуратор 1С (меню «Отладка» → «Замер производительности»). Он показывает, какие строки кода и запросы занимают больше всего времени при выполнении конкретной операции. Запустите замер, воспроизведите «тормозящее» действие и изучите результат: вы увидите, сколько времени ушло на каждый запрос к базе.

Для клиент-серверного варианта дополнительно используйте технологический журнал (ТЖ) — он фиксирует длительные вызовы СУБД, блокировки и ошибки. Настройте сбор событий DBMSSQL/DBPOSTGRS с длительностью свыше заданного порога, и вы точно узнаете, какие запросы выполняются дольше нормы.

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

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

Проверить его ПК, сетевой кабель, Wi-Fi, антивирус

Тормозит всё и у всехПроблема сервера или СУБД

Смотреть память, диски, процессор на сервере

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

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

Периодические подвисанияФоновые процессы или блокировки

Проверить расписание бэкапов, обменов, технологический журнал

Оптимизация сервера и оборудования

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

Дисковая подсистема — второй по важности фактор. База данных на медленных HDD будет тормозить даже при мощном процессоре. Перенос базы на SSD обычно даёт заметный прирост на операциях чтения и записи. Желательно разнести файлы данных и журнал транзакций на разные физические диски — это снижает конкуренцию за дисковые операции.

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

Настройка СУБД: MS SQL и PostgreSQL

Для MS SQL Server проверьте несколько базовых параметров. Установите ограничение max server memory, чтобы SQL Server не отбирал всю память у ОС. Убедитесь, что для tempdb создано несколько файлов данных — при интенсивной работе 1С временные таблицы активно используются, и один файл tempdb становится узким местом. Автоувеличение файлов базы лучше задавать фиксированным шагом, а не процентом, чтобы избежать частых фрагментирующих расширений.

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

Для PostgreSQL (включая сборки, адаптированные под 1С) ключевые параметры — shared_buffers (обычно порядка четверти доступной ОЗУ), work_mem и effective_cache_size. Отключение autovacuum или его слишком редкий запуск приводит к разрастанию таблиц и деградации запросов — следите, чтобы автоочистка работала и успевала обрабатывать активно изменяемые таблицы.

Обслуживание базы 1С: итоги, журналы и регламентные операции

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

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

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

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

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

Если замеры показали, что проблема в конкретных запросах, типовые приёмы оптимизации таковы: заменяйте запросы в цикле на один запрос с пакетной обработкой, используйте временные таблицы и их индексирование, избегайте выборки «ВЫБРАТЬ *» — запрашивайте только нужные поля. Соединения с виртуальными таблицами без отборов — классическая причина тяжёлых запросов: отбор нужно накладывать до соединения, через параметры виртуальной таблицы.

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

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

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

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

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

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

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

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

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

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

Когда самостоятельных мер недостаточно

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

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

Итог

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

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

Частые вопросы об ускорении 1С

Что даёт самый быстрый эффект без затрат?

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

Поможет ли увеличение оперативной памяти на компьютере бухгалтера?

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

Файловая база на 10 пользователей тормозит — что делать?

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

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

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

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

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

Ускорит ли работу переход на SSD, если база на SQL Server?

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