Динамическое обновление конфигурации («демоническое обновление») позволяет разработчикам вносить изменения в структуру модулей, форм и макетов без прерывания работы пользователей. Однако этот механизм несет в себе риски: процесс обновления может намертво зависнуть на этапе реструктуризации или фиксации изменений, блокируя доступ к конфигурации. Разберем по шагам, почему возникает данная проблема, как безопасно завершить зависший процесс, восстановить доступ к базе данных и предотвратить подобные инциденты в будущем.
Проанализируем техническую сторону процесса. При динамическом обновлении платформа 1С не переписывает основную конфигурацию сразу. Вместо этого в системных таблицах СУБД Config и ConfigSave формируются новые версии измененных объектов метаданных. Зависание чаще всего происходит по следующим причинам:
Если конфигуратор висит более 30–60 минут, а загрузка процессора и дисковой подсистемы процессом 1cv8.exe находится на нулевом уровне, процесс не сможет завершиться самостоятельно. Выполним пошаговые действия для восстановления работоспособности.
1cv8.exe. На данном этапе изменений в рабочую конфигурацию базы данных не внесено, так как транзакция не была зафиксирована.1C:Enterprise, перейдем в ветку Информационные базы → Сеансы, найдем сеанс конфигуратора и нажмем кнопку Удалить (завершить сеанс).%LOCALAPPDATA%\1C\1cv8
%APPDATA%\1C\1cv8Рассмотрим ситуации, когда аварийное завершение динамического обновления повредило временные структуры метаданных и конфигуратор предлагает бесконечно повторить обновление или выдает ошибку целостности структуры.
Способ 1. Откат к конфигурации базы данных через командную строку
Запустим конфигуратор в пакетном режиме с ключом отката незафиксированных изменений конфигурации:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /S "ИмяСервера\ИмяБазы" /N "Администратор" /P "Пароль" /RollbackCfg
Способ 2. Принудительное полное обновление базы
Чтобы заставить платформу полностью перестроить кэш метаданных без динамического режима, выполним пакетный запуск с отключением динамического обновления:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /S "ИмяСервера\ИмяБазы" /N "Администратор" /P "Пароль" /UpdateDBCfg -Dynamic-
Способ 3. Сброс таблицы ConfigSave на уровне СУБД
Если конфигуратор не открывается вовсе, а в журнале СУБД фиксируются ошибки чтения метаданных, проблема заключается в поврежденном несохраненном состоянии в таблице ConfigSave. Для MS SQL Server выполним команду очистки временной таблицы изменений (предварительно обязательно создадим резервную копию базы данных):
DELETE FROM ConfigSave;
После выполнения этого запроса незафиксированные правки будут сброшены, а конфигуратор успешно откроется в состоянии последней стабильно сохраненной конфигурации базы данных.
Чтобы исключить сбои в промышленной эксплуатации, применим следующие правила разработки и администрирования:
1C:Enterprise Server и очистку серверного кэша.