При работе с незнакомой конфигурацией 1С или при необходимости доработки существующего функционала начинающие разработчики часто сталкиваются с проблемой: отчет в режиме «Предприятие» открыт, но найти его в дереве метаданных конфигуратора не удается. Это может быть связано с тем, что имя отчета в интерфейсе (синоним) отличается от его имени в конфигурации, отчет является внешним или он добавлен через механизм расширений. Чтобы лучше ориентироваться в объектах, полезно понимать, как представлена структура хранения БД в виде дерева конфигурации, но сейчас рассмотрим подробно все способы, которые помогут нам точно определить «прописку» любого отчета.
Это самый быстрый и надежный способ в современных версиях платформы 1С:Предприятие 8.3. Разберем по шагам, как получить данные об объекте напрямую из интерфейса пользователя.
Во многих конфигурациях в правом верхнем углу окна отчета или основного окна программы находится кнопка с тремя точками или сервисным меню. Нам необходимо найти пункт «Информация для технического специалиста». Если этот пункт есть, при его нажатии откроется окно, где в поле «Объект» будет указан полный путь к метаданным, например, Отчет.ПродажиПоСкладам. Это и есть точное имя, которое нужно искать в конфигураторе.
Проанализируем ситуацию, когда этого пункта нет в меню. В современных интерфейсах (начиная с платформы 8.3.17) режим технического специалиста нужно предварительно включить. Для этого выполним следующие действия:
Выясним причину, почему иногда полезно нажимать на кнопку со значком скрепки. В верхней части формы любого объекта 1С есть кнопка «Получить ссылку». При ее нажатии программа генерирует внутренний адрес объекта. Рассмотрим структуру такой ссылки:
e1cib/app/Report.ВаловаяПрибыль
В этой строке часть после последнего слеша прямо указывает на тип объекта (Report — отчет) и его имя в метаданных (ВаловаяПрибыль). Даже если в заголовке окна написано «Анализ продаж за месяц», в конфигураторе мы будем искать именно ВаловаяПрибыль.
Если визуальные методы не помогли, воспользуемся мощным инструментом конфигуратора — Глобальным поиском. Рассмотрим этот процесс подробнее:
Ctrl+Shift+F (или меню «Правка» — «Глобальный поиск»).Проанализируем ситуацию, когда поиск по названию не дает результатов. Такое бывает, если название формируется программно. В этом случае попробуем найти уникальное название колонки из шапки отчета.
Разберем продвинутый метод, который позволяет мгновенно перейти к объекту из режима отладки. Для этого:
F5).Если поиск по основному дереву конфигурации ничего не дал, мы должны рассмотреть вариант, что отчет не является частью основной конфигурации. Посмотрим, где он может «прятаться»:
1. Дополнительные отчеты и обработки (БСП). Многие современные базы используют Библиотеку Стандартных Подсистем. В этом случае отчет может храниться в справочнике. Проверим это:
.erf откроем в конфигураторе через меню «Файл» — «Открыть». Теперь его можно редактировать.2. Расширения конфигурации. Отчет мог быть добавлен разработчиками в отдельном слое — расширении. Проанализируем список расширений:
Каждое открытие отчета пользователем фиксируется системой. Мы можем использовать это как диагностический инструмент. Разберем по шагам:
Report.НазваниеВашегоОтчета. Это и есть искомый идентификатор для конфигуратора.Если объектов очень много и ручной поиск затруднен, мы можем написать короткий скрипт во внешней обработке или консоли кода, чтобы вывести список всех отчетов с их синонимами. Рассмотрим пример кода:
Для каждого ТекущийОтчет Из Метаданные.Отчеты Цикл
Сообщить("Имя: " + ТекущийОтчет.Имя + " | Синоним: " + ТекущийОтчет.Синоним);
КонецЦикла;
Этот простой цикл переберет все отчеты в базе и выведет их реальные имена. Если же вам нужен готовый инструмент с наглядным интерфейсом, используйте универсальный отчет по метаданным расширенный, который поможет быстро сопоставить синонимы и имена объектов. Этот метод исключает ошибки, связанные с тем, что мы могли проглядеть объект в огромном дереве конфигурации.
Иногда то, что пользователь видит на экране, не является отдельным объектом типа Отчет. Проанализируем ситуацию с Универсальным отчетом. Если в заголовке формы написано «Универсальный отчет», значит, перед нами стандартный инструмент платформы, который просто настроен на отображение данных конкретного регистра или документа. В этом случае в конфигураторе нужно искать объект УниверсальныйОтчет. Логика же конкретных колонок и отборов в этом случае хранится в настройках пользователя или в предопределенных настройках в коде, а не в отдельной схеме СКД.
Используя предложенные методы, мы сможем найти любой, даже самый «спрятанный» отчет в системе 1С и приступить к его доработке или анализу кода.