gifts2017

Внешние печатные формы в восьмерке II (дополнительные параметры)

Опубликовал Poppy (poppy) в раздел Программирование - Практика программирования

С выходом платформы 8.1 появились новые редакции типовых конфигураций (УТ 10.3 и БП 1.6), а с ними и новые возможности в создании внешних печатных форм.

Статья является продолжением цикла статей и разработок:
Внешние печатные формы в восьмерке http://infostart.ru/blogs/157
Обработка для тестирования внешних печатных форм в восьмерке http://infostart.ru/projects/833/
Использование встроенного почтового клиента - http://infostart.ru/blogs/161/
Документ с печатью и подписью - http://infostart.ru/blogs/162/
Внешние печатные формы в восьмерке II - http://infostart.ru/blogs/324/
Заполнение табличных частей документов в восьмерке (внешние обработки) http://infostart.ru/blogs/345/
Обработка для тестирования внешних обработок изменения табличных частей http://infostart.ru/projects/1749/
Использование свойств объектов при доработке типовых конфигураций http://infostart.ru/blogs/692/
В конфигурациях под 8.1 появилась возможность передавать параметры во внешнюю обработку. Для того чтобы воспользоваться новой технологией у обработки должен быть реквизит ДополнительныеПараметры типа «Произвольный». Если для вызова обработки предусмотрены параметры, то они будут в указанном реквизите. Параметры передаются в виде структуры.
Например, в типовой конфигурации в документе «РеализацияТоваровУслуг» предусмотрена печать накладной, как в валюте, так и в рублях. Реализуется это с помощью параметра, передаваемого в функцию Функция ПечатьДокумента(СуммыВРублях = Ложь).
Аналогично можно передать параметр во внешнюю печатную форму через реквизит «ДополнительныеПараметры». Для приема параметра можно воспользоваться кодом:
СуммыВРублях = Ложь;
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
	Если ДополнительныеПараметры.Свойство("СуммыВРублях") Тогда
		СуммыВРублях = ДополнительныеПараметры.СуммыВРублях;
	КонецЕсли;
КонецЕсли; 

Теперь осталось настроить передачу параметра внешней печатной форме в конфигурации. Для этого создаем новый элемент справочника «Внешние обработки» и заполняем его, как показано на рисунке.
В результате, мы получаем две печатные формы в одной внешней обработке.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. ineoosaki (ineoosaki) 04.02.08 12:47
2 poppy
Скоро появиться продолжение от м-ра Евгена ;)
2. Аркадий Кучер (Abadonna) 04.02.08 14:53
(1) Жаль что этому мистеру по интернету не получится кое-что почистить
3. Poppy (poppy) 05.02.08 11:51
4. Юра (Yra_bes) 27.08.08 20:04
5. ineoosaki (ineoosaki) 15.01.09 05:03
даду еще ссылку на статью о печатных формах в восьмерке.
http://uit.kiev.ua/ru/company/articles/index.php?ELEMENT_ID=3055
6. Алекс Маслюков (Alex_1066) 16.09.09 17:27
...очень хотел посмотреть реализацию, но в бухгалтерии этого не нашёл :(
7. Poppy (poppy) 16.09.09 19:13
(6) Чего не нашел?

Описанный механизм в типовой БП поддерживается. В качестве примера можешь посмотреть эту http://infostart.ru/projects/4355/ обработку.
8. Алекс Маслюков (Alex_1066) 16.09.09 20:24
спасибки... обязательно посмотрю
9. Виталий Глазунов (Altez) 08.11.09 23:57
(4) хароший умный дэвушка,)
списиб
10. Сергей Корнев (Jako) 05.01.10 10:40
За обработку тестирования табличных частей особ спасиб!!!
11. Анатолий Кримчак (h_vitya) 20.09.11 17:03
ineoosaki пишет:

даду еще ссылку на статью о печатных формах в восьмерке.
http://uit.kiev.ua/ru/company/article...NT_ID=3055


Спасибо! То что надо =)
12. Пуд (Пуд) 14.12.11 14:55
Спасибо!Как-то этот момент от меня ускользнул.
13. Maratimus Arslan (maratimus) 15.12.11 12:43
очень помогла , спасибо разбогатею пришлю деньги, да для тех кто не знает, для отладки нужно поставить брейк на строку ТабДокумент = ВнешняяОбработка.Печать(); , а потом нажать F11.
Maximysis; perforator; +2 Ответить
14. Olga Gabuza (OLga_gab) 02.02.12 02:16
За ссылочку на статью о печатных формах в восьмерке.
http://uit.kiev.ua/ru/company/article...NT_ID=3055
спасибо = очень классно написано
15. Mikle Kaletin (Shickom) 29.02.12 07:46
Хотелось бы аналогичной статьи для 8.2 управляемого приложения
16. Роман Хусяинов (rom-x) 25.10.12 17:40
Есть внешняя обработка, в которой 2 макета, в процедуре Печать() код:
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
    	Если ДополнительныеПараметры.Свойство("ИмяМакета") Тогда
    		ИмяМакета = ДополнительныеПараметры.ИмяМакета;
    	КонецЕсли;
    КонецЕсли;    
...Показать Скрыть


При регистрации указываю 2 строки, в первой Параметр ИмяМакета = Макет, во второй ИмяМакета = Макет1, выходит всегда только одна печатная форма, если первую строчку указываю Макет, то выходит Макет, соответственно если узказать Макет1 а во второй Макет, то выходит Макет1, что не так делаю?
17. Николай . (Kolunya) 26.02.13 14:10
Спасибо за инфу!!!
создал обработку, при регистрации сделал несколько строк с разными доп.параметрами (указал разные ИмяМакета)
все супер!, но ...
в списке печФорм при нажатии на кн.Печать - одно и тоже наименование из регистрации ПФ "Комплект документов покупателя" и "Комплект документов покупателя(2)", "Комплект документов покупателя(3)"..(((
как можно задать разные названия? типа "Комплект - Торг12", "Комплект Спецификация"
Вариант с регистрацией еще одной печформы не предлагать, хочу вот так красиво попробовать реализовать..;-)
возможно такое?
18. msv23 Иванов (msv23) 03.04.14 13:37
19. Дмитрий Иванов (MasterIt) 09.12.14 16:18
Хороший материал, мне как новичку очень пригодился, спасибо!
20. г. Казань Рустем Гумеров (Rustig) 06.08.15 19:12
для всех остальных:
для использования ДополнительныхПараметров приходится указывать ЗаменяемыеПечатныеФормы... то есть они должны быть изначально....
а если печатная форма создается как новая, а не как заменяемая?... тогда обходимся без дополнительных параметров..... просто создаем столько печатных форм, сколько разных значений параметра.
кстати, дополнительные параметры могут принимать только значения примитивных типов: строка, булево, дата, число.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа