Как вернуть снятый с поддержки объект конфигурации 1С обратно на поддержку?

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

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

Однако простая попытка изменить правило поддержки в соответствующем меню часто вызывает затруднения или приводит к ошибкам платформы. В этой статье мы подробно проанализируем причины этой проблемы и разберем все практические способы её решения.

Почему возникает ошибка «Данное правило невозможно установить для нескольких объектов или рекурсивно»?

Выясним причину, по которой платформа блокирует стандартное изменение правила поддержки. Когда вы открываете окно Настройка поддержки и пытаетесь для измененного объекта (у которого установлен статус Объект поставщика редактируется с сохранением поддержки) принудительно выбрать правило Объект поставщика не редактируется, система выдает ошибку.

Это происходит из-за работы защитного механизма платформы 1С. Система не позволяет установить признак «не редактируется» на объект, структура которого в вашей основной конфигурации отличается от структуры этого же объекта в конфигурации поставщика. К таким отличиям относятся:

  1. Изменение состава подчиненных элементов (добавление или удаление реквизитов, табличных частей, форм, макетов).
  2. Изменение состава значений в перечислениях.
  3. Любые изменения в свойствах самого объекта (например, изменение длины кода справочника, типа данных реквизита или даже справочной информации).

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

Рассмотрим подробнее три основных способа решения этой задачи.

Способ 1. Использование механизма «Сравнения/объединения» через окно настройки поддержки

Это самый правильный, быстрый и безопасный способ, который не требует выгрузки файлов конфигурации и позволяет решить задачу точечно для одного или нескольких конкретных объектов — для этого есть инструмент поиска и сравнения объектов конфигурации 1С. Разберем этот процесс по шагам:

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

Способ 2. Восстановление через сравнение с внешним файлом конфигурации (CF) того же релиза

Иногда из-за сбоев в кэше или базе данных встроенная конфигурация поставщика может распознавать объекты как измененные, даже если фактически они идентичны. В таких случаях первый способ может не сработать. Посмотрим на альтернативный алгоритм решения с использованием внешнего файла поставки:

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

Способ 3. Радикальный метод (для баз с большим количеством измененных объектов)

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

  1. Обязательно создайте резервную копию (бэкап) вашей информационной базы! Любые групповые операции с метаданными несут в себе риски потери уникальных данных.
  2. Сохраните текущую измененную конфигурацию вашей базы в файл на диске. Для этого выберите Конфигурация — Сохранить конфигурацию в файл... (назовем его, например, custom_layout.cf).
  3. Откройте окно Настройка поддержки и нажмите кнопку Снять с поддержки в левом верхнем углу. Подтвердите действие. Теперь ваша база полностью снята с поддержки, все замки исчезли.
  4. Перейдите в меню Конфигурация — Загрузить конфигурацию из файла... и выберите чистый, полностью типовой файл 1cv8.cf строго того же релиза, который установлен у вас.
  5. После загрузки конфигурация станет полностью типовой, и все объекты вернутся на жесткую поддержку (появятся синие замочки).
  6. Теперь нам нужно вернуть ваши уникальные доработки, которые действительно должны быть изменены. Выберите Конфигурация — Сравнить, объединить с конфигурацией из файла... и укажите ваш ранее сохраненный файл custom_layout.cf.
  7. В окне сравнения аккуратно отметьте галочками только те объекты, формы или модули, в которых содержатся ваши реальные доработки. Те объекты, которые вы хотели вернуть на поддержку, отмечать не нужно — они останутся нетронутыми и на замке.
  8. Выполните объединение и обновите конфигурацию базы данных (клавиша F7).

Современный стандарт разработки (Best Practice)

В современных версиях платформы 1С:Предприятие 8.3 настоятельно рекомендуется минимизировать снятие объектов основной конфигурации с поддержки. Любое вмешательство в структуру типовых документов или справочников усложняет обслуживание базы — для минимизации рисков пригодится автоматизация регресс-тестирования после обновления 1С.

Вместо изменения основной конфигурации используйте механизм Расширений конфигурации (поможет архитектурный анализ конфигурации и расширений 1С):

  1. Верните все типовые объекты на полную поддержку (на замок) одним из способов, описанных выше.
  2. Создайте новое расширение через меню Конфигурация — Расширения конфигурации.
  3. Добавьте необходимый объект (например, перечисление или справочник) в созданное расширение.
  4. Вносите любые изменения (добавление новых реквизитов, изменение форм, добавление значений перечисления) внутри этого расширения.

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

← На главную