В процессе сопровождения и обновления конфигураций 1С разработчики часто сталкиваются с ситуацией, когда объекты, ранее снятые с замка (находящиеся в режиме «Редактируется с сохранением поддержки»), необходимо вернуть на полную поддержку (в режим «Объект поставщика не редактируется»). Казалось бы, процедура стандартная, но на практике она часто сопровождается труднообъяснимыми ошибками платформы, такими как «Данное правило невозможно установить для нескольких объектов или рекурсивно», или индикацией изменений в справочной информации, которых на самом деле нет. В этой статье мы подробно разберем причины такого поведения платформы и изучим пошаговые методики приведения конфигурации в порядок.
Проанализируем ситуацию, когда при попытке установить замок на справочник или документ в окне «Настройка поддержки» платформа выдает блокирующую ошибку. Это происходит из-за того, что иерархическая структура метаданных в 1С довольно сложна. Объект (например, Справочник) является владельцем множества подчиненных объектов: форм, макетов, команд, табличных частей.
Выясним причину ошибки: она возникает, когда правила поддержки для «родителя» и «детей» входят в технический конфликт. Платформа не может применить общее правило ко всему дереву объектов, если внутри этого дерева есть элементы с индивидуально настроенными правилами, которые визуально или логически мешают групповой операции.
Рассмотрим порядок действий для решения этой проблемы:
Часто встречается ситуация, когда при сравнении с конфигурацией поставщика платформа настойчиво показывает наличие изменений в объекте, хотя код, формы и структура идентичны. В 90% случаев виновником является Справочная информация (Help). Это происходит из-за особенностей хранения HTML-данных справки. Даже если текст не менялся, в файл справки могут добавиться невидимые символы (переводы строк, пробелы) или измениться кодировка при переходе между версиями платформы.
Разберем методы устранения этого «фантомного» редактирования:
Метод 1: Режим копирования из конфигурации поставщика
Если в окне сравнения и объединения вы видите «желтый куб» напротив справочной информации, выполните следующие действия:
Метод 2: Радикальное обновление через файл CF
Если первый метод не помог и строка «Объект поставщика не редактируется» остается серой (недоступной), воспользуемся более надежным способом. Для этого нам понадобится файл конфигурации (.cf) той же версии, что и текущая конфигурация поставщика.
cf файл поставщика.Иногда связь между объектом основной конфигурации и объектом поставщика повреждается настолько, что обычные инструменты не помогают. Проанализируем алгоритм восстановления связи через временное снятие с поддержки:
cf поставщика.Не стоит забывать, что 1С активно использует кэширование. Если вы внесли изменения, вернули замок, но индикатор изменений все равно висит, возможно, дело в серверном или локальном кэше. Посмотрим, как это исправить:
Во-первых, очистите локальный кэш пользователя (папки %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8).
Во-вторых, если база клиент-серверная, записи об объектах хранятся в таблице Config. В редких случаях помогает выполнение команды «Конфигурация — Поддержка — Обновить конфигурацию поставщика». Проанализируем, что это дает: платформа перечитывает структуру XML-описаний объектов из системных таблиц и обновляет внутренние индексы связей, что часто убирает ложные срабатывания о наличии изменений.
Для того чтобы в будущем минимизировать подобные проблемы, рекомендуется придерживаться следующих правил:
Используя предложенные методики (ручная установка правил в иерархии, режим копирования или полная замена объекта через cf), вы сможете вернуть конфигурацию в состояние «на замке» и избавиться от лишнего шума при последующих обновлениях системы.