Разработка внешних отчетов для типовых конфигураций на базе Библиотеки стандартных подсистем (БСП), таких как 1С:Управление торговлей 11.4, требует строгого соблюдения правил регистрации объектов. Часто разработчики сталкиваются с ситуацией, когда отчет не появляется в нужном меню или не может корректно «подхватить» контекст открытого документа.
Первое, на что стоит обратить внимание при возникновении проблем с отображением внешней обработки в системе — это корректность заполнения функции СведенияОВнешнейОбработке. Частой ошибкой является выбор неправильного вида обработки.
Для корректной интеграции отчета в подменю Отчеты (или Печать) необходимо убедиться, что свойство Вид установлено в значение ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет. Использование типа ВидОбработкиДополнительныйОтчет может привести к тому, что система будет искать отчет в другом разделе или вовсе не отобразит его в формах документов.
Рассмотрим пример кода, который позволит правильно зарегистрировать ваш внешний отчет и привязать его к списку документов, таких как ЗаказКлиента или РеализацияТоваровУслуг:
Функция СведенияОВнешнейОбработке Экспорт
ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки;
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
ПараметрыРегистрации.Информация = НСтр("ru = 'Отчет по остаткам'");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет;
ПараметрыРегистрации.Версия = "1.0.0.8";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказКлиента");
МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
// Добавьте остальные необходимые документы
ПараметрыРегистрации.Назначение = МассивНазначений;
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Отчет по остаткам'");
Команда.Идентификатор = "ОсновнаяСхемаКомпоновкиДанных";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы;
Команда.ПоказыватьОповещение = Истина;
Возврат ПараметрыРегистрации;
КонецФункции
Когда вы вызываете отчет из формы документа, БСП автоматически передает в форму отчета параметры. Чтобы ваш отчет понимал, по какому документу нужно сформировать данные, необходимо выполнить следующие действия:
ПриСозданииНаСервере модуля формы вашего отчета необходимо считать параметр Отбор или переданный идентификатор документа.Схемы компоновки данных, гораздо эффективнее передать ссылку на документ через параметр &Ссылка.КомпоновщикНастроек, используя полученную ссылку. Это позволит СКД автоматически отфильтровать данные по конкретному объекту.Ваш исходный запрос, содержащий множество объединений ОБЪЕДИНИТЬ ВСЕ для разных видов документов, является избыточным. Если вы правильно передаете ссылку на документ в качестве параметра &Ссылка, то запрос можно упростить до обращения к одной табличной части.
Совет: Используйте стандартные механизмы БСП для динамического определения источника данных. Если документы имеют схожую структуру табличных частей, вы можете обращаться к ним через метаданные или просто полагаться на то, что переданная ссылка &Ссылка уже содержит нужный контекст данных.
Если вам критически важно, чтобы отчет был доступен именно через кнопку Печать в командной панели формы документа, рассмотрите вариант использования Внешней печатной формы вместо внешнего отчета.
Суть метода заключается в том, что вы регистрируете обработку как печатную форму. В этом случае БСП автоматически передает массив ссылок (даже если выделен только один документ) в метод Печать. Внутри этого метода вы можете программно открыть форму вашего отчета, передав туда массив ссылок через параметр, что значительно упрощает пользовательский интерфейс и делает доступ к отчету интуитивно понятным.
Следуя этим шагам, вы сможете успешно интегрировать любой отчет в УТ 11.4, обеспечив при этом высокую производительность и удобство для конечных пользователей.