Шаблон регистрации внешней печатной формы, отладка прямо из обработки, авторегистрация.


Готовый шаблон для создания своей печатной формы. Имеется удобная форма отладки прямо из формы обработки, позволяет автоматически регистрировать обработку в справочнике «Дополнительные отчеты и обработки». Сделана на базе БСП 3.0, проверялась на БП 3.0.73, ЗУП 3.1.11, УТ 11.4.9, КА 2.4.9

Если каждый раз лень делать одно и тоже или не знаешь, как создавать внешнюю печатную форму, то это то, что нужно.

что есть:

  1. Сам шаблон, меняй функцию печати и работай.
  2. Удобно отлаживать прямо в обработке.
  3. Функция авторегистрации.

 

особенности обработки

  • Имя — это уникальное название для справочника.
  • Синоним — наименование обработки с версией
  • Комментарий — объект метаданных для печати. 

к примеру

  • Имя — ВПФ_ЗаказКлиента__ЗаказКлиента
  • Синоним — Заказ клиента v 1.2
  • Комментарий — Документ.ЗаказКлиента

 

обработка имеет набор стандартных функций для регистрации и печати

Функция СведенияОВнешнейОбработке() Экспорт

Имя = Метаданные().Имя;
Синоним = Метаданные().Синоним;
Разделитель = Найти(Синоним, "v");
Если Разделитель = 0 Тогда
Версия = "1.0";
Иначе
Версия = СокрЛП(Сред(Синоним,Разделитель+1));
Синоним = Лев(Синоним,Разделитель-1);
КонецЕсли;
НаименованиеСправочника = Метаданные().Комментарий + " - " + Синоним;
ОписаниеОтчетаОбработки = Синоним;

ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
//ПараметрыРегистрации = Новый Структура;

ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Версия", Версия);
ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
ПараметрыРегистрации.Вставить("Наименование", НаименованиеСправочника);
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
//РаботаВБезопасномРежиме.Разрешение<ВидРазрешения>(<ПараметрыРазрешения>).
//ПараметрыРегистрации.Вставить("Разрешения",);
ПараметрыРегистрации.Вставить("Информация", ОписаниеОтчетаОбработки);
ПараметрыРегистрации.Вставить("ВерсияБСП",ВерсияБСП);
//ПараметрыРегистрации.Вставить("ОпределитьНастройкиФормы",);


ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
Синоним,
Имя,
"ВызовСерверногоМетода",
Ложь,
"",
Ложь);
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

КонецФункции

для печати нужно переопределить функцию

Функция СформироватьТабличныйДокумент() Экспорт

ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетОбъекта");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок.Параметры.Дата = ТекущаяДата();
ТабДокумент.Вывести(ОбластьЗаголовок);

Возврат ТабДокумент;

КонецФункции

// Процедура выводит табличный документ внешней печатной формы
//
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

Имя = Метаданные().Имя;
Синоним = Метаданные().Синоним;

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
Имя,
Синоним,
СформироватьТабличныйДокумент());

КонецПроцедуры

 

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

Функция ПолучитьНазначениеОбработки()


//ИмяОбъекта = "Документ.ПриобретениеТоваровУслуг";
//ИмяОбъекта = "Справочник.Контрагенты";
//было
//ИмяОбъекта = "Документ." + Метаданные.Документы[0].Имя;
//должно стать, ну или укажите, что вам нужно руками
ИмяОбъекта = Метаданные().Комментарий;

Массив = Новый Массив;
Массив.Добавить(ИмяОбъекта);

Возврат Массив;

КонецФункции

 

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *