Как найти и вернуть на поддержку объекты метаданных 1С, ошибочно снятые с поддержки?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При некорректном выполнении обновления или неаккуратном объединении конфигураций нередко возникает ситуация, когда часть объектов метаданных (справочники, документы, реквизиты, табличные части) полностью снимается с поддержки поставщика (в окне настройки поддержки отображаются серым кубом вместо желтого). Это приводит к тому, что при последующих типовых обновлениях такие объекты перестают автоматически обновляться и не сопоставляются должным образом.

Разберем подробно причины этой ситуации, способы программного и визуального поиска снятых с поддержки объектов, а также методы их массового возврата на поддержку.

Выясним причины возникновения проблемы

Проанализируем основные факторы, приводящие к потере поддержки отдельными объектами:

  1. Некорректное сравнение и объединение: обновление выполнялось через меню Конфигурация → Сравнить, объединить с конфигурацией из файла без предварительного обновления конфигурации поставщика или с отключенными правилами поддержки для подчиненных объектов.
  2. Ошибочное ручное снятие с поддержки: при редактировании правил поддержки для ветки или объекта было выбрано правило «Снять с поддержки» вместо «Объект поставщика редактируется с сохранением поддержки».
  3. Рассинхронизация внутренних идентификаторов (UUID): если объект был удален и создан заново вручную с прежним наименованием, платформа воспринимает его как полностью новый пользовательский объект, не связанный с поставщиком.

Способ 1. Программный поиск снятых с поддержки объектов через выгрузку в файлы

В платформе 1С:Предприятие нет прямого программного API встроенного языка для чтения таблицы правил поддержки конфигурации во время пользовательского сеанса. Однако, начиная с платформы 8.3.10, доступен механизм выгрузки конфигурации в XML/BIN файлы, который позволяет программно проанализировать правила поддержки каждого объекта.

Разберем по шагам алгоритм анализа:

  1. Выгрузим конфигурацию в файлы через меню Конфигуратора: Конфигурация → Выгрузить конфигурацию в файлы... (либо через параметры командной строки /DumpConfigToFiles).
  2. В результирующем каталоге найдем файл ParentConfigurations.bin, в котором хранятся правила поддержки метаданных.
  3. Проанализируем файл: правила поддержки кодируются числовыми последовательностями. В частности, правило пользователя обозначается цифрами:
    0 — Объект поставщика не редактируется (на замке);
    1 — Объект поставщика редактируется с сохранением поддержки (желтый куб);
    2 — Снят с поддержки (серый куб).
    Ищем вхождение "2,0,", где первая цифра указывает на снятие объекта с поддержки пользователем.
  4. Идентификаторы объектов метаданных (UUID), следующие за правилом, сопоставим с именами объектов с помощью индексного файла ConfigDumpInfo.xml.

На базе этого механизма можно создать внешнюю обработку, которая выполнит автоматический парсинг файлов выгрузки и сформирует отчет со списком всех снятых с поддержки элементов.

Способ 2. Восстановление поддержки через окно «Настройка поддержки»

Если конфигурация содержит небольшое количество доработок или требуется вернуть правила для конкретной ветки метаданных, воспользуемся штатным окном управления поддержкой:

  1. Откроем Конфигурация → Поддержка → Настройка поддержки.
  2. Выделим корневой узел конфигурации или конкретную ветку (например, «Справочники»).
  3. Нажмем кнопку Установить правило.
  4. Выберем значение Объект поставщика редактируется с сохранением поддержки.
  5. Обязательно установим флаг Устанавливать для подчиненных объектов.
  6. Применим изменения. Платформа рекурсивно переведет все вложенные элементы (реквизиты, табличные части, формы) в режим редактирования с сохранением поддержки.

Способ 3. Массовое восстановление поддержки через сравнение и объединение

Рассмотрим наиболее надежный способ возврата поддержки для измененной конфигурации с сохранением всех внесенных доработок:

  1. Обязательно создадим резервную копию информационной базы (.dt или средствами СУБД).
  2. Получим файл поставщика .cf ровно того же релиза, который установлен в текущей базе.
  3. В Конфигураторе выполним: Конфигурация → Сравнить, объединить с конфигурацией из файла и выберем эталонный .cf.
  4. В открывшемся окне сравнения и объединения снимем все флажки в дереве метаданных (чтобы пользовательские изменения не затерлись типовыми объектами).
  5. В меню Действия окна объединения выберем пункт Установить правила для объектов поставщика.
  6. Зададим требуемый режим: Редактируется с сохранением поддержки для измененных объектов и Не редактируется для неизмененных.
  7. Нажмем кнопку Выполнить. Платформа обновит только внутренние связи поддержки конфигурации, сохранив весь программный код и структуру доработанных объектов.

Важные нюансы при работе с правилами поддержки

Обратим внимание на ключевые правила предосторожности:

  1. Не устанавливайте правило «Не редактируется» на доработанные объекты: если на объект с измененными модулями или реквизитами установить жесткий замок поставщика, при следующем обновлении все ручные изменения будут безвозвратно перезаписаны версией поставщика.
  2. Проверяйте сопоставление по UUID: если объект был пересоздан вручную, простое объединение не свяжет его с поставщиком по имени. В окне сравнения и объединения потребуется вручную сопоставить пользовательский объект с объектом поставщика через меню Действия → Сопоставить объекты.
  3. Тестируйте на копии: любые массовые манипуляции со структурой метаданных и правилами поддержки следует предварительно проверять на тестовой копии базы данных.
← На главную