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

17.08.18

Учетные задачи - Печатные формы

Шаблон обработки предназначен для разработки внешних печатных форм с удобным механизмом отладки. Пример внешней печатной формы "Счет на оплату покупателю" для БП 3.0.64.28

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

Наименование Файл Версия Размер
Внешняя печатная форма с отладкой (шаблон):
.epf 22,46Kb
74
.epf 1.0 22,46Kb 74 Скачать
Счет на оплату покупателю с отладкой
.epf 78,23Kb
15
.epf 78,23Kb 15 Скачать

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

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

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

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

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

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

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

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

 

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

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


 

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

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

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

Обновление 19.07.2018.
Добавил внешнюю печатную форму счета с синей печатью.
Пришлось это сделать т.к. 1С опять учудила и теперь вывод синей печати настраивается флажком (раньше была отдельная печатная форма) и теперь чтобы отправить счет на e-mail приходится сначала выводить форму счета, потом ставить флажок и только потом отправлять :-(  и флажок (редиска) запоминается и при печати ТОРГ-12 тоже выводит синюю печать... надеюсь они исправятся, а пока буду использовать ВПФ

Внешняя печатная форма отладка шаблон Переоткрыть форму

См. также

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7252    21    6    

39

Универсальная печать по шаблонам Word (Печать договоров из 1С БП 3, УНФ 1.6, ЗУП 3, УТ 11, КА 2, ERP 2, ДО 3)

Печатные формы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Научите вашу 1C печатать из 1С в файл Word (Например: трудовые договоры, договоры с контрагентами, спецификации, дополнительные соглашения, приказы, коммерческие предложения, акты, накладные, карточки партнера или любого справочника и многие другие). Универсальная печать предназначена для формирования печатных форм на основе шаблонов в формате Word из любой конфигурации 1С. С помощью данного инструмента можно самостоятельно заполнить шаблон реквизитами справочника или документа 1С и сформировать печатные формы на основании ссылки на любой объект.

5400 руб.

08.10.2019    42660    143    88    

134

SALE! 25%

УТ 11, КА 2, ERP 2: Настраиваемые под каждую организацию печать и подпись ответственных лиц в печатных формах (ТОРГ-12, Счёт-фактура, УПД, УКД, Заказ клиента, Акт сверки, М-15 и др.)

Печатные формы Взаиморасчеты Оптовая торговля Производство готовой продукции (работ, услуг) Акт сверки Оперативный учет Управляемые формы 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Задайте для каждой организации свою печать и для каждого физического лица свою подпись. Выберите в документе печатную форму "... с печатью и подписью" - и автоматически сформируется табличный документ с печатью и подписями той организации и ответственных лиц, которые указаны в документе.

12000 9000 руб.

13.03.2018    56421    179    76    

112

Печатные формы КС-2 и КС-3 в "1С:Бухгалтерия 3.0"

Печатные формы Производство готовой продукции (работ, услуг) Платформа 1С v8.3 Бухгалтерский учет Оперативный учет 1С:Бухгалтерия 3.0 Строительство Россия Бухгалтерский учет Платные (руб)

Откройте для себя заполнение КС-2 и КС-3 в "1С:Бухгалтерия 3.0". Вы получаете удобство, скорость и систему, чтобы заполнить, распечатать и сохранить формы КС-2 и КС-3 из документов "Оказание производственных услуг" или "Реализация товаров услуг". Вы можете заполнить дополнительную информацию о материалах из документов "Требование-накладная" и указать сведения, которые не предусмотрены типовой конфигурацией "1С:Бухгалтерия 3.0". Так же доступно множество настроек для формирования КС-2 и КС-3.

3240 руб.

13.02.2019    87963    388    44    

371

Печать актов МХ-1, МХ-3 в 1С:Бухгалтерия 3.0

Печатные формы Логистика, склад и ТМЦ Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обработки для "1С:Бухгалтерия 3.0", которые формируют акты МХ-1 и МХ-3 для документов "ПоступлениеТоваровУслуг", "Реализация товаров услуг", "Возврат товаров поставщику", "Передача материалов в эксплуатацию" соответственно. Так же можно сформировать акты с факсимиле, которая загружена в 1С:Бухгалтерия 3.0.

2520 руб.

18.02.2019    61088    170    14    

139

Путевые листы (расширение)

Печатные формы Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Транспорт, автопарки, такси Бухгалтерский учет Платные (руб)

Учет путевых листов выполнен в виде расширения. Предназначен для учета путевых листов в конфигурации Бухгалтерия предприятия 3.0. и Комплексная автоматизация 2. Печатная форма: Типовая межотраслевая форма № 3. Утверждена постановлением Госкомстата России от 28.11.97 № 78. Типовая межотраслевая форма № 4-П от 18.09.2008 г. N 152 с учетом изменений указанных в Приказе Министерства транспорта Российской Федерации №368 от 11 сентября 2020 г. №368, Типовая межотраслевая форма № ЭСМ-7, и др. ЭСМ-2, 4-С, 3 спец., 6 спец., ПЛ для Автомобильного крана. .

2000 руб.

14.10.2019    36509    224    215    

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

я ручками писал. О каком конструкторе идет речь?
4. webandroid 2 12.02.18 14:30 Сейчас в теме
(2) А чем не устраивает обычный отчёт с реквизитами-параметрами,

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

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


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


вот это работает неправильно, нужно менять. Нельзя удалять строки в перебираемой таблице значений, кое что может и остаться.

Вот так что ли:

        МассивКУдалению = Новый Массив;
	КоллекцияПечатныхФорм=РеквизитФормыВЗначение("Объект").ПолучитьКоллекциюПечатныхФорм();
	Для Каждого ТекПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
		Если ТекПечатнаяФорма.СинонимМакета<>Объект.ИмяПечатнойФормы Тогда
			МассивКУдалению.Добавить(ТекПечатнаяФорма);
		КонецЕсли;
	КонецЦикла;
	Для Каждого Элемент из МассивКУдалению цикл
		КоллекцияПечатныхФорм.Удалить(Элемент);
	КонецЦикла;
Показать


а в целом спасибо.
24. Mx00 247 17.08.18 17:02 Сейчас в теме
(21) да, я согласен, что не правильно - в печатной форме счета уже сделано по другому, а в "шаблоне" забыл поправить, сейчас исправлюсь :-)
теперь там сделано так:
в модуле объекта функция ПолучитьКоллекциюПечатныхФорм обзавелась параметром
Функция ПолучитьКоллекциюПечатныхФорм(ФильтрПоСинониму="*") Экспорт
	КоллекцияПечатныхФорм=Неопределено;
	Для Каждого ТекМакет Из ЭтотОбъект.Метаданные().Макеты Цикл
		Если ЗначениеЗаполнено(ТекМакет.Синоним) И Тип(ПолучитьМакет(ТекМакет.Имя))=Тип("ТабличныйДокумент") Тогда
			Если ФильтрПоСинониму="*" Тогда // Все печатные формы
			ИначеЕсли ТекМакет.Синоним=ФильтрПоСинониму Тогда // Фильтр совпадает с синонимом текущей печатной формы
			Иначе
				Продолжить; // пропускаем текущую печатную форму
			КонецЕсли;
			Если КоллекцияПечатныхФорм=Неопределено Тогда // Создадим ТЗ КоллекцияПечатныхФорм
				КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ТекМакет.Имя);
				СтрокаКоллекцияПечатныхФорм=КоллекцияПечатныхФорм[0]; // выберем первую строку
			Иначе
				СтрокаКоллекцияПечатныхФорм=КоллекцияПечатныхФорм.Добавить();
			КонецЕсли;
			СтрокаКоллекцияПечатныхФорм.ИмяМакета=ТекМакет.Имя;
			СтрокаКоллекцияПечатныхФорм.ИмяВРЕГ=ВРег(СтрокаКоллекцияПечатныхФорм.ИмяМакета);
			СтрокаКоллекцияПечатныхФорм.СинонимМакета=ТекМакет.Синоним;
		КонецЕсли;
	КонецЦикла;
	Возврат КоллекцияПечатныхФорм;
КонецФункции
Показать


а в модуле обработки нет удаления
КоллекцияПечатныхФорм=РеквизитФормыВЗначение("Объект").ПолучитьКоллекциюПечатныхФорм(Объект.ИмяПечатнойФормы);


благодарю за баг-репорт
25. Mx00 247 17.08.18 17:11 Сейчас в теме
и тем кто дочитает то этого комментария :-)
отличие обработок "шаблон" и "счет":
в "шаблоне" все данные для печати предварительно собираются в структуре ПараметрыДляПечати
а в "счете" данные для печати собираются в таблице значений (использовал типовой механизм ТаблицаСведений=ПечатьТорговыхДокументов.ПолучитьОписаниеСчетаНаОплату();
Оставьте свое сообщение