При попытке обновить или накатить доработанную конфигурацию через команду «Конфигурация — Загрузить конфигурацию из файла...» разработчики нередко сталкиваются с ошибкой: «Для выполнения операции требуется разблокировать все объекты». При этом в настройках поддержки может казаться, что редактирование разрешено для всех элементов дерева метаданных. Разберем по шагам природу возникновения этой ошибки, выясним технические причины такого поведения платформы и рассмотрим безопасные способы решения задачи.
Проанализируем механику работы команды «Загрузить конфигурацию из файла». В отличие от процесса сравнения и объединения, операция загрузки .cf полностью заменяет структуру метаданных конфигурации базы данных. Платформа «1С:Предприятие» на архитектурном уровне требует, чтобы перед выполнением этой команды конфигурация находилась в одном из двух состояний:
В отраслевых и совместных решениях (например, продуктах от компании «1С-Рарус») разработчики часто внедряют модули защиты или защищенный функционал. Для таких служебных объектов поставщик жестко блокирует возможность смены правила поддержки. Даже если разработчик выполняет общее действие по установке правила «Редактируется с сохранением поддержки» для всего дерева, данные объекты остаются заблокированными. В результате платформа видит хотя бы один закрытый объект и прерывает операцию загрузки файла с соответствующим предупреждением.
Рассмотрим вариант решения, если доработанный файл .cf уже подготовлен на базе аналогичной конфигурации поставщика и содержит все необходимые структуры метаданных.
Разберем по шагам правильный алгоритм действий:
.dt или сделаем копию файла 1Cv8.1CD (для файлового варианта) / бэкап СУБД (для клиент-серверного варианта)..cf..cf-файл был выгружен из базы, находившейся на поддержке, то после загрузки конфигурация базы автоматически вернется на поддержку вендора с сохранением всех исходных правил.F7 или кнопку «Обновить конфигурацию базы данных».Важное предупреждение: при выполнении команды полной загрузки .cf платформа сопоставляет метаданные исключительно по их внутренним уникальным идентификаторам (UUID). Если какие-либо объекты (справочники, реквизиты, документы) в базе-приемнике и базе-источнике создавались независимо друг от друга вручную, при реструктуризации старые таблицы базы данных будут удалены, а новые — созданы заново. Это приведет к безвозвратной потере информации в этих таблицах. Всегда внимательно проверяйте окно предупреждений реструктуризации на наличие удаляемых объектов.
Если требуется применить официальное обновление от разработчика, наиболее надежным и штатным методом является использование механизма поддержки, а не прямой загрузки файла.
Разберем последовательность действий:
.cf или .cfu).F7.Этот способ гарантирует корректную обработку защищенных модулей и исключает случайную потерю данных из-за несовпадения внутренних идентификаторов метаданных.
Если доработки были предварительно объединены в отдельный файл конфигурации, но при этом необходимо обновить типовую конфигурацию поставщика в рабочей базе, рассмотрим следующий подход:
Если объекты конфигурации полностью разблокированы, но ошибка сохраняется, проанализируем следующие технические моменты:
.cf заблокированы платформой. Для выполнения административных действий узел необходимо временно «отвязать» от главного узла, выполнив код:
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
После завершения всех операций главный узел восстанавливается обратной привязкой.