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

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

Динамическое обновление 1С: что это и как применять

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

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

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

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

Что такое динамическое обновление простыми словами

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

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

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

Какие изменения допускаются, а какие — нет

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

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

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

Сравнение вариантов

Динамическое обновление

Подходит для правок кода, форм, макетов и добавления новых объектов; пользователи не выгоняются; требует последующего обычного обновления

Обычное обновление

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

Расширение конфигурации

Альтернатива для доработок без изменения основной конфигурации; применяется без обновления конфигурации БД, но не заменяет штатные обновления поставщика

Как выполнить динамическое обновление пошагово

Процедура выполняется в конфигураторе и занимает обычно несколько минут. Перед началом убедитесь, что у вас есть актуальная резервная копия и права администратора.

Порядок действий
  1. 1
    Сделайте резервную копию базы: выгрузку в dt через конфигуратор или средствами СУБД для клиент-серверного варианта
  2. 2
    Откройте конфигуратор и выполните загрузку изменённой конфигурации: Конфигурация → Загрузить конфигурацию из файла или обновление через поддержку
  3. 3
    Выполните команду Конфигурация → Обновить конфигурацию базы данных
  4. 4
    В окне со списком изменений платформа покажет, что возможен динамический режим — подтвердите динамическое обновление
  5. 5
    Дождитесь завершения и сообщите пользователям, что изменения подхватятся при следующем входе в программу
  6. 6
    Запланируйте обычное обновление конфигурации БД в нерабочее время для завершения процесса

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

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

text
designer.exe /S Server\Base /N Админ /P *** /UpdateDBCfg -Dynamic+ /DisableStartupDialogs

Что происходит с пользователями и сеансами

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

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

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

Проверка результата и контрольные точки

После динамического обновления нужно убедиться, что изменения применились корректно и база находится в ожидаемом состоянии.

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

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

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

При входе пользователь видит изменённые формы и работает новая логика

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

Изменения не видны — сеанс запущен до обновления или обновление не применилось

Конфигуратор: конфигурация базы данных
Норма

Есть признак, что конфигурация БД ожидает обновления (это норма для динамического режима)

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

Ошибки при открытии конфигуратора или несоответствие конфигураций

Журнал регистрации
Норма

Нет массовых ошибок после обновления

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

Ошибки метаданных, обращения к несуществующим объектам

Фоновые задания
Норма

Выполняются без ошибок, постепенно переходят на новую версию

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

Задания падают с ошибками после обновления

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

Типичные ошибки и ограничения

Опыт администрирования показывает, что большинство проблем с динамическим обновлением связано не с самим механизмом, а с неверными ожиданиями от него.

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

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

Когда динамическое обновление оправдано, а когда — нет

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

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

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

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

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

Итог

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

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

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

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

Да, в этом и смысл режима. Пользователи продолжают работать без прерывания. Кратковременное замедление возможно в момент записи конфигурации, но сеансы не разрываются.

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

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

Что будет, если долго не выполнять обычное обновление после динамического?

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

Нужно ли перезапускать сервер 1С после динамического обновления?

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

Можно ли откатить динамическое обновление?

Штатной кнопки отката нет. Откат выполняется загрузкой сохранённой ранее конфигурации (из резервной копии dt или cf-файла) и повторным динамическим обновлением. Именно поэтому резервная копия перед любым обновлением обязательна.

Подходит ли динамическое обновление для перехода на новый релиз типовой конфигурации?

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