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

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

Динамическое обновление конфигурации в 1С

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

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

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

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

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

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

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

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

Динамическое

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

Монопольное

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

Подготовка перед запуском

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

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

Запуск динамического обновления из конфигуратора

Откройте конфигуратор, выполните «Конфигурация — Открыть конфигурацию», затем загрузите новую конфигурацию через «Загрузить конфигурацию из файла» или выполните сравнение и объединение с файлом поставки. Убедитесь, что основная конфигурация сохранена («Конфигурация — Сохранить конфигурацию»).

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

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

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

Запуск из командной строки

Для автоматизации удобно запускать обновление пакетно. Для клиент-серверной базы команда выглядит примерно так: запуск 1cv8.exe в режиме DESIGNER с указанием сервера, имени базы, учётных данных и параметра обновления.

bash
1cv8.exe DESIGNER /S"Server\BaseName" /N"Администратор" /P"Пароль" /UpdateDBCfg -Dynamic

Для файловой базы вместо /S используется параметр /F с путём к каталогу базы. Ключ -Dynamic как раз включает динамическое обновление. Если платформа определит, что изменения требуют монопольного режима, команда завершится с ошибкой — это нормальная защитная реакция, а не сбой.

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

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

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

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

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

Версия конфигурации в режиме 1С:Предприятие
Норма

Отображается новый номер релиза

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

Старая версия — обновление не применилось

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

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

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

Повторяющиеся ошибки в сеансах пользователей

Типовые операции (проведение документов, отчёты)
Норма

Выполняются без ошибок

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

Ошибки «Метод не обнаружен», падение отчётов

Если после обновления у части пользователей возникают ошибки вроде «Метод объекта не обнаружен» или странное поведение форм, чаще всего причина в том, что их сеансы работают со старым кодом. Попросите их перезапустить 1С. Если ошибки сохраняются у всех пользователей, откатывайтесь на резервную копию и разбирайте изменения в тестовой копии.

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

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

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

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

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

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

В релизе только правки модулей, форм и отчётовВыполняйте динамическое обновление в рабочее время после резервной копии
Платформа требует монопольный режим или реструктуризациюПланируйте обновление в нерабочее время с завершением всех сеансов
После обновления у пользователей ошибки «метод не обнаружен»Попросите перезапустить сеансы; при массовых ошибках откатитесь на копию
Есть активные интеграции через веб-сервисы или COMПосле обновления перезапустите публикации и проверьте обмены
Итог

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

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

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

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

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

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

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

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

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

Безопасно ли обновлять клиент-серверную базу динамически при большом числе пользователей?

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

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

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