← На главную
В процессе обновления доработанных (нетиповых) конфигураций 1С через меню Конфигурация → Поддержка → Обновить конфигурацию разработчики нередко сталкиваются с ситуацией, когда конфигурация поставщика успешно обновляется, но конфигурация базы данных не применяется. Платформа прерывает процесс и выдает системное предупреждение: «Для изменения поддержки конфигурации разблокируйте объект <ИмяКонфигурации>». При этом в окне настройки поддержки щелчки мыши по правилам поддержки не открывают диалоговое окно выбора режима редактирования.
Разберем детально, почему возникает данная блокировка и как корректно выполнить обновление информационной базы.
Причина возникновения ошибки
Проанализируем механику работы платформы 1С:Предприятие при включенной групповой разработке. Главная причина подобного поведения — подключение информационной базы к хранилищу конфигурации при незахваченном корневом объекте:
- Вся информация о правилах поддержки, версиях и связях с конфигурациями поставщиков физически привязана к корневому элементу дерева метаданных (самому объекту конфигурации).
- Если база подключена к хранилищу конфигурации, платформа защищает структуру метаданных от несогласованных локальных изменений. До тех пор, пока корень конфигурации не захвачен текущим пользователем, любые интерактивные изменения правил поддержки блокируются (клики по правилам не реагируют, окно выбора режима не открывается).
- Мастер обновления при попытке изменить правила поддержки дочерних или корневых объектов наталкивается на блокировку хранилища и аварийно завершает процедуру обновления конфигурации базы данных.
Способ 1. Захват корневого объекта в хранилище конфигурации
Рассмотрим по шагам стандартный порядок действий для выполнения обновления непосредственно в базе, подключенной к хранилищу:
- Откроем главное меню Конфигурация и перейдем в подраздел Хранилище конфигурации → Захватить в хранилище....
- В открывшемся дереве объектов обязательно выделим корневой узел (саму конфигурацию, например
КомплекснаяАвтоматизация).
- Если обновление затрагивает правила поддержки большого количества объектов метаданных, установим признак рекурсивного захвата подчиненных объектов либо захватим те объекты, которые планируется модифицировать и объединять.
- Нажмем кнопку Выполнить.
- После успешного захвата корня перейдем к штатному обновлению через меню Конфигурация → Поддержка → Обновить конфигурацию и завершим процесс объединения.
- Сохраним конфигурацию базы данных клавишей F7 или через меню Конфигурация → Обновить конфигурацию базы данных.
- Поместим изменения обратно в хранилище через меню Хранилище конфигурации → Поместить в хранилище..., чтобы новые правила поддержки и обновленные объекты стали доступны остальным разработчикам.
Способ 2. Обновление через автономную копию базы (CF-файл)
Рассмотрим альтернативный, наиболее безопасный подход, применяемый в крупных проектах для минимизации времени блокировки хранилища:
- Создадим локальную копию информационной базы и полностью отключим ее от хранилища конфигурации (меню Конфигурация → Хранилище конфигурации → Администрирование хранилища → Отключиться от хранилища).
- Выполним полное обновление на автономной копии: обновим конфигурацию поставщика, аккуратно сопоставим доработки, разрешим конфликты объединения и протестируем функционал.
- Сохраним готовую конфигурацию в файл через пункт меню Конфигурация → Сохранить конфигурацию в файл... (получим готовый файл с расширением
.cf).
- В основной рабочей базе подключимся к хранилищу, выполним захват необходимых объектов и корневого узла метаданных.
- Выполним объединение с подготовленным файлом через меню Конфигурация → Сравнить, объединить с конфигурацией из файла..., после чего зафиксируем релиз в хранилище.
Технические нюансы и ограничения
Выясним дополнительные моменты, на которые следует обратить внимание при работе с поддержкой:
- Несколько конфигураций поставщиков: если в систему интегрированы отраслевые решения или модули сторонних разработчиков, в окне Настройка поддержки присутствует выбор конфигурации поставщика. Для управления правилами поддержки конкретного решения убедимся, что выбран соответствующий поставщик, а корень конфигурации остается захвачен в хранилище.
- Команда «Загрузить конфигурацию из файла»: полная загрузка конфигурации (в отличие от сравнения и объединения) требует обязательного захвата абсолютно всех объектов хранилища либо временного отключения базы от хранилища.