Динамическое обновление (в среде разработчиков 1С часто называемое «демоническим») позволяет вносить изменения в конфигурацию без завершения работы пользователей. Однако этот инструмент требует повышенной осторожности. Данный механизм применим исключительно для модификации программного кода в модулях и формах — любые изменения структуры данных (добавление реквизитов, изменение типов, создание новых справочников или документов) требуют монопольной реструктуризации таблиц СУБД.
Проанализируем основные технические причины, по которым динамическое обновление может привести к сбоям в системе:
rphost не всегда мгновенно обновляет кэш метаданных на всех узлах. Это приводит к возникновению критических ошибок работы с памятью и аварийному завершению сеансов.Config, Params) очередную версию структуры метаданных. При частом использовании этого метода системные таблицы раздуваются, происходит дефрагментация индексов, что со временем вызывает ошибки целостности вроде «Ошибка формата потока».Рассмотрим порядок действий при возникновении ситуаций, когда после динамического обновления Конфигуратор не открывается или система выдает сообщение о разрушении информационной базы.
Шаг 1. Очистка кэша пользователей и сервера 1С
В простых случаях после динамического обновления у отдельных пользователей проявляются глюки интерфейса или ошибки выполнения процедур. Здесь помогает очистка локального кэша 1С. Если же проблемы затрагивают всех подключенных клиентов, требуется очистить кэш кластера серверов 1С:
srvinfo на сервере и удалим временные каталоги сеансов и конфигураций (не затрагивая файлы лицензий и ключевые настройки).Шаг 2. Восстановление таблицы Config из резервной копии в СУБД
Если база данных работает под управлением СУБД (MS SQL Server или PostgreSQL) и после динамического обновления Конфигуратор отказывается запускаться, не обязательно восстанавливать всю базу целиком и терять введенные за день данные пользователей. Достаточно восстановить только конфигурацию:
Config (а при необходимости и ConfigSave) из тестовой базы в рабочую.Config записи, относящиеся к незавершенным транзакциям динамического обновления.Шаг 3. Принудительный сброс динамического режима через командную строку
Выйти из состояния незавершенного обновления конфигурации базы данных можно путем запуска Конфигуратора в автоматическом режиме с ключом /UpdateDBCfg -Dynamic-:
1cv8.exe DESIGNER /IBName "РабочаяБаза" /N "Администратор" /P "Пароль" /UpdateDBCfg -Dynamic-
Флаг -Dynamic- запрещает использование динамического обновления и принудительно заставляет платформу выполнить стандартную процедуру обновления конфигурации БД.
Разберем методы проведения срочных доработок, которые минимизируют риски сбоя рабочей базы:
1. Использование расширений конфигурации (патчей)
Для оперативного исправления багов (хотфиксов) в программных модулях или добавления печатных форм целесообразно использовать механизм расширений. Расширения подключаются в режиме 1С:Предприятие, не затрагивают основную таблицу Config и снижают риск повреждения базы до нуля.
2. Двухэтапное сохранение конфигурации
Если правки вносятся в разгар рабочего дня, целесообразно разделить процесс на два этапа:
3. Фоновое обновление конфигурации БД
Платформа 1С:Предприятие поддерживает механизм фонового обновления. Запуск фоновой реструктуризации выполняется через командную строку с параметром /UpdateDBCfg -BackgroundStart. Основной объем подготовки данных происходит в фоновом режиме во время работы пользователей, а короткая блокировка требуется только на финальной стадии фиксации изменений.
4. Кратковременная блокировка сеансов
Если изменения критичны для работы организации, лучшей практикой остаётся установка административной блокировки новых сеансов и завершение работы текущих через консоль кластера 1С. Монопольное обновление занимает всего 1–2 минуты, после чего пользователи могут безопасно продолжать работу в обновленной системе.