Администрирование · 9 мин
Динамическое обновление конфигурации в 1С
Как выполнить динамическое обновление конфигурации базы 1С: пошаговая инструкция, риски, проверка результата, типичные ошибки и ответы на частые вопросы.
Динамическое обновление конфигурации базы данных — это режим, при котором изменения конфигурации применяются без завершения сеансов пользователей. Механизм полезен, когда нужно быстро доставить небольшие исправления: поправить форму, отчёт, модуль или права доступа, не прерывая работу десятков сотрудников.
Главное ограничение режима — он применим только к изменениям, не затрагивающим структуру метаданных. Если добавлен реквизит справочника, изменён тип измерения регистра или удалён объект, платформа откажется выполнять динамическое обновление и потребует монопольный режим. Поэтому перед запуском важно понимать, какие именно доработки вошли в релиз.
Ниже разобраны условия применения, пошаговый запуск из конфигуратора и командной строки, проверка результата и типичные ошибки, которые приводят к отказу обновления или проблемам у пользователей.
Когда динамическое обновление допустимо, а когда нет
Динамический режим корректно работает с «поверхностными» изменениями: правки в модулях, изменения форм, макетов, отчётов, обработок, прав ролей, команд и подписок на события. Такие правки не меняют структуру таблиц в базе данных, поэтому платформа может применить их «на лету».
Недопустимы для динамического обновления изменения, влияющие на физическую структуру данных: добавление или удаление реквизитов, табличных частей, измерений и ресурсов регистров, изменение типов и длины полей, создание новых объектов метаданных. В этих случаях конфигуратор сам предложит только монопольное обновление.
Динамическое или монопольное обновление
Подходит для правок модулей, форм, отчётов и ролей. Пользователи продолжают работать, но старые сеансы до перезахода видят старую логику.
Обязательно при изменении структуры данных. Требует завершения всех сеансов, но гарантирует целостность метаданных и данных.
Подготовка перед запуском
Первый шаг — снять резервную копию информационной базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD, для клиент-серверной — выполнить выгрузку средствами СУБД или через выгрузку в dt. Даже «безобидная» правка модуля может вызвать ошибки в работающих сеансах, и откат должен занимать минуты, а не часы.
Второй шаг — оценить состав изменений. Откройте конфигуратор, загрузите конфигурацию из файла поставщика или выполните сравнение и объединение, и внимательно посмотрите список изменённых объектов. Если среди них есть объекты с изменением реквизитного состава, динамический режим не сработает.
Запуск динамического обновления из конфигуратора
Откройте конфигуратор, выполните «Конфигурация — Открыть конфигурацию», затем загрузите новую конфигурацию через «Загрузить конфигурацию из файла» или выполните сравнение и объединение с файлом поставки. Убедитесь, что основная конфигурация сохранена («Конфигурация — Сохранить конфигурацию»).
Далее выберите пункт «Конфигурация — Обновить конфигурацию базы данных». В открывшемся окне платформа покажет список изменений. Если изменения не затрагивают структуру данных, в настройках обновления будет доступен вариант динамического обновления — отметьте его и нажмите «Выполнить». Если платформа предлагает только монопольный режим, значит, в релизе есть структурные изменения.
- 1Сделайте резервную копию информационной базы
- 2Откройте конфигуратор и загрузите новую конфигурацию поставщика
- 3Сохраните основную конфигурацию
- 4Запустите «Конфигурация — Обновить конфигурацию базы данных»
- 5Выберите динамическое обновление и нажмите «Выполнить»
- 6Дождитесь сообщения об успешном завершении
- 7Проверьте работу типовых операций в пользовательском режиме
После завершения платформа выведет сообщение о результате. Пользователи, работавшие во время обновления, продолжат сеанс, но новая логика начнёт действовать для них после перезапуска сеанса или при следующем обращении к изменённым объектам — поведение зависит от характера изменений. Рекомендуется уведомить сотрудников о необходимости перезайти в программу в удобное время.
Запуск из командной строки
Для автоматизации удобно запускать обновление пакетно. Для клиент-серверной базы команда выглядит примерно так: запуск 1cv8.exe в режиме DESIGNER с указанием сервера, имени базы, учётных данных и параметра обновления.
1cv8.exe DESIGNER /S"Server\BaseName" /N"Администратор" /P"Пароль" /UpdateDBCfg -DynamicДля файловой базы вместо /S используется параметр /F с путём к каталогу базы. Ключ -Dynamic как раз включает динамическое обновление. Если платформа определит, что изменения требуют монопольного режима, команда завершится с ошибкой — это нормальная защитная реакция, а не сбой.
Пакетный запуск удобно встраивать в скрипты регламентного обновления: сначала копия базы, затем обновление, затем проверка кода возврата. Ненулевой код возврата должен трактоваться как отказ и приводить к остановке сценария, а не к «тихому» продолжению.
Проверка результата и откат
После обновления проверьте, что конфигурация базы данных совпадает с основной конфигурацией: в конфигураторе пункт «Конфигурация — Конфигурация базы данных» не должен показывать несохранённых отличий, а в окне «О программе» пользовательского режима должен отображаться новый номер версии.
Как проверить результат
Отображается новый номер релиза
Старая версия — обновление не применилось
Нет массовых ошибок после обновления
Повторяющиеся ошибки в сеансах пользователей
Выполняются без ошибок
Ошибки «Метод не обнаружен», падение отчётов
Если после обновления у части пользователей возникают ошибки вроде «Метод объекта не обнаружен» или странное поведение форм, чаще всего причина в том, что их сеансы работают со старым кодом. Попросите их перезапустить 1С. Если ошибки сохраняются у всех пользователей, откатывайтесь на резервную копию и разбирайте изменения в тестовой копии.
Типичные ошибки и ограничения режима
Отдельное ограничение касается фоновых заданий и внешних соединений: регламентные задания, запущенные до обновления, могут продолжать выполняться на старом коде, а COM-соединения и веб-сервисы иногда требуют перезапуска публикации или пула приложений. Учитывайте это при обновлении баз с интеграциями.
Также помните, что динамическое обновление не освобождает от последующего планового обновления в монопольном режиме, если накопились отложенные обработчики обновления данных. Проверяйте статус отложенных обработчиков в типовых конфигурациях — незавершённые обработчики могут блокировать дальнейшие обновления.
Как выбрать действие
Что важно запомнить
Динамическое обновление — безопасный способ доставить мелкие правки без остановки работы, но только при отсутствии структурных изменений. Всегда делайте резервную копию, проверяйте состав изменений и после обновления контролируйте версию конфигурации и журнал регистрации.
Частые вопросы
Можно ли выполнять динамическое обновление, пока пользователи проводят документы?
Технически да — в этом и смысл режима. Однако активные сеансы продолжат работать со старой логикой до перезахода, поэтому важные исправления лучше сопровождать рассылкой с просьбой перезапустить программу.
Почему пункт динамического обновления недоступен в конфигураторе?
Значит, в составе изменений есть правки структуры метаданных: новые реквизиты, изменение типов, новые объекты. Платформа в таких случаях допускает только монопольное обновление, и обойти это штатными средствами нельзя.
Нужно ли после динамического обновления что-то делать с отложенными обработчиками?
Если в релизе есть отложенные обработчики обновления данных, они запускаются в фоне после обновления. Контролируйте их завершение в разделе администрирования — незавершённые обработчики могут мешать последующим обновлениям.
Безопасно ли обновлять клиент-серверную базу динамически при большом числе пользователей?
Да, механизм рассчитан на это, но при сотнях активных сеансов разумнее выполнять обновление в период минимальной нагрузки, чтобы снизить риск ошибок в момент переключения и упростить диагностику.
Что делать, если обновление завершилось ошибкой посередине?
Не пытайтесь повторно запускать обновление «вслепую». Проверьте журнал регистрации и сообщения конфигуратора, убедитесь в целостности базы и при необходимости восстановите её из резервной копии, затем повторите процедуру на тестовой копии.