Медленная работа 1С:Предприятие — головная боль бухгалтеров, программистов и предпринимателей. Зависания при формировании отчетов, долгая загрузка документов, "подвисающие" формы — эти проблемы съедают рабочее время и нервы. Но в 90% случаев производительность можно повысить без покупки нового сервера или перехода на облако.

В этой статье мы разберем системные и программные методы ускорения 1С — от очевидных (добавление оперативной памяти) до неочевидных (оптимизация запросов через планы выполнения). Вы узнаете, какие настройки дают максимальный прирост скорости при минимальных затратах, а где лучше не экономить. Все рекомендации протестированы на платформах 8.3.18–8.3.22 и актуальны для конфигураций Бухгалтерия 3.0, УТ 11, ЗУП 3.1 и КА 2.5.

Важно: перед внесением изменений сделайте резервную копию базы и проверьте производительность до и после оптимизации (например, через Тест производительности в конфигураторе). Это поможет объективно оценить эффект.

1. Аппаратные улучшения: железо, которое реально ускоряет 1С

Первое, что приходит в голову при тормозах — обновить "железо". Но не все апгрейды одинаково полезны. Например, замена видеокарты на игровую модель не даст никакого эффекта, а вот добавление RAM и правильный выбор HDD/SSD могут ускорить работу в 2–3 раза.

Ключевые компоненты, влияющие на скорость 1С:

  • 🖥️ Процессор (CPU): Оптимально — Intel Core i5/i7 или AMD Ryzen 5/7 с тактовой частотой от 3.5 ГГц. Для серверных решений — Xeon E5 или EPYC.
  • 🧠 Оперативная память (RAM): Минимум 16 ГБ для клиентской машины, 32+ ГБ для сервера. 1С активно использует кэш в памяти — чем её больше, тем реже происходит обращение к диску.
  • 💾 Накопитель: SSD NVMe (PCIe 3.0/4.0) ускоряет работу с базой в 5–10 раз по сравнению с HDD. Для сервера лучше использовать RAID-массив из SSD.
  • 🌐 Сеть: Для файловых баз — гигабитное подключение (1 Гбит/с). Для клиент-серверного варианта — 10 Гбит/с между сервером и рабочими станциями.
Компонент Минимальные требования Рекомендуемая конфигурация Прирост скорости
CPU Intel Core i3 / AMD Ryzen 3 Intel Core i7-12700 / AMD Ryzen 7 5800X до 40%
RAM 8 ГБ 32 ГБ DDR4 3200 МГц до 200%
Накопитель HDD 7200 RPM SSD NVMe (Samsung 980 Pro, WD Black SN850) до 800%
Сеть 100 Мбит/с 10 Гбит/с (SFP+) до 30%

⚠️ Внимание: Если вы используете терминальный доступ (RDP, ThinClient), то мощность сервера терминалов становится критичной. В этом случае приоритет — CPU с большим количеством ядер (например, Intel Xeon Gold или AMD EPYC 7xx2).

📊 Какой компонент вы планируете обновить в первую очередь?
Процессор
Оперативную память
Жесткий диск на SSD
Сетевое оборудование
Ничего, буду оптимизировать программно

2. Оптимизация сервера 1С: настройки для максимальной производительности

Даже на мощном сервере 1С может тормозить из-за неверных настроек серверной части. Основные точки оптимизации:

  • 🔧 Кэш сервера 1С: Увеличьте размер кэша в ragent.conf (параметр cacheSize). Оптимальное значение — 1024 (1 ГБ) на каждые 10 пользователей.
  • 📊 Пул соединений: В файле srvinfo установите MaxPoolSize=100 и MinPoolSize=10 (для баз с 20+ пользователями).
  • 🔄 Фоновые задания: Отключите ненужные регламентные задачи в Панель управления → Фоновые задания.
  • 🛡️ Антивирус: Исключите из проверки папки с базами 1С (например, C:\Program Files\1cv8\ и каталоги баз).

