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

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

1С: как ускорить обновление конфигурации

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

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

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

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

Определяем, на каком этапе обновление тормозит

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

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

Реструктуризация занимает больше часаБольшие таблицы и слабая СУБД

Проверьте настройки памяти, tempdb и диски сервера СУБД

После обновления база работает, но тормозитИдут отложенные обработчики

Откройте монитор обновления данных и оцените очередь

Медленно ещё до начала реструктуризацииСеть или антивирус

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

Настраиваем сервер СУБД перед обновлением

В клиент-серверном варианте основная нагрузка при обновлении ложится на СУБД. Для Microsoft SQL Server проверьте три вещи: объём памяти, выделенной серверу (max server memory должен оставлять операционной системе несколько гигабайт), размещение tempdb на быстром диске с несколькими файлами данных, и модель восстановления базы. На время обновления базу можно перевести в простую модель восстановления (Simple), чтобы журнал транзакций не разрастался и не замедлял массовые операции — после обновления модель возвращают обратно.

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

Перед обновлением также стоит обновить статистику и очистить процедурный кэш планов, если база давно не обслуживалась. Регулярное обслуживание СУБД (перестроение индексов, обновление статистики) сокращает и время обновления, и время обычной работы.

Используем правильный режим обновления

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

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

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

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

Как выбрать режим обновления

Минорное обновление, структура данных не меняетсяИспользуйте динамическое обновление, затем перезапустите сеансы пользователей
Меняются реквизиты, регистры, измеренияТолько полное обновление с реструктуризацией, на сервере, в нерабочее время
База файловая и лежит в сетевой папкеСкопируйте базу на локальный диск, обновите, верните обратно
Накопилось несколько пропущенных релизовОбновляйтесь последовательно по инструкции вендора, не перескакивая через обязательные версии

Убираем внешние тормоза: антивирус, сеть, фоновые задачи

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

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

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

Ускоряем отложенные обработчики после обновления

Многие типовые конфигурации после обновления запускают отложенные обработчики — они пересчитывают данные в фоне, пока пользователи уже работают. Если таких обработчиков много и база большая, «дозаполнение» может идти часами и ощутимо нагружать систему. Ускорить это можно двумя способами.

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

Контролируйте ход выполнения через штатный монитор обновления данных («Результаты обновления приложения»). Если какой-то обработчик завис с ошибкой, не перезапускайте всё обновление — разберитесь с конкретной ошибкой, исправьте данные и перезапустите только проблемный обработчик.

Порядок ускоренного обновления
  1. 1
    Сделайте полную резервную копию базы и проверьте, что она восстанавливается
  2. 2
    Выполните тестирование и исправление базы, обновите статистику в СУБД
  3. 3
    Добавьте исключения в антивирус, завершите сеансы пользователей, остановите регламентные задания
  4. 4
    Переведите базу в простую модель восстановления (для SQL Server) и убедитесь в запасе места на дисках
  5. 5
    Запустите обновление с сервера, при минорном релизе — динамическое
  6. 6
    После обновления верните модель восстановления, включите многопоточное выполнение отложенных обработчиков
  7. 7
    Проверьте монитор обновления данных и работоспособность ключевых операций

Профилактика: как не тормозить при каждом обновлении

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

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

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

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

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

Монитор обновления данных
Норма

Все обработчики завершены без ошибок

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

Есть обработчики со статусом ошибки или зависшие на длительное время

Работа пользователей после обновления
Норма

Документы проводятся, отчёты формируются в обычном темпе

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

Ошибки о несоответствии версий, падение производительности

Модель восстановления и бэкапы
Норма

Модель восстановления возвращена, полная копия создана

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

База осталась в Simple, расписание бэкапов не возобновлено

Итог

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

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

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

Безопасно ли динамическое обновление в рабочее время?

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

Сколько свободного места нужно на диске для обновления?

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

Поможет ли ускорить обновление переход с файловой базы на клиент-серверную?

Да, для баз с несколькими пользователями и заметным объёмом данных клиент-серверный вариант обычно обновляется быстрее за счёт параллельной работы СУБД и отсутствия сетевой передачи файлов. Дополнительно появляются инструменты настройки производительности на уровне СУБД, недоступные файловому режиму.

Что делать, если отложенный обработчик завис или падает с ошибкой?

Откройте монитор результатов обновления, посмотрите текст ошибки конкретного обработчика. Чаще всего причина — некорректные данные (дубли, битые ссылки) или нехватка ресурсов. Исправьте данные, убедитесь в достаточности места и памяти, затем перезапустите именно этот обработчик — повторное полное обновление не требуется.

Можно ли пропускать промежуточные релизы при обновлении?

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

Влияет ли количество пользователей на скорость обновления?

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