← На главную
При некорректном выполнении обновления или неаккуратном объединении конфигураций нередко возникает ситуация, когда часть объектов метаданных (справочники, документы, реквизиты, табличные части) полностью снимается с поддержки поставщика (в окне настройки поддержки отображаются серым кубом вместо желтого). Это приводит к тому, что при последующих типовых обновлениях такие объекты перестают автоматически обновляться и не сопоставляются должным образом.
Разберем подробно причины этой ситуации, способы программного и визуального поиска снятых с поддержки объектов, а также методы их массового возврата на поддержку.
Выясним причины возникновения проблемы
Проанализируем основные факторы, приводящие к потере поддержки отдельными объектами:
- Некорректное сравнение и объединение: обновление выполнялось через меню
Конфигурация → Сравнить, объединить с конфигурацией из файла без предварительного обновления конфигурации поставщика или с отключенными правилами поддержки для подчиненных объектов.
- Ошибочное ручное снятие с поддержки: при редактировании правил поддержки для ветки или объекта было выбрано правило «Снять с поддержки» вместо «Объект поставщика редактируется с сохранением поддержки».
- Рассинхронизация внутренних идентификаторов (UUID): если объект был удален и создан заново вручную с прежним наименованием, платформа воспринимает его как полностью новый пользовательский объект, не связанный с поставщиком.
Способ 1. Программный поиск снятых с поддержки объектов через выгрузку в файлы
В платформе 1С:Предприятие нет прямого программного API встроенного языка для чтения таблицы правил поддержки конфигурации во время пользовательского сеанса. Однако, начиная с платформы 8.3.10, доступен механизм выгрузки конфигурации в XML/BIN файлы, который позволяет программно проанализировать правила поддержки каждого объекта.
Разберем по шагам алгоритм анализа:
- Выгрузим конфигурацию в файлы через меню Конфигуратора:
Конфигурация → Выгрузить конфигурацию в файлы... (либо через параметры командной строки /DumpConfigToFiles).
- В результирующем каталоге найдем файл
ParentConfigurations.bin, в котором хранятся правила поддержки метаданных.
- Проанализируем файл: правила поддержки кодируются числовыми последовательностями. В частности, правило пользователя обозначается цифрами:
0 — Объект поставщика не редактируется (на замке);
1 — Объект поставщика редактируется с сохранением поддержки (желтый куб);
2 — Снят с поддержки (серый куб).
Ищем вхождение "2,0,", где первая цифра указывает на снятие объекта с поддержки пользователем.
- Идентификаторы объектов метаданных (UUID), следующие за правилом, сопоставим с именами объектов с помощью индексного файла
ConfigDumpInfo.xml.
На базе этого механизма можно создать внешнюю обработку, которая выполнит автоматический парсинг файлов выгрузки и сформирует отчет со списком всех снятых с поддержки элементов.
Способ 2. Восстановление поддержки через окно «Настройка поддержки»
Если конфигурация содержит небольшое количество доработок или требуется вернуть правила для конкретной ветки метаданных, воспользуемся штатным окном управления поддержкой:
- Откроем
Конфигурация → Поддержка → Настройка поддержки.
- Выделим корневой узел конфигурации или конкретную ветку (например, «Справочники»).
- Нажмем кнопку Установить правило.
- Выберем значение Объект поставщика редактируется с сохранением поддержки.
- Обязательно установим флаг Устанавливать для подчиненных объектов.
- Применим изменения. Платформа рекурсивно переведет все вложенные элементы (реквизиты, табличные части, формы) в режим редактирования с сохранением поддержки.
Способ 3. Массовое восстановление поддержки через сравнение и объединение
Рассмотрим наиболее надежный способ возврата поддержки для измененной конфигурации с сохранением всех внесенных доработок:
- Обязательно создадим резервную копию информационной базы (
.dt или средствами СУБД).
- Получим файл поставщика
.cf ровно того же релиза, который установлен в текущей базе.
- В Конфигураторе выполним:
Конфигурация → Сравнить, объединить с конфигурацией из файла и выберем эталонный .cf.
- В открывшемся окне сравнения и объединения снимем все флажки в дереве метаданных (чтобы пользовательские изменения не затерлись типовыми объектами).
- В меню Действия окна объединения выберем пункт Установить правила для объектов поставщика.
- Зададим требуемый режим: Редактируется с сохранением поддержки для измененных объектов и Не редактируется для неизмененных.
- Нажмем кнопку Выполнить. Платформа обновит только внутренние связи поддержки конфигурации, сохранив весь программный код и структуру доработанных объектов.
Важные нюансы при работе с правилами поддержки
Обратим внимание на ключевые правила предосторожности:
- Не устанавливайте правило «Не редактируется» на доработанные объекты: если на объект с измененными модулями или реквизитами установить жесткий замок поставщика, при следующем обновлении все ручные изменения будут безвозвратно перезаписаны версией поставщика.
- Проверяйте сопоставление по UUID: если объект был пересоздан вручную, простое объединение не свяжет его с поставщиком по имени. В окне сравнения и объединения потребуется вручную сопоставить пользовательский объект с объектом поставщика через меню
Действия → Сопоставить объекты.
- Тестируйте на копии: любые массовые манипуляции со структурой метаданных и правилами поддержки следует предварительно проверять на тестовой копии базы данных.