Разберем типичную аварийную ситуацию: в процессе применения изменений из хранилища конфигурации или обновления конфигурации базы данных на этапе реструктуризации Конфигуратор неожиданно завершает работу с ошибкой. При последующей попытке открыть базу разработчик сталкивается с неприятными симптомами:
Не допустимое состояние объекта [rclient-src\ClientImpl.cpp] или сообщениями о сбое лицензирования.Проанализируем причины такого поведения платформы и рассмотрим пошаговые методы восстановления работоспособности информационной базы.
Выясним, почему база данных блокируется и ведет себя некорректно:
rphost: при тяжелых операциях сравнения и объединения конфигураций процесс rphost может исчерпать доступную оперативную память (особенно на 32-разрядных серверах при достижении порога 2–3 ГБ). Процесс впадает в состояние взаимной блокировки, повреждая внутренний кэш сеансов.В первую очередь разберем самое быстрое действие, позволяющее освободить заблокированные ресурсы кластера серверов.
rphost.exe. Если один из процессов занял критический объем памяти и завис, снимем его принудительно либо перезапустим службу 1C:Enterprise 8.3 Server Agent (при возможности кратковременной технологической паузы).Если графический интерфейс Конфигуратора заблокирован, воспользуемся пакетным режимом запуска платформы. Платформа 1С поддерживает специальные ключи командной строки для управления процессом фонового обновления.
Рассмотрим команду для принудительной отмены зависшего фонового обновления:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "ИмяСервера\ИмяБазы" /N "Администратор" /P "Пароль" /UpdateDBCfg -BackgroundCancel
Если отмена не требуется и нужно принудительно зафиксировать уже подготовленные изменения метаданных, применим ключ завершения обновления:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "ИмяСервера\ИмяБазы" /N "Администратор" /P "Пароль" /UpdateDBCfg -BackgroundFinish
После выполнения команды запустим Конфигуратор в обычном режиме и проверим доступность дерева метаданных.
Если после завершения процессов дерево конфигурации по-прежнему отображается пустым, необходимо удалить поврежденный кэш метаданных.
Разберем очистку серверного кэша по шагам:
1C:Enterprise Server Agent).C:\Program Files\1cv8\srvinfo\reg_1541).snccntx_*. Важно: не удаляйте файлы конфигурации кластера (1CV8Clst.lst, 1cv8reg.lst) и файлы баз данных.Очистим локальный кэш пользователя, выполнявшего обновление:
%LOCALAPPDATA%\1C\1cv8%APPDATA%\1C\1cv8Если база данных не открывается, а Конфигуратор завершает работу аварийно при каждом запуске, восстановим целостность через СУБД (Microsoft SQL Server или PostgreSQL). Перед выполнением любых запросов обязательно создадим резервную копию базы данных средствами СУБД.
Проанализируем логику решения: таблица ConfigSave хранит промежуточную, еще не примененную конфигурацию, а таблица Config — текущую основную конфигурацию базы. Если зависла реструктуризация, очистим таблицу несохраненных изменений SQL-запросом:
DELETE FROM ConfigSave;
После выполнения очистки откроем Конфигуратор, выполним полную проверку конфигурации и повторим обновление метаданных в монопольном режиме.
Чтобы исключить падения Конфигуратора при масштабных обновлениях из хранилища в будущем, настроим параметры кластера 1С:
rphost.Допустимый объем памяти и Интервал перезапуска рабочих процессов. Это позволит серверу мягко гасить стареющие процессы и автоматически создавать новые без зависания активных сеансов.