Как найти объект метаданных в конфигураторе по его названию в интерфейсе 1С

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

Часто в процессе поддержки или доработки конфигураций 1С, особенно таких объемных и почтенных, как УПП (Управление производственным предприятием), разработчик сталкивается с ситуацией, когда название объекта в пользовательском режиме (заголовок окна или пункт меню) не соответствует его техническому имени в дереве метаданных. Поиск в конфигураторе по синониму может не давать результатов, если заголовок задан непосредственно в форме или если разработчики использовали специфические наименования.

В этой статье мы подробно разберем несколько эффективных методов, которые помогут нам быстро и точно найти нужный объект — будь то регистр сведений, справочник или документ — имея на руках только его «экранное» название.

Анализ структуры метаданных и причины расхождений

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

  1. Имя — идентификатор объекта в коде и базе данных (например, УчетОсновногоЗаработкаРаботниковОрганизации).
  2. Синоним — человекочитаемое название, которое отображается в интерфейсе по умолчанию (например, Учет основного заработка работников).
  3. Заголовок формы — свойство конкретной формы объекта. Если в форме списка регистра в поле Заголовок вписан текст, отличный от синонима самого регистра, то в пользовательском режиме мы увидим именно его.

Именно из-за этого расхождения обычный поиск в дереве метаданных часто оказывается бесполезным. Рассмотрим по шагам, как обойти это ограничение.

Способ 1. Получение навигационной ссылки

Рассмотрим самый быстрый и современный способ, который работает в большинстве конфигураций на платформе 8.3. Каждому объекту в системе соответствует уникальная навигационная ссылка.

Выполним следующие действия в режиме «1С:Предприятие»:

  1. Откроем интересующий нас регистр или список документов.
  2. В верхней части окна (рядом с кнопками закрытия или в меню «Сервис») найдем иконку Получить ссылку (или воспользуемся сочетанием клавиш Ctrl + F11).
  3. В появившемся окне мы увидим строку вида e1cib/list/InformationRegister.УчетОсновногоЗаработкаРаботниковОрганизации.

Проанализируем эту ссылку. Часть после InformationRegister. — это и есть точное Имя объекта в конфигураторе. Теперь нам достаточно скопировать это имя, перейти в конфигуратор и вставить его в строку поиска дерева метаданных. Этот метод исключает ошибки, связанные с различием синонимов и заголовков.

Способ 2. Программный перебор метаданных

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

Создадим внешнюю обработку или воспользуемся консолью кода и выполним следующий фрагмент:


Для каждого ОбъектМетаданных Из Метаданные.РегистрыСведений Цикл
    ТекстСообщения = ОбъектМетаданных.ПолноеИмя() + " --- " + ОбъектМетаданных.Представление(); 
    Сообщить(ТекстСообщения);
КонецЦикла;

Разберем, что делает этот код. Мы обращаемся к коллекции РегистрыСведений (аналогично можно сделать для Справочники, Документы и т.д.). Метод ПолноеИмя() возвращает системный идентификатор, а Представление() — синоним объекта. После запуска этого кода в окне сообщений появится полный список, в котором мы сможем найти нужное нам экранное название с помощью обычного поиска (Ctrl + F).

Способ 3. Использование замера производительности

Рассмотрим ситуацию, когда объект открывается, но мы не понимаем, что это за форма и к какому объекту она относится. Здесь нам поможет мощный инструмент отладки — Замер производительности.

Алгоритм действий следующий:

  1. В конфигураторе перейдем в меню Отладка и убедимся, что подключен сеанс пользователя.
  2. Выберем пункт Замер производительности (кнопка на панели инструментов с изображением секундомера).
  3. В режиме «1С:Предприятие» выполним действие: откроем нужный нам регистр или список.
  4. Вернемся в конфигуратор и снова нажмем кнопку Замер производительности, чтобы остановить его.

Перед нами откроется окно с результатами замера. В колонке Метод мы увидим вызовы процедур, таких как ПриОткрытии или ПриСозданииНаСервере. В строке будет указан путь к модулю формы, например: РегистрСведений.УчетОсновногоЗаработкаРаботниковОрганизации.Форма.ФормаСписка. Это дает нам стопроцентную информацию о местонахождении объекта в дереве метаданных.

Способ 4. «Информация для технического специалиста»

В современных версиях платформы 8.3 (начиная с релизов 8.3.15 и выше) реализован штатный функционал для решения нашей задачи. Если мы находимся в управляемом приложении, выполним следующие шаги:

  1. Нажмем на кнопку главного меню (в левом или правом верхнем углу).
  2. Выберем пункт Функции для технического специалиста (в старых версиях — «Все функции»).
  3. Найдем в списке нужный объект по представлению. Рядом с ним в скобках или в отдельной колонке будет указано его системное имя.

Если мы уже открыли форму объекта, можно воспользоваться командой Информация для технического специалиста непосредственно из окна формы (через меню «Еще»). Там будет указан тип данных и ссылка на объект метаданных.

Способ 5. Глобальный поиск по свойствам

Если классический поиск в дереве метаданных не помогает, воспользуемся Глобальным поиском (Ctrl + Shift + F). Однако вместо поиска по тексту модулей, настроим поиск по свойствам метаданных.

Проанализируем настройки поиска:

Этот метод позволяет найти текст даже в том случае, если он прописан только в заголовке формы списка, а не в самом регистре. По результатам поиска мы сможем быстро перейти к конкретной форме, а через неё — к самому объекту метаданных.

Дополнительные советы

Для опытных разработчиков в режиме отладки существует еще одна полезная комбинация клавиш — Ctrl + Alt + M. В ряде случаев она позволяет быстро позиционироваться в дереве конфигурации на объекте, форма которого открыта в данный момент (зависит от версии платформы и режима работы приложения).

Также не стоит забывать про стандартную обработку «Консоль запросов». Если мы выберем в конструкторе запроса таблицу для выбора, мы увидим список всех таблиц базы данных с их синонимами. Это отличный способ визуально найти нужный регистр среди сотен похожих названий в конфигурации УПП или ERP.

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

← На главную