Внешняя печатная форма с отладкой (шаблон) для управляемых форм

Печать - Универсальные печатные формы

Шаблон обработки предназначен для разработки внешних печатных форм с удобным механизмом отладки.

Процесс отладки внешней печатной формы достаточно трудоёмкий, здесь на Инфостарте есть различные отладчики внешних печатных форм, но они тоже имеют некоторые недостатки, вот решил "наваять свою нетленку" на эту тему :-)

Обработка представляет из себя внешнюю печатную форму, которая подключается типовым механизмом "Печатные формы, отчеты и обработки", но если в режиме Предприятия открыть обработку через Меню, Файл, Открыть, то откроется окно отладки этой печатной формы.

В открытой обработке указываем Объект печати и Имя печатной формы, нажимаем кнопку [Печать] и видим что получилось.

Переходим в конфигуратор, что-то меняем, сохраняем обработку, Возвращаемся в пользовательский режим, нажимаем кнопку [Переоткрыть форму], при этом закрывается текущая форма, открывается исправленная и сразу формируется новая печатная форма.

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

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

Описание обработки берётся из реквизитов обработки

Название печатной формы прописывается в СИНОНИМЕ МАКЕТА, т.е. одна обработка может содержать в себе несколько печатных форм.

 

Имя процедуры печати формируется из ИМЕНИ МАКЕТА в таком виде: "Печать_"+ИмяМакета

Места, где нужно вставлять свои программные модули, отмечены %изм%


 

Прикрепленная обработка  настроена на документ ПриемНаРаботу и работает в ЗУП 3.1 и БП 3.0, для других конфигураций протестировать "сходу" не получится :-(

В общем и целом в обработке нет ничего революционного, но её использование очень облегчает отладку печатных форм.

В обработке используются наработки других авторов, но за давностью у кого что взял не вспомню, но всё равно огромное вам спасибо ;-)

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

Наименование Файл Версия Размер
Внешняя печатная форма с отладкой (шаблон):
.epf 22,41Kb
12.02.18
25
.epf 1.0 22,41Kb 25 Скачать

См. также

Комментарии
2. Сергей (strange2007) 128 12.02.18 11:33 Сейчас в теме
Просто спрошу: А чем не устраивает обычный отчёт с реквизитами-параметрами, который вызывает нужную проц-у из модуля объекта? Отладка стопроцентная и никаких трудоёмких действий.
Просто для тех, кому нужна отладка, может расскажете плюсы Вашей разработки?
3. Максим Анпилов (Mx00) 154 12.02.18 12:37 Сейчас в теме
(2) не скажу про все внешние отладочные отчеты, видимо мне не повезло :-) но то, что использовал требовало каждый раз перевыбирать файл обработки иначе вешний отчет вызывал что-то из кэша и точка остановки не срабатывала. Ну и закрывать окно печатной формы приходится постоянно. Вот сейчас проверил обработку https://infostart.ru/public/138731/ - не сработала точка остановки - разбираться в чужом коде "не наш путь" - сделал своё и решил поделиться
strange2007; +1 Ответить
11. Алексей Ермилов (Alex_E) 1798 14.02.18 03:00 Сейчас в теме
(3) Как-то забросилась та обработка за ненадобностью, уже давно использую https://infostart.ru/public/535969/
12. Максим Анпилов (Mx00) 154 14.02.18 12:21 Сейчас в теме
(11) Благодарю, полезная информация, возьму себе на вооружение, но моя обработка не про копирование типовых и их изменение, а про создание своих, где логика типовых не сильно помогает :-)
13. Алексей Ермилов (Alex_E) 1798 14.02.18 12:25 Сейчас в теме
(12) Создав из типовой ПФ ВПФ с помощью констурктора имеем заготовку с отладкой, в которой меняем заполнение табличного документа на любой - получаем созданную свою форму с формой для отладки, но...., тут на, как говорится - на вкус и цвет ....
14. Максим Анпилов (Mx00) 154 14.02.18 23:40 Сейчас в теме
(13) Да, разобрался, тебе осталось только прикрутить кнопку [Переоткрыть], очень удобно при отладке не нужно закрывать и открывать ВПФ
4. webandroid webandroid (webandroid) 12.02.18 14:30 Сейчас в теме
(2) А чем не устраивает обычный отчёт с реквизитами-параметрами,

