Динамическое обновление конфигурации, которое в среде разработчиков 1С часто называют «демоническим», — это механизм, позволяющий вносить изменения в программный код без завершения работы пользователей. Однако с выходом платформы 8.3.18, и в частности релиза 8.3.18.1289, многие специалисты столкнулись с тем, что привычный функционал перестал работать корректно: система настойчиво требует завершения всех сеансов даже при незначительных правках в модулях. Разберем подробно, почему это происходит и как минимизировать риски для информационной базы.
Проанализируем ситуацию, описанную пользователями. При попытке обновить конфигурацию базы данных после изменения модуля документа, система выдает окно с требованием завершить все активные сеансы. Характерной особенностью данного релиза является «зацикливание» интерфейса: при нажатии кнопки «Отмена» окно появляется снова, мешая продолжить работу. Выясним основные причины такого поведения:
rmngr.Рассмотрим несколько вариантов действий, от простых интерфейсных хитростей до глубокого восстановления базы на уровне СУБД.
Вариант 1. Интерфейсный обход (Workaround)
Как отмечают опытные разработчики, иногда помогает определенная последовательность действий в диалоговых окнах. Если система требует завершить сеансы, попробуем следующую комбинацию: нажимаем «Отмена» — еще раз «Отмена» — и снова выбираем пункт «Обновить динамически». В ряде случаев (если блокировка была вызвана ошибкой отрисовки окна) обновление может примениться со второй попытки.
Вариант 2. Обновление платформы
Релиз 8.3.18.1289 признан специалистами крайне нестабильным. Проанализируем техническую документацию: исправления многих ошибок, связанных с управлением сеансами и блокировками, вошли в более поздние патчи. Рекомендуем выполнить переход на релизы не ниже 8.3.18.1334 или 8.3.18.1363. В этих версиях исправлено некорректное поведение модальных окон при обновлении.
Вариант 3. Очистка кеша
Если обновление «зависло» или работает некорректно, обязательным шагом является очистка кеша. Рассмотрим, как это сделать правильно:
%AppData%\1C\1cv8 и %LocalAppData%\1C\1cv8.1C:Enterprise 8.3 Server Agent и удаление содержимого папки reg_1541\snccntx* (кеш сеансовых данных).Важно понимать, почему многие специалисты категорически не рекомендуют использовать этот метод на «боевых» базах. Разберем механизм записи изменений. При обычном обновлении данные из таблицы ConfigSave переносятся в таблицу Config, а затем актуализируется DBCfg. При динамическом обновлении в таблице Config создаются дополнительные записи с новыми версиями объектов, при этом DBCfg остается старой до момента монопольного обновления.
Рассмотрим ситуацию, когда база «рассыпалась» после динамического обновления (пропали объекты, ошибки доступа). В этом случае помогает прямое редактирование таблиц конфигурации в SQL Server Management Studio. Внимание: всегда делайте бэкап перед выполнением запросов!
Проанализируем пример запроса для восстановления соответствия таблиц Config и DBCfg, что фактически отменяет неудачное динамическое обновление:
-- Очищаем таблицу текущей конфигурации
DELETE FROM Config;
-- Копируем данные из основной конфигурации (DBCfg) в рабочую (Config)
INSERT INTO Config
SELECT * FROM DBCfg;
-- После этого необходимо перезапустить службу сервера 1С
Этот метод позволяет вернуть базу в стабильное состояние без необходимости восстановления из долгого бэкапа, если изменения в DBCfg еще не были применены.
Чтобы избежать подобных проблем в будущем, проанализируем и внедрим следующие административные правила:
8.3.18.1289, чтобы заранее выявить возможные блокировки сеансов.Подведем итог: проблема с обновлением в 8.3.18.1289 — это комплексная ошибка платформы, связанная с управлением сеансами и новыми механизмами контроля. Лучшим решением будет обновление платформы до стабильного патча и переход на монопольное обновление конфигурации, что гарантирует целостность данных и спокойствие администратора базы.