Создание контекстного отчета на БСП (Лист ознакомления с графиком отпусков, ЗУП 3.1)

Публикация № 1195571

Учет и отчетность - Бухгалтерские

Библиотека стандартных подсистем 3.1.2 ЗУП 3.1 контекстный отчет дополнительные отчеты и обработки внешний отчет.

Создание контектного отчета с использованием БСП 3.1.2. Внешний отчет Лист ознакомления с Графиком отпусков для программы ЗУП 3.1.12.

Добрый день, коллеги! Тема библиотеки стандартных подсистем обширна и недостаточно раскрыта. Все новые конфигурации построены на основе этой библиотеки, - ЗУП 3.1, УТ 11, ERP 2.4 и другие. Поэтому Вашему вниманию предлагаю простой способ разработки контекстного отчета на основе СКД, поскольку большинство отчетов построено на СКД, и в экзамене на 1С Специалист по платформе тоже отчеты строятся на СКД, которые позволяют на своей основе построить отчеты с универсальными настройками и не создавать полностью макет вручную и программно его заполнять.

Пример построения подобного отчета можно посмотреть демо конфигурации БСП соответствующей версии на примере отчета _ДемоОтчетПоСчетамНаОплатуКонтекстный.

Для программы ЗУП 3.1.12 используется версия библиотеки стандартных подсистем 3.1.2. В отчете используется макет ОсновнаяСхемаКомпоновкиДанных.

Схема компоновки данныхВ данной схеме компоновки отчета отсутствуют параметры, но в полях выборки есть поле ссылка, именно по нему происходит отбор, при открытии отчета.

В модуле отчета, имеются процедуры:

  1. СведенияОВнешнейОбработке() Экспорт - для регистрации отчета в системе
 Возвращает сведения о внешнем отчете.
//
// Возвращаемое значение:
//   Структура - Подробнее см. ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке().
//
Функция СведенияОВнешнейОбработке() Экспорт
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.5.1");
	ПараметрыРегистрации.Информация = НСтр("ru = 'Отчет по документам ""Демо: Счет на оплату покупателю"". Используется для демонстрации возможностей подсистемы ""Дополнительные отчеты и обработки"".'");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет();
	ПараметрыРегистрации.Версия = "2.4.1.1";
	ПараметрыРегистрации.Назначение.Добавить("Документ._ДемоСчетНаОплатуПокупателю");
	ПараметрыРегистрации.ОпределитьНастройкиФормы = Истина;
	
	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = НСтр("ru = 'Список используемой номенклатуры в счетах на оплату'");
	Команда.Идентификатор = "Основная";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	Команда.ПоказыватьОповещение = Ложь;
	
	Возврат ПараметрыРегистрации;
КонецФункции

 

2.И две процедуры, с помощью которых происходит передача параметров из вызывающего объекта в отчет:

// СтандартныеПодсистемы.ВариантыОтчетов

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

// Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
// См. также ФормаКлиентскогоПриложения.ПриСозданииНаСервере в синтакс-помощнике.
//
// Параметры:
//   Форма - ФормаКлиентскогоПриложения - Форма отчета.
//   Отказ - Булево - Передается из параметров обработчика "как есть".
//   СтандартнаяОбработка - Булево - Передается из параметров обработчика "как есть".
//
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
	ОбъектыНазначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Форма.Параметры, "ОбъектыНазначения");
	Если ОбъектыНазначения <> Неопределено Тогда
		Форма.ФормаПараметры.Отбор.Вставить("Ссылка", ОбъектыНазначения);
	КонецЕсли;
КонецПроцедуры

// Конец СтандартныеПодсистемы.ВариантыОтчетов

Таким образом в нашем случае отбор по ссылке происходит в этом участке кода:

Форма.ФормаПараметры.Отбор.Вставить("Ссылка", ОбъектыНазначения);

 На основе этого примера, я сделал отчет "Лист ознакомления с графиком отпусков", который вызывается из формы списка, и формы документа "График отпусков", причем в этом отчете параметры присутствуют, и они корректно заполняются. Вместо "Ссылка" в вышеприведенном коде нужно вставить название вашего параметра.

После добавления внешнего отчета в Дополнительные отчеты и обработки необходимо также указать размещение, в нашем случае документ "График отпусков".

 

После этого  в меню Еще... появляется пункт Дополнительные отчеты, откуда и вызывается отчет "Лист ознакомления".

 

Скачать файлы

Наименование Файл Версия Размер
Лист ознакомления с графиком отпусков:

.erf 8,93Kb
1
.erf 8,93Kb 1 Скачать

Специальные предложения

Оставьте свое сообщение