В процессе доработки типовых решений на платформе «1С:Предприятие 8» разработчики часто сталкиваются с необходимостью изменения правил поддержки. Штатная ситуация: для внесения изменений мы снимаем «замочек», устанавливая правило Редактируется с сохранением поддержки. Однако иногда это происходит случайно или после завершения задачи требуется вернуть объект в исходное состояние — под полный контроль поставщика. Рассмотрим, почему кнопка установки правила часто оказывается заблокированной и как правильно вернуть объект на «замок».
Разберем типичную ситуацию: вы пытаетесь в окне «Настройка поддержки» изменить правило для конкретного справочника или документа на Объект поставщика не редактируется, но система выдает ошибку: «Данное правило невозможно установить для нескольких объектов или рекурсивно». Проанализируем причину такого поведения конфигуратора.
Дело в том, что любой сложный объект метаданных (например, Справочник) имеет иерархическую структуру. Он включает в себя реквизиты, табличные части, формы, макеты и команды. Если вы хотя бы в одном подчиненном элементе изменили правила поддержки (например, создали свою форму или добавили реквизит), основное правило родительского объекта не может быть изменено на «строгое», пока существует конфликт наследования. Платформа блокирует каскадное изменение правил, чтобы предотвратить случайную потерю ваших доработок.
Посмотрим на наиболее эффективный алгоритм действий, который помог автору темы. Суть метода заключается в том, чтобы сначала привести состояние объекта в полное соответствие с конфигурацией поставщика, а затем изменить статус поддержки.
Конфигурация — Поддержка — Настройка поддержки.Объект поставщика не редактируется. Теперь система позволит это сделать, так как объект идентичен поставщику.Бывают ситуации, когда внутренняя конфигурация поставщика повреждена или не содержит нужных данных. В этом случае проанализируем альтернативный метод с использованием внешнего дистрибутива.
Рассмотрим пошагово этот процесс:
.cf той же версии, что и установленная у нас конфигурация поставщика.Конфигурация — Сравнить, объединить с конфигурацией из файла.Установить правила поддержки для отмеченных объектов.Объект поставщика не редактируется.Выясним причину, по которой даже после удаления всех видимых изменений объект отказывается вставать на замок. Иногда система видит различия в скрытых свойствах, таких как внутренние идентификаторы (GUID) или порядок следования элементов, которые не отображаются в обычном дереве метаданных.
В таких случаях попробуем выполнить следующие действия:
Конфигурация — Обновить конфигурацию базы данных.%AppData%\Local\1C\1cv8.Проанализируем ситуацию с точки зрения сохранности данных. Нужно четко понимать, что возвращение «замочка» — это не просто смена иконки, это команда системе игнорировать любые локальные изменения в данном объекте при последующих обновлениях.
Важные моменты:
.dt или копию файла .1CD).Таким образом, мы разобрали, что возврат объекта «под замок» требует обеспечения полной идентичности объекта его версии в конфигурации поставщика. Только после устранения всех расхождений и конфликтов в подчиненных элементах платформа позволит установить правило Объект поставщика не редактируется.