А можно подробнее, что за отчет?
5. Сергей (strange2007) 128 12.02.18 15:27 Сейчас в теме
(4) Например, надо создать отлаживаемую печатную форму для документа. Делаю отчёт, где в модуле объекта формирую утверждённую ф-ию "печать", формата
Функция Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода, ЭтоОтладка=Ложь) Экспорт
В этой ф-ии формирую отчёт по правилам БСП.

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


Готово. Образец для отладки любых печатных форм готов. Если в БСП что-то поменяют, то достаточно изменить утверждённую функцию и вызов к ней.
Просто вот честно, не понимаю чего там сложного. На всё про всё минут 10-30 первый раз уходит, а потом вообще нисколько.
По такому же алгоритму набросал и остальные шаблоны.
6. Максим Анпилов (Mx00) 154 12.02.18 16:11 Сейчас в теме
(5) Всё так, только не понятно это описание самой обработки внешней печатной формы или дополнительной обработки для отладки?
7. Сергей (strange2007) 128 13.02.18 05:12 Сейчас в теме
(6) Сама внешняя печатная форма. Настраиваете её, отлаживаете и потом "скармливаете" БСП.
Я так понимаю забрал у кого-то хлеб? Да?
8. Максим Анпилов (Mx00) 154 13.02.18 05:38 Сейчас в теме
(7) Хлеб берут не тут :-)
Да моя обработка именно это и делает, плюс переоткрытие одной кнопкой, а не Меню,Файл,Открыть как у тебя :-)
запоминание последнего объекта и удобный механизм нескольких макетов... ничего сложного, но всё для удобства
я так и написал в описании "В общем и целом в обработке нет ничего революционного, но её использование очень облегчает отладку печатных форм"
Наверно все продвинутые себе такое уже сделали, один я мучился дополнительными обработками отладки ;-)
9. Сергей (strange2007) 128 13.02.18 05:47 Сейчас в теме
(8) В таком случае, Максим, я спокоен, т.к. Ваша разработка предназначена как раз для тех, кто не сможет из моих выкладок выявить что-то полезное для себя.
10. Максим Анпилов (Mx00) 154 14.02.18 01:32 Сейчас в теме
(9) Я тоже успокоился - ни кому это не нужно :-)
думал ещё выложить внешнюю обработку заполнения документов с (само)отладкой, но это так же никому не будет интересно :-)
15. Роман Уничкин (unichkin) 936 17.02.18 12:11 Сейчас в теме
16. Максим Анпилов (Mx00) 154 18.02.18 11:42 Сейчас в теме
(15) Вот я бы не сказал, что это проще - на время отладки нужно обработку изменить, а перед тем как загружать обратно изменить, это очень не удобно ИМХО.
17. Роман Уничкин (unichkin) 936 19.02.18 10:02 Сейчас в теме
(16) Нет, обработка дорабатывается один раз - вставляется вызов внешней, который можно сразу удалить. Перед тем как загружать обратно ничего менять не нужно. Разве что безопасный режим - но он на работоспособность не влияет.
18. Максим Анпилов (Mx00) 154 19.02.18 13:27 Сейчас в теме
(17) как вариант "замороченной" отладки очень хорошо, но это подходит когда печатная форма делается "в один проход", т.е. сделал и больше не дорабатываешь. У меня пример трудового договора и пока будут отработаны все варианты условий может пройти много времени и постоянно менять вызов обработки, да ещё с прописыванием пути в самой обработке - не вариант. Но для отладки какой-нибудь чужой обработки буду пользоваться :-)
19. Роман Уничкин (unichkin) 936 19.02.18 19:19 Сейчас в теме
(18) А его не надо менять "постоянно") Как нужно дорабатывать - делаем вызов один раз, потом загружаем в ИБ как есть - вызов внешней будет закомментирован. При последующих доработках его надо раскомментировать, вот и все. Я пробовал, когда еще сам был начинающим внешние отладчики - сейчас могу с уверенностью сказать что "замороченная" отладка - это как раз про них.
Единственное, где это может быть неудобно - если есть 100500 экспортных методов, т.к. отладка точечная. При таком варианте еще можно сказать что внешний отладчик удобнее - но вообще, странно если у одной внешней обработки настолько большой программный интерфейс.. Я с таким не сталкивался - обычно алгоритмы детализированы.
20. Алексей Голосеев (Aleksey81) 556 27.02.18 19:09 Сейчас в теме
Превосходный шаблон!!! Спасибо!
nagaitseff; +1 Ответить
Оставьте свое сообщение