Для клиент-серверного варианта критично настроить SQL-сервер:

  • Установите Max Degree of Parallelism (MAXDOP) = 4 (для процессоров с 8+ ядрами).
  • Выделите не менее 50% RAM сервера под Microsoft SQL Server (в настройках памяти).
  • Перенесите файлы .mdf и .ldf на отдельные физические диски.

⚠️ Внимание: После изменений в ragent.conf или srvinfo перезапустите службу агента сервера 1С через services.msc. В противном случае настройки не применятся.

☑️ Оптимизация сервера 1С

Выполнено: 0 / 6

3. Оптимизация клиентской части: настройки 1С на рабочих станциях

Даже если сервер настроен идеально, медленные клиентские машины могут сводить на нет все усилия. Вот что можно сделать на стороне пользователя:

  • 🖥️ Режим запуска: Используйте Толстый клиент для работы с большими отчетами и Тонкий клиент — для повседневных задач. Веб-клиент подходит только для простейших операций.
  • 📂 Кэш клиента: Очищайте кэш раз в месяц через %LocalAppData%\1C\1cv8\ (удаляйте папки с версиями конфигураций).
  • 🔄 Обновления: Отключите автоматическую проверку обновлений в Сервис → Параметры → Обновление программы.
  • 🎨 Интерфейс: Переключитесь на Такси вместо Управляемого — он потребляет меньше ресурсов.

Для ускорения работы с формами:

  1. Отключите ненужные панели (Вид → Панели).
  2. Уменьшите количество одновременно открытых окон (оптимально — не более 5).
  3. Используйте Быстрый выбор (Ctrl+Shift+F) вместо ручного поиска.

⚠️ Внимание: Если пользователи работают через терминальный сервер (RDS), то настройки кэша и интерфейса применяются на стороне сервера, а не на локальной машине!

💡

Чтобы ускорить открытие справочников, добавьте часто используемые элементы в Избранное (клик правой кнопкой → Добавить в избранное). Это сокращает количество запросов к базе.

4. Оптимизация базы данных: чистка и дефрагментация

Со временем база 1С "зарастает" мусором: удаленными документами, временными таблицами, фрагментированными индексами. Это увеличивает размер файла и замедляет запросы. Регулярная чистка может ускорить работу на 30–50%.

Основные процедуры:

  • 🧹 Тестирование и исправление: Запустите chdbfl.exe с ключами:
    chdbfl.exe /F "C:\Базы\base.1CD" /IBStats

    Это покажет уровень фрагментации таблиц.

  • 🗑️ Очистка истории: Удалите старые данные через Администрирование → Поддержка и обслуживание → Очистка истории.
  • 🔄 Реиндексация: Выполните в SQL Management Studio:
    EXEC sp_MSforeachtable 'ALTER INDEX ALL ON ? REBUILD'
  • 📦 Выгрузка/загрузка: Для сильно фрагментированных баз поможет полная выгрузка и загрузка через dt/cf файлы.

Для баз на PostgreSQL используйте:

VACUUM FULL ANALYZE;
Процедура Частота Время выполнения Эффект
Тестирование (chdbfl) Раз в месяц 10–60 минут Диагностика фрагментации
Очистка истории Раз в квартал 5–30 минут Уменьшение размера базы
Реиндексация Раз в полгода 1–4 часа Ускорение запросов
Выгрузка/загрузка Раз в год 2–8 часов Полная дефрагментация

⚠️ Внимание: Перед выгрузкой/загрузкой базы проверьте свободное место на диске — оно должно превышать размер базы в 2–3 раза. Иначе процесс прервется с ошибкой.

Что будет если не чистить базу?

Без регулярной очистки база разрастается до сотен гигабайт, даже если реальных данных в ней на 10–20 ГБ. Это приводит к:

- замедлению резервного копирования в 5–10 раз;

- увеличению времени выполнения запросов (из-за фрагментации индексов);

- риску ошибок при обновлении конфигурации (нехватка места для временных файлов).

5. Оптимизация запросов и конфигурации: работа для программистов

Если база чистая, железо мощное, а 1С все равно тормозит — проблема в неоптимизированном коде. Типичные "узкие места":

  • 🐢 Запросы без индексов: Проверьте планы выполнения через Объяснить запрос в конфигураторе. Если в плане есть Table Scan — добавьте индекс.
  • 🔄 Циклы в коде: Заменяйте Для Каждого на пакетные операции (например, Запрос.ВыполнитьПакет()).
  • 📊 Избыточные данные: Удалите неиспользуемые реквизиты и справочники через Конфигуратор → Анализ использования.
  • 🔗 Блокировки: Используйте УстановитьБлокировкуДанных() только там, где это критично.

Пример оптимизации запроса:

До (медленно):

Выбрать РазрешитьГруппировкуПоПолям(Истина)

Номенклатура.Наименование Как Наименование,

Сумма(Документ.Сумма) Как Сумма

Из

Документ.Товары Как Документ

ЛевоеСоединение Справочник.Номенклатура Как Номенклатура

По Документ.Номенклатура = Номенклатура.Ссылка

Где

Документ.Дата Между &НачалоПериода И &КонецПериода

Сгруппировать По

Номенклатура.Наименование

После (быстро):

Выбрать РазрешитьГруппировкуПоПолям(Истина)

Номенклатура.Наименование Как Наименование,

Сумма(Документ.Сумма) Как Сумма

Из

Документ.Товары Как Документ

ВнутреннееСоединение Справочник.Номенклатура Как Номенклатура

По Документ.Номенклатура = Номенклатура.Ссылка

Где

Документ.Дата Между &НачалоПериода И &КонецПериода

И Документ.ПометкаУдаления = Ложь

Сгруппировать По

Номенклатура.Ссылка // Группировка по ссылке, а не по наименованию

Индексировать По

Документ.Дата,

Документ.Номенклатура

⚠️ Внимание: После изменений в конфигурации обновите базу данных (Конфигуратор → Администрирование → Обновить базу данных). Иначе новые индексы не будут созданы!

💡

Добавление индекса на поле, используемое в условии WHERE или JOIN, может ускорить запрос в 10–100 раз. Но не переусердствуйте — избыточные индексы замедляют запись данных.

6. Альтернативные способы ускорения: облако, RAS и другие хитрости

Если традиционные методы не помогают, рассмотрите нетривиальные решения:

  • ☁️ Облачная 1С: Сервисы вроде 1С:Fresh, КорпСофт24 или Cloud1C предлагают готовые оптимизированные инфраструктуры. Подходит для небольших компаний (до 50 пользователей).
  • 🖥️ Терминальный доступ (RAS/RDP): Разверните Windows Server с Remote Desktop Services и установите 1С на сервер. Пользователи подключаются по RDP — вся нагрузка ложится на сервер.
  • 🔄 Репликация баз: Для филиалов настройте репликацию через УРИБ или УРБД. Это снизит нагрузку на центральный сервер.
  • 📊 Отчеты по расписанию: Настройте формирование тяжелых отчетов (например, ОСВ или Анализ субконто) ночью через Регламентные задания.

Для крупных предприятий (100+ пользователей) рассмотрите:

  • 🏢 Кластер серверов 1С: Распределите нагрузку между несколькими серверами.
  • 📈 Шардирование базы: Разделите базу на логические части (например, по годам или подразделениям).

⚠️ Внимание: При переходе в облако учитывайте зависимость от канала интернет. Если у вас нестабильное подключение (пакеты теряются, пинг > 50 мс), то облачная 1С может работать медленнее локальной.

📊 Какой способ ускорения вы еще не пробовали?
Облачную 1С
Терминальный доступ (RDP)
Репликацию баз
Шардирование
Все перепробовал, ничего не помогает

7. Мониторинг и профилактика: как не допустить повторных тормозов

Оптимизация — не разовое мероприятие, а постоянный процесс. Чтобы 1С не начала тормозить снова, настройте:

  • 📊 Мониторинг производительности: Используйте PerfMon (Windows) или Grafana + Prometheus для отслеживания нагрузки на CPU, RAM и диск.
  • 📈 Журнал медленных запросов: В SQL Server включите Extended Events для записи запросов длительностью > 1 секунды.
  • 🔄 Автоочистка: Настройте регламентное задание для ежемесячной очистки истории и реиндексации.
  • 🛡️ Резервное копирование: Проверяйте скорость бэкапов — если она упала, это сигнал о фрагментации базы.

Полезные инструменты для диагностики:

Инструмент Назначение Где взять
1С:Анализ производительности Поиск медленных запросов и блокировок Входит в дистрибутив платформы
SQL Server Profiler Мониторинг запросов к базе Входит в SQL Server Management Studio
Process Explorer Анализ потребления ресурсов процессами 1С Sysinternals
DBMonitor Визуализация планов выполнения запросов Сторонний инструмент (бесплатная версия)

⚠️ Внимание: Если в журнале SQL Server появились ошибки вида timeout expired или deadlock, это сигнал о необходимости оптимизации запросов или увеличения ресурсов сервера.

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

❓ Почему 1С тормозит при открытии больших отчетов (ОСВ, Анализ субконто)?

Это типичная проблема при работе с большими объемами данных. Решения:

  1. Разбейте отчет по периодам (например, по кварталам вместо года).
  2. Используйте Отбор для уменьшения выборки.
  3. Настройте формирование отчета по расписанию (ночью) и отправляйте результат на почту.
  4. Для ОСВ отключите детализацию по субконто, если она не нужна.

Если отчет все равно тормозит — оптимизируйте запрос, на котором он основан (см. раздел 5).

❓ Как ускорить работу 1С через интернет (VPN, RDP)?

При удаленной работе критичны два фактора: скорость канала и задержка (пинг). Что сделать:

  • Используйте протокол RDP вместо VPN — он оптимизирован для работы с графикой.
  • Включите сжатие трафика в настройках RDP (Подключение → Локальные ресурсы → Параметры производительности).
  • Уменьшите глубину цвета до 16 бит.
  • Отключите фоновые обои и анимацию в Windows на сервере.
  • Для 1С используйте Тонкий клиент вместо Толстого.

Минимальные требования к каналу: 10 Мбит/с на пользователя при пинге < 50 мс.

❓ Стоит ли переходить на PostgreSQL вместо MS SQL для ускорения 1С?

PostgreSQL может дать прирост производительности на 10–30% за счет:

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

Однако есть нюансы:

  • Не все конфигурации официально поддерживают PostgreSQL (проверьте совместимость).
  • Требуется перенос данных и донастройка сервера.
  • Некоторые запросы могут потребовать переписывания.

Рекомендуем протестировать на копии базы перед переходом.

❓ Почему после обновления 1С стала работать медленнее?

Это частая проблема при переходе на новые версии платформы. Причины:

  • В новых версиях могут измениться планы выполнения запросов (оптимизатор SQL начинает работать иначе).
  • Добавлены новые проверки (например, контроль остатков), которые замедляют запись документов.
  • Увеличились требования к ресурсам (например, платформа 8.3.20+ требует больше памяти для работы с динамическими списками).

Что делать:

  1. Проверьте Журнал регистрации на ошибки.
  2. Обновите драйверы SQL Native Client.
  3. Временно отключите новые проверки (если они не критичны).
  4. Обратитесь в поддержку 1С — иногда выходят "патчи производительности".
❓ Как ускорить печать документов из 1С?

Медленная печать обычно связана с:

  • Драйвером принтера: Используйте универсальный драйвер XPS или PDF-принтер (например, CutePDF).
  • Сложными макетами: Упростите печатные формы, удалив лишние графические элементы.
  • Сетевыми принтерами: Подключите принтер локально или через LPT-порт (если возможно).
  • Формированием данных: Если перед печатью долго формируется отчет — оптимизируйте запрос (см. раздел 5).

Для массовой печати используйте Пакетная печать вместо поштучного вывода.