При работе с управляемыми формами в конфигурациях на базе Библиотеки стандартных подсистем (БСП), таких как 1С:Управление торговлей 11, 1С:ERP или 1С:Комплексная автоматизация, разработчики и администраторы часто сталкиваются с неприятной ситуацией. Мы регистрируем внешний отчет в справочнике «Дополнительные отчеты и обработки», указываем в размещении раздел «Продажи», однако в самом интерфейсе программы ссылка на запуск отчета упорно не появляется. При этом в других разделах (например, в «Финансовом результате и контроллинге») все работает идеально.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем неочевидные особенности платформы 1С:Предприятие 8.3 и предоставим пошаговые инструкции для ее устранения. Также мы рассмотрим профессиональное решение — как создать собственный полноценный раздел интерфейса через расширение конфигурации и вывести туда всю вашу «внешнюю нетленку».
Выясним первую и самую частую причину этой проблемы. В типовых конфигурациях 1С структура метаданных устроена довольно сложно. В интерфейсе пользователя мы видим один лаконичный раздел «Продажи». Однако в конфигураторе за этим именем могут скрываться сразу несколько подсистем со схожими или идентичными синонимами. Например:
ОптовыеПродажиРозничныеПродажиCRMИПродажиКогда мы настраиваем размещение внешнего отчета в режиме «1С:Предприятие», система предлагает нам дерево разделов. Если мы случайно отметим галочкой подсистему, которая фактически отключена в функциональных опциях программы (например, оптовые продажи отключены, а используются только розничные), то и ссылка на дополнительные отчеты в интерфейсе не появится.
Что нужно сделать:
Разберем еще один нюанс ведения учета прав в БСП. Мало просто опубликовать отчет в нужном разделе — необходимо явно указать, у каких именно пользователей будет к нему доступ. В противном случае платформа автоматически скрывает команду вызова дополнительного отчета в интерфейсе конкретного сеанса.
При добавлении отчета обратим внимание на табличную часть вариантов отчета. Нам необходимо выполнить следующие действия:
ИспользованиеДополнительныхОтчетовИОбработок. Без этой роли подсистема БСП полностью блокирует отображение подобных интерфейсных элементов.Проанализируем ситуацию со стороны клиентского интерфейса. Иногда отчет успешно зарегистрирован и права настроены корректно, но сама группа команд «Дополнительные отчеты» просто скрыта в настройках конкретного пользователя. В интерфейсе «Такси» каждый пользователь может индивидуально настраивать состав команд своего экрана.
Выполним ручную проверку панели действий:
Посмотрим на поведение современных версий БСП (начиная с 11.4 и 11.5). Разработчики 1С постепенно уходят от практики использования отдельного окна «Дополнительные отчеты». Вместо этого внешние отчеты бесшовно встраиваются в общую панель отчетов конкретного раздела.
Вместо поиска ссылки «Дополнительные отчеты» откроем стандартное окно «Отчеты по продажам». Нам нужно проверить тематические группы отчетов. Очень часто зарегистрированный внешний отчет уже находится там, аккуратно встроенный в общий список рядом с типовыми отчетами конфигурации.
Если внешний отчет разрабатывался «с нуля», причиной проблемы может быть некорректная структура самого файла .erf. БСП требует, чтобы у отчета было правильно заполнено свойство, отвечающее за сохранение пользовательских настроек.
Рассмотрим, как это исправить в Конфигураторе:
.erf) в Конфигураторе.ХранилищеВариантовОтчетов.Иногда виновником неотображения команд становится кэш платформы. Динамическое обновление конфигурации или частое изменение настроек БСП могут привести к тому, что локальный кэш пользователя хранит устаревшую структуру интерфейса.
Попробуем выполнить следующие действия:
%userprofile%\AppData\Local\1C и %userprofile%\AppData\Roaming\1C.Если вам надоело бороться с типовой панелью разделов БСП и вы хотите сделать один выделенный пункт меню (например, «Наши отчеты»), в котором будет открываться вся ваша внешняя разработка, лучшим решением будет создание небольшого расширения конфигурации. Это позволит не снимать основную конфигурацию с поддержки.
Рассмотрим по шагам, как реализовать эту задачу:
НашРазделОтчетов).ДополнительныеОтчетыИОбработкиПереопределяемый.ПриОпределенииРазделовСДополнительнымиОтчетамиИОбработками, добавив в нее следующий код:
&После("ПриОпределенииРазделовСДополнительнымиОтчетамиИОбработками")
Процедура Расш_ПриОпределенииРазделовСДополнительнымиОтчетамиИОбработками(Разделы)
// Регистрируем нашу новую подсистему из расширения в списке БСП
Разделы.Добавить(Метаданные.Подсистемы.НашРазделОтчетов);
КонецПроцедуры
После применения данного расширения и перезапуска программы мы получим потрясающий результат: на панели разделов интерфейса «Такси» появится наш собственный раздел. А при регистрации любого внешнего отчета или обработки в списке разделов для размещения мы сможем выбрать нашу новую подсистему. Отчеты будут аккуратно и беспроблемно открываться прямо оттуда, существенно экономя время пользователей и разработчиков.