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

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

Как ускорить работу 1С: практическое руководство

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

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

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

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

Шаг 1. Найдите узкое место, а не гадайте

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

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

Медленно у всех и вездеПроблема инфраструктуры

Загрузку CPU, RAM и дисков на сервере СУБД и сервере 1С

Медленно в одной операцииПроблема кода или данных

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

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

Версию платформы, антивирус, задержки сети

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

Фоновые задания, бэкапы, антивирусное сканирование

Для точной диагностики используйте встроенные инструменты: технологический журнал платформы (события DBMSSQL, DBPOSTGRS, LOCK), замер производительности в конфигураторе (Отладка → Замер производительности) и счётчики мониторинга СУБД. В MS SQL удобно смотреть актуальные ожидания и планы запросов через Activity Monitor или запросы к динамическим представлениям.

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

Файловый режим работы — первое, что стоит пересмотреть при росте числа пользователей. При активной работе более чем 5–10 пользователей файловая база по сети становится главным источником тормозов и блокировок. Переход на клиент-серверный режим (MS SQL Server, PostgreSQL) — самое эффективное одноразовое вложение в производительность.

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

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

Шаг 3. Настройте СУБД правильно

Установленная «из коробки» СУБД почти всегда настроена неоптимально для 1С. Для MS SQL Server обратите внимание на ограничение памяти (max server memory): без него SQL Server может занять почти всю память, оставив ОС и серверу 1С крошки. Задайте лимит с запасом под операционную систему и другие службы.

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

Для PostgreSQL, используемого с 1С, критичны параметры shared_buffers, work_mem и effective_cache_size, а также регулярное выполнение VACUUM и ANALYZE. Используйте сборку PostgreSQL, адаптированную для 1С, — в ней учтены особенности работы платформы с планировщиком запросов.

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

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

База на файловом режиме и работает более 5–7 пользователейПланируйте переход на клиент-серверный режим с MS SQL или PostgreSQL
SQL Server занимает почти всю память сервераОграничьте max server memory с запасом под ОС и сервер 1С
Отчёты внезапно стали медленнее без изменений в кодеОбновите статистику и проверьте планы запросов в СУБД
База растёт рывками с паузами при записиУвеличьте начальный размер файлов и шаг автоприращения

Шаг 4. Регулярно обслуживайте базу данных

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

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

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

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

Шаг 5. Оптимизируйте код и запросы

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

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

bsl
// Плохо: запрос в цикле
Для Каждого Строка Из ТаблицаТоваров Цикл
    Запрос.УстановитьПараметр("Номенклатура", Строка.Номенклатура);
    Результат = Запрос.Выполнить().Выбрать();
КонецЦикла;

// Хорошо: один запрос по всей таблице значений
Запрос.УстановитьПараметр("ТаблицаТоваров", ТаблицаТоваров);
Результат = Запрос.Выполнить().Выгрузить();

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

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

Шаг 6. Ускорьте клиентскую часть и регламентные задания

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

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

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

Шаг 7. Проверьте результат и закрепите эффект

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

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

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

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

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

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

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

Вернулось к прежним значениям через несколько дней — проблема не устранена

Счётчики диска на сервере СУБД
Норма

Очередь диска низкая, время отклика в норме

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

Постоянная очередь и высокие задержки — диски остаются узким местом

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

Снижается после регламентной переиндексации

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

Быстро растёт снова — проверьте настройки fillfactor и интенсивность вставок

Технологический журнал
Норма

Длительных запросов и блокировок мало

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

Регулярные события TDEADLOCK, TTIMEOUT — нужен анализ кода

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

Итог

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

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

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

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

Не всегда. Если узкое место — неоптимальный запрос, отсутствие индекса или блокировки, новый сервер даст лишь временное и частичное улучшение. Сначала выполните диагностику: замеры производительности, анализ счётчиков и технологического журнала. Железо оправданно обновлять, когда подтверждено, что ресурсов (диски, память) объективно не хватает.

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

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

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

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

Может ли антивирус реально замедлять 1С?

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

Отчёт формируется 15 минут. С чего начать?

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

Безопасно ли чистить журнал регистрации для ускорения?

Сокращение старых записей журнала регистрации безопасно и полезно: огромный журнал замедляет открытие и работу с ним, а в файловых базах влияет на общий размер. Используйте штатную функцию сокращения (Администрирование → Обслуживание) и храните историю только за необходимый период. Перед сокращением сделайте резервную копию, если история действий пользователей может понадобиться.