Оптимизация 1С: как ускорить работу без покупки нового сервера

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

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

С чего начать: измерить, а не угадывать

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

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

Второе правило: определите, где именно теряется время. Медленная 1С — это симптом, а не диагноз. Причина бывает в базе, в сети, в дисках сервера или в конкретном отчёте, который написал подрядчик пять лет назад.

Обслуживание базы: то, что должно работать само

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

Что должно выполняться регулярно:

  • Тестирование и исправление базы. Штатная процедура конфигуратора, которая проверяет логическую и ссылочную целостность. Запускается в нерабочее время, требует монопольного доступа.
  • Реиндексация таблиц. После крупных загрузок и обменов индексы фрагментируются, выборки замедляются.
  • Обновление статистики. Планировщик запросов принимает решения на основе статистики; устаревшая статистика — типичная причина внезапного замедления отчёта, который вчера работал быстро.
  • Очистка журнала регистрации. Журнал за пять лет может весить больше самой базы и тормозить всё, что к нему обращается.
  • Свёртка базы. Радикальная мера: остатки на дату переносятся, старые документы убираются в архивную копию. Даёт лучший результат, но требует согласования с бухгалтерией.

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

Регламентные задания: проверьте, что они не мешают людям

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

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

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

Доработки и запросы: где чаще всего прячется проблема

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

  • запрос внутри цикла — вместо одной выборки система делает сотни обращений к базе;
  • соединения с виртуальными таблицами без отбора по периоду, когда система вынуждена читать всю историю;
  • обращение к реквизитам через точку в цикле — каждое обращение это отдельный запрос;
  • отчёт без ограничения по датам, который пользователи по привычке строят «за всё время»;
  • расчёты в модуле проведения, которые давно можно было перенести в регламентное задание.

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

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

Платформа и клиент: мелочи, которые заметны пользователю

Несколько настроек, которые дают эффект без вложений:

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

Обмены и интеграции: скрытая нагрузка

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

На что смотреть:

  • Частота обменов. Обмен с сайтом раз в пять минут нужен интернет-магазину с сотнями заказов в день, а не компании, где заказы приходят по десятку в неделю.
  • Объём выгрузки. Если правила обмена выгружают весь справочник номенклатуры целиком вместо изменений, каждая синхронизация читает базу полностью.
  • Ошибки обменов. Задание, которое падает и перезапускается, работает круглосуточно и держит блокировки.
  • Очередь необработанных сообщений. Разросшаяся очередь обмена замедляет и сам обмен, и работу пользователей.

Отдельная история — печатные формы и отчёты, которые обращаются к внешним сервисам: проверка контрагента, курс валют, статус документа в ЭДО. Если сервис отвечает медленно, пользователь ждёт вместе с ним, а выглядит это как «тормозит 1С».

Сколько пользователей выдержит ваша конфигурация

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

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

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

Когда оптимизация упирается в железо

Есть предел, за которым чистка базы уже ничего не даёт. Признаки, что вы к нему подошли:

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

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

Если поднимать и обслуживать такую машину самим не хочется, мы даём сервер для 1С в аренду — от 29 900 ₽ в год за минимальную конфигурацию, с лицензией Windows Server, ежедневными резервными копиями и настройкой. Перед оплатой разворачиваем вашу базу на тестовом сервере на 7 дней, чтобы вы сравнили скорость на своих данных, а не на демо.

Порядок работ: что делать по шагам

  1. Замерить текущую скорость и записать результат.
  2. Понять, тормозит у всех или у одного пользователя, вся база или одна операция.
  3. Проверить обслуживание базы: тестирование и исправление, реиндексация, статистика, журнал регистрации.
  4. Разобрать расписание регламентных заданий, убрать тяжёлое из рабочего времени.
  5. Если проблема в конкретной операции — сделать замер производительности и разобрать код.
  6. Проверить платформу, клиент, кэш и антивирус.
  7. Повторить замер и сравнить с исходным.
  8. Если разница небольшая — считать ресурсы сервера и выбирать между терминальным сервером и клиент-серверным режимом.

Такой порядок экономит деньги: половина случаев закрывается на шагах 3–6, и покупать новое железо не приходится вовсе.

Что можем сделать мы

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

Работы по сопровождению 1С и доработке считаются почасово, от 4 000 ₽ за час; оценку задачи даём до старта. Позвоните по номеру +7 495 780-66-50 или оставьте заявку — разберём вашу ситуацию.

Добавить комментарий
Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *
Сайт использует cookie-файлы и обезличенный счётчик посещаемости Яндекс Метрики. Запись действий на страницах (Вебвизор, карта кликов) включается только после нажатия «Принять»; «Только обязательные» — сайт работает без записи действий. Подробнее — в политике использования cookies.
ПринятьТолько обязательные