В процессе работы с конфигурациями 1С, особенно такими объемными и доработанными, как Управление торговлей 10.3, разработчики часто сталкиваются с ситуацией, когда имя объекта метаданных в конфигураторе совершенно не совпадает с его представлением (синонимом) в пользовательском интерфейсе. Ситуация осложняется, когда в базе присутствуют несколько документов с очень похожими названиями, например, "Возврат товара от покупателя" и "Возврат товара от покупателей". Разберем пошагово, как эффективно найти нужный объект в дереве метаданных, используя различные инструменты платформы.
Самый быстрый способ, о котором часто забывают — это встроенное окно поиска. Проанализируем возможности комбинации клавиш Ctrl + Alt + M. Этот инструмент позволяет искать объекты непосредственно в дереве конфигурации.
При использовании этого метода важно учитывать следующие нюансы:
Важно: Как отмечено в обсуждении, стандартный поиск эффективно работает с основными синонимами, но может не учитывать специфические поля, такие как "Расширенное представление объекта" или "Представление списка", если они заданы отдельно. Если поиск не дал результатов, перейдем к более глубоким методам.
Рассмотрим ситуацию, когда объектов слишком много и стандартный поиск выдает огромный список. В верхней части окна "Конфигурация" находится иконка с изображением воронки (отбор). Этот инструмент позволяет мгновенно скрыть всё лишнее.
Выполним следующие действия:
После применения фильтра в дереве метаданных останутся только те документы, которые содержат искомую строку. Это позволяет визуально сопоставить два похожих объекта и определить их истинные имена в конфигурации.
Если у вас есть возможность запустить базу в режиме "1С:Предприятие" и открыть "неуловимый" документ, мы можем узнать его внутреннее имя (имя объекта метаданных) напрямую, не прибегая к поиску по строкам.
Проанализируем этот алгоритм:
e1cib/data/Document.ВозвратТоваровОтПокупателя?ref=....Текст, идущий после Document. и до вопросительного знака — это и есть уникальное Имя объекта в конфигураторе. Теперь вы можете просто найти его в списке документов по алфавиту, зная точное написание.
Для программиста наиболее надежным способом является обращение к объекту Метаданные. Если база запущена в режиме отладки, мы можем выполнить короткий фрагмент кода, который вернет нам имя объекта по его синониму.
Разберем пример кода, который можно вставить в "Табло" (Ctrl + Alt + W):
Для Каждого ОбьектМетаданных Из Метаданные.Документы Цикл
Если ОбьектМетаданных.Синоним = "Возврат товара от покупателей" Тогда
Сообщить("Имя документа: " + ОбьектМетаданных.Имя);
КонецЕсли;
КонецЦикла;
Или еще более лаконичный вариант для использования в "Табло" (вернет первый найденный объект):
Метаданные.Документы.НайтиПоСинониму("Возврат товара от покупателей").Имя
Этот метод исключает ошибки ручного поиска и человеческий фактор при чтении похожих строк.
Если синоним прописан не в основном свойстве, а, например, в заголовке формы или в коде, поможет Глобальный поиск. Посмотрим, как настроить его правильно для нашей задачи:
Система просканирует все метаданные конфигурации и выдаст список всех мест, где встречается эта строка. В результатах вы увидите путь к объекту, например: Документы.ВозвратТоваровОтПокупателя.Свойства.Синоним.
Если вы не уверены, какой именно документ открывается при нажатии кнопки в интерфейсе (например, из-за сложных перенаправлений в коде), можно воспользоваться Замером производительности.
Проанализируем ситуацию по шагам:
Обычно в первых строках замера будут процедуры ПередОткрытием или ПриУстановкеНовогоНомера модуля того самого документа, который вы ищете.
Поиск объекта по синониму в 1С 8.3/8.2 может быть выполнен множеством способов. Мы рекомендуем начинать с получения навигационной ссылки, так как это самый точный метод идентификации объекта. Если же доступа к запущенному приложению нет, используйте фильтр в дереве конфигурации или программный поиск через коллекцию метаданных. Знание этих инструментов значительно ускоряет работу разработчика при анализе сложных и незнакомых систем.