Как определить, какой отчет открыт у пользователя в конфигурации на БСП?

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

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

Использование стандартного инструмента «Информация для технического специалиста»

Для встроенных в конфигурацию отчетов самым простым способом является использование штатного функционала платформы. Если отчет открыт, выполните следующие действия:

  1. Найдите в правой части командной панели формы кнопку с вертикальным многоточием (три точки).
  2. Выберите пункт Информация для технического специалиста.
  3. В открывшемся окне система отобразит параметры текущей формы, где будет указано полное имя метаданного (например, Отчет.НазваниеОтчета).

Этот метод отлично работает для типовых объектов. Однако для дополнительных внешних отчетов информация в этом окне может быть менее информативной, так как отчет запускается через механизм ДополнительныеОтчетыИОбработки.

Поиск по навигационной ссылке

Если вам нужно точно определить, какой именно файл или объект метаданных был вызван, воспользуйтесь механизмом навигационных ссылок. Попросите пользователя или самостоятельно скопируйте ссылку на открытый отчет через меню Еще -> Получить ссылку.

Полученную ссылку можно проанализировать. Если отчет является внешним (подключенным через справочник), ссылка будет указывать на элемент этого справочника. Вы можете использовать процедуру ПерейтиПоНавигационнойСсылке() в консоли кода, чтобы в режиме отладки система сама открыла нужный объект в конфигураторе или указала на вызываемую форму.

Программный метод: добавление кнопки для перехода к отчету

Чтобы не тратить время на поиск каждый раз, можно внедрить небольшой механизм в форму отчета (например, через расширение). Мы можем программно добавить кнопку в командную панель, которая будет сообщать нам, какой объект метаданных сейчас активен. Рассмотрим реализацию через переопределение модуля формы:

Для начала, в процедуре ПриСозданииНаСервере мы добавим реквизит формы для хранения ссылки и создадим команду для быстрого перехода:


// В модуле формы отчета или через расширение
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
    ДобавляемыеРеквизиты = Новый Массив;
    НавигационнаяСсылкаОтчета = Новый РеквизитФормы("НавигационнаяСсылкаОтчета", Новый ОписаниеТипов("Строка"));
    ДобавляемыеРеквизиты.Добавить(НавигационнаяСсылкаОтчета);
    Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
    
    Форма.НавигационнаяСсылкаОтчета = ПолучитьНавигационнуюСсылку(Форма.Параметры.Отчет);
    
    НоваяКоманда = Форма.Команды.Добавить("ПерейтиПоНавигационнойСсылкеОтчета");
    НоваяКоманда.Действие = "ПерейтиПоНавигационнойСсылкеОтчета";
    НоваяКоманда.Заголовок = "Перейти к отчету";
    
    НовыйЭлемент = Форма.Элементы.Добавить("ПерейтиПоНавигационнойСсылкеОтчета", Тип("КнопкаФормы"), Форма.Элементы.ГруппаПрограммныйИнтерфейс);
    НовыйЭлемент.ИмяКоманды = "ПерейтиПоНавигационнойСсылкеОтчета";
    НовыйЭлемент.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю;
КонецПроцедуры

&НаКлиенте
Процедура ПерейтиПоНавигационнойСсылкеОтчета(Команда)
    ПерейтиПоНавигационнойСсылке(НавигационнаяСсылкаОтчета);
КонецПроцедуры

Использование отладки на сервере

Если доступ к компьютеру пользователя ограничен, можно использовать отладку. Установите точки останова в методах, отвечающих за открытие отчетов (например, ПриСозданииНаСервере в общих модулях отчетов БСП). В настройках отладки выберите сеанс пользователя. Когда пользователь нажмет кнопку открытия отчета, система остановит выполнение кода, и вы сможете в стеке вызовов увидеть, какой именно отчет (или вариант отчета) пытается открыться. Это самый надежный способ, если стандартные методы не дают нужного результата.

Важное примечание: при работе с дополнительными отчетами всегда проверяйте справочник Дополнительные отчеты и обработки. Часто проблема кроется именно там, так как пользователь мог запустить старую версию файла, которая была ошибочно подключена как новая. Всегда сверяйте дату изменения файла в карточке объекта с той версией, которую вы правите в конфигураторе.

← На главную