При доработке конфигураций 1С разработчики часто создают новые документы или справочники путем копирования уже существующих объектов метаданных. Однако при попытке изменить название реквизита в скопированном документе Конфигуратор выводит диалоговое окно с предложением обновить ссылки на данный реквизит по всей конфигурации. В этом списке оказываются совершенно сторонние объекты, документы и модули, которые не должны иметь отношения к новому документу. Разберем, почему возникает такая ситуация, чем грозит слепое согласие на автозамену и как правильно поступить в данном случае.
Проанализируем механику работы Конфигуратора 1С. При любом переименовании реквизита, элемента формы или объекта метаданных платформа запускает встроенную проверку — механизм авторефакторинга. Система начинает сканировать тексты модулей, встроенные запросы, макеты и формы во всей конфигурации в поиске совпадений имени изменяемого реквизита.
Так как новый документ был создан методом копирования оригинала, имена всех его реквизитов на начальном этапе полностью совпадают с названиями реквизитов исходного объекта. В силу динамической типизации встроенного языка 1С платформа не всегда может со 100% точностью определить контекст — принадлежит ли конкретное имя реквизита в коде новому документу или исходному. Из-за этого Конфигуратор помечает все найденные совпадения как возможные места использования и предлагает автозамену по всей конфигурации.
Если в окне результатов поиска согласиться с предложением платформы и применить автозамену для всех найденных ссылок, возникнут следующие проблемы:
Рассмотрим несколько проверенных способов безопасной работы при переименовании реквизитов скопированных объектов.
Способ 1. Выборочное подтверждение изменений в окне поиска
Если вы хотите использовать авторефакторинг только для нового документа, выполните следующие шаги:
Способ 2. Отключение автоматической проверки рефакторинга
Многие разработчики предпочитают контролировать связи в коде вручную. Чтобы платформа не запрашивала проверку всех объектов конфигурации при каждом изменении имени, отключим эту функцию:
Сервис — Параметры.Общие.Рефакторинг при изменениях в метаданных и формах.Применить и сохраните настройки.Способ 3. Ручное переименование и поиск ссылок
При отключенном механизме рефакторинга мы меняем имя реквизита в дереве метаданных нового документа, а затем вручную корректируем обращения к нему в модулях и формах только этого документа. Для поиска несоответствий можно использовать стандартную глобальную проверку конфигурации или поиск по тексту в конкретном объекте.
Чтобы обезопасить конфигурацию от нежелательных массовых изменений, соблюдайте следующие правила:
.dt) или локальный бэкап.