Как вернуть отдельный объект конфигурации на полную поддержку и установить «замок»

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

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

Анализируем причину блокировки интерфейса

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

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

Способ 1: Использование штатного механизма сравнения и объединения

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

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

После выполнения этих действий рядом с объектом снова появится иконка «замочка».

Способ 2: Лечение через внешний файл конфигурации (cf)

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

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

Особенности работы с формами и макетами

Выясним причину, по которой формы часто не встают на поддержку даже после удаления всего кода. Формы в 1С имеют сложную внутреннюю структуру (описание элементов, привязки, события). Простая визуальная схожесть не гарантирует идентичности метаданных. Рассмотрим правильный алгоритм для форм:

При сравнении и объединении с конфигурацией поставщика обязательно разворачивайте дерево объекта до уровня конкретной формы. Убедитесь, что галочка стоит именно на подчиненном объекте ФормаОбъекта или ФормаСписка. Только полная замена формы на версию поставщика гарантирует возможность возврата под замок.

Массовая установка на поддержку

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

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

Важность использования расширений

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

Это дает следующие преимущества:

Если вы переносите функционал из основной конфигурации в расширение, обязательно используйте Способ 1 для возврата объектов «под замок» после переноса кода.

Риски и нюансы с идентификаторами (UUID)

Разберем ситуацию, когда объект был случайно удален и создан заново с тем же именем. С точки зрения 1С — это абсолютно новый объект, так как его внутренний уникальный идентификатор (UUID) не совпадает с идентификатором в конфигурации поставщика. В этом случае обычное сравнение-объединение может не помочь, так как система предложит создать «дубль» или не увидит связи.

В такой критической ситуации помогает только полная загрузка конфигурации (.cf), но это крайне рискованная операция, требующая предварительного создания резервной копии и понимания того, как это повлияет на существующие данные в базе. Если UUID объекта поставщика утерян в основной конфигурации, ссылки на этот объект в существующих данных могут «побиться» (превратиться в <Объект не найден>).

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

← На главную