Шаблон разработки печатных форм и подключения к конфигурациям на БСП 2.х и БСП 3.0

0. tolX5 127 04.10.19 09:15 Сейчас в теме
«Вместо поставки внешних печатных форм в виде внешних обработок рекомендуется вести их разработку с помощью расширений конфигурации.» [ИТС, БСП гл. 3.38 Печать] У меня задачи типа «Требуется разработать печатную форму …» появляются регулярно, но с временными интервалами. Что бы вести разработку единообразно, для конфигураций на БСП, я заготовил шаблон для таких задачек, который позволяет мне сразу приступить к разработке макета и алгоритма формирования печатной формы, а «обертка» из БСП уже готова.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. d.samsonov92y 04.10.19 12:44 Сейчас в теме
«Вместо поставки внешних печатных форм в виде внешних обработок рекомендуется вести их разработку с помощью расширений конфигурации.» [ИТС, БСП гл. 3.38 Печать]
а как они данный тезис закрепили? для мотивации юзать новый функционал или какие то проблемы не решаемые с привычным способом создания внешних печатных форм?
за статью спс)
MikhailGirshberg; kild; +2 Ответить
4. Кадош 06.10.19 11:17 Сейчас в теме
(1) разработчики отказались от развития подсистемы допотчетов и допобработок по причинам безопасности и отсутствия модулей менеджера.
cleaner_it; +1 Ответить
2. SarethDark 04.10.19 15:55 Сейчас в теме
Запрос в цикле? Сомнительное решение... Правильнее одним запросом выбрать данные по всем объектам, а потом в цикле обходить группировки.
simy4; kild; +2 1 Ответить
9. tolX5 127 22.10.19 08:49 Сейчас в теме
(2)С этим не поспоришь, если формировать больше одного табличного документа, рекомендуется получить данные до формирования табличных документов. Я чаще сталкиваюсь с задачей много печатных форм у одного документа, обработку массива сохранил т.к. подсистема «Печать» позволяет. Вот доработка нарисовалась, спасибо за дельное замечание.
16. mikecool 18.11.19 17:08 Сейчас в теме
(2) уже много мест в типовых переделано, где получаются данные по всему массиву переданных объектов, а далее по ключу забираются нужные
3. feva 494 04.10.19 20:48 Сейчас в теме
Уххх сразу флэшбэки ловить начал. "Джони эти расширения по всюду, они даже во внешних обработках, Джони..". А Так спасибо!)
5. user633533_encantado 11 08.10.19 21:35 Сейчас в теме
Весь модуль менеджера документа тащить в расширение ?
10. tolX5 127 22.10.19 08:57 Сейчас в теме
(5)Сама «соль» в том, что документ и его модуль менеджера «ваще» не трогаем, все в модуле обработки созданной в расширении.
6. motorkuzbassa.it 94 09.10.19 17:40 Сейчас в теме
для УРБД это провал, расширения потребуется включать в обмен, в котором они будут ездить всегда, в отличии от допов, которые уезжают только при изменении...
AnryMc; Lapitskiy; +2 Ответить
11. tolX5 127 22.10.19 09:00 Сейчас в теме
(6) ушел от УРБД очень давно, неужели если нет изменений в расширении поедет в узел?
12. motorkuzbassa.it 94 22.10.19 15:12 Сейчас в теме
7. simy4 13.10.19 16:08 Сейчас в теме
Подскажите пожалуйста, а если перед печатью нужно вывести диалоговое окно, как быть?
8. tolX5 127 22.10.19 08:48 Сейчас в теме
(7)Можно дать «круголя» в клиентский контекст, запросить у пользователя интерактивно доп. параметры перед печатью и вернуться назад на сервер в процедуру Печать модуля менеджера вот так:
1. В процедуре ДобавитьКомандыПечати определяем в параметре КомандыПечати.Обработчик имя Клиентской функции, в которую перенаправим управление;
2. Добавляем эту Клиентскую функцию в модуль формы обработки или общий клиентский модуль;
3. Из клиентского контекста возвращаем управление на сервер вызовом метода УправлениеПечатьюКлиент.ВыполнитьКомандуПечати
Например, вот так (1):
Команда.Обработчик = "ПечатьАктПередачиНаКомиссиюКлиент";

(2) (3) Например так, в форме запрашиваем реквизит «Автомобиль» и передаем в процедуру формирования табличного документа на сервер.
&НаКлиенте
Перем ПараметрыФормы;

&НаКлиенте
Функция ПечатьАктПередачиНаКомиссиюКлиент(ПараметрыПечати) Экспорт
	
	ПараметрыФормы = ПараметрыПечати;
	
	ЭтотОбъект.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
	ЭтотОбъект.Открыть();
	
КонецФункции

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	ДополнительныеПараметрыПечати = Новый Структура;
	ДополнительныеПараметрыПечати.Вставить("Автомобиль", ЭтаФорма.Автомобиль);
	
	УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(ПараметрыФормы.МенеджерПечати, ПараметрыФормы.Идентификатор,
		ПараметрыФормы.ОбъектыПечати, ПараметрыФормы.Форма, ДополнительныеПараметрыПечати);
	
КонецПроцедуры
Показать
15. simy4 23.10.19 10:02 Сейчас в теме
(8)благодарю. у меня получилось следующим образом:
Менеджер обработки:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	Команда = КомандыПечати.Добавить();
	Команда.Представление = НСтр("ru = 'ТЕстовая печать (расширение)'");
	Команда.Идентификатор = "ТестовыйИдентификатор";
	Команда.ПроверкаПроведенияПередПечатью = Истина;
	Команда.Порядок = 1;
	Команда.Обработчик	= "ОткрытьФормуПечати";
	Команда.МенеджерПечати= "Обработка.ТестоваяПечать";
	
КонецПроцедуры
Показать


Форма обработки:
&НаКлиенте
Функция ОткрытьФормуПечати(ПараметрыПечати) Экспорт //процедура
	//кешируем параметры печати в реквизиты формы

	АдресОбъектовПечати = ПоместитьВоВременноеХранилище(ПараметрыПечати.ОбъектыПечати, УникальныйИдентификатор);
	МенеджерПечати	 	= ПараметрыПечати.МенеджерПечати;
	ИменаМакетов		= ПараметрыПечати.Идентификатор;
	Открыть();
  
 
КонецФункции


&НаКлиенте
Процедура Печать(Команда)
	
	ОбъектыПечати = ПолучитьИзВременногоХранилища(АдресОбъектовПечати);
	УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(МенеджерПечати, ИменаМакетов, ОбъектыПечати, ЭтотОбъект, Новый Структура("Тест"));

КонецПроцедуры
Показать
13. motorkuzbassa.it 94 22.10.19 15:13 Сейчас в теме
(7)Используйте типовые шаблоны внешек БСП , они более чем , покрывают все потребности. и с предварительным окном и пр...
14. simy4 23.10.19 09:58 Сейчас в теме
(13)спасибо за совет. видимо я не до конца точно выразился.
...как быть, при условии работы в расширении с конфигурациями на БСП 3.
17. RustIG 1692 10.04.20 15:30 Сейчас в теме
(0) в УТ 11.4 шаблон расширения после подключения выдает ошибки, поскольку сам шаблон разрабатывался на УНФ. Подключать и тестировать лучше все-таки на УНФ.
18. RustIG 1692 10.04.20 15:35 Сейчас в теме
(0) при подключении к УНФ 1.6.20.94, платформа 8.3.15.1830 выдается ошибка
Расширение1 Конфигурация саУНФДокРасходнаяНакладнаяДопПечатныеФормы Значение контролируемого свойства РежимСовместимости у объекта не совпадает со значением в расширяемой конфигурации Исправить...

У вас режим совместимости 8.3.12, у конфы 8.3.14 - но это легко поправить.
19. AnryMc 842 25.10.21 08:59 Сейчас в теме
(5)
Насколько я понял из описания...
Плюсы:
- Можно в одно расширение "впихнуть" много ВПФ
- соответственно можно использовать общие модули с "повторяющимся" кодом
Минусы:
- Раньше для ВПФ при её добавлении определялся "перечень" объектов где её использовать, теперь надо для каждой прописывать в коде.. Тоже самое и для модулей печати
- Т.к. есть различные конфигурации - нужно создавать вырианты "наименований" подключаемых объектов (Например если ЗУП то не подключать ПТУ, РТУ, и т.д.)

З.Ы. Например у меня есть "универсальные" ВПФ: "История объекта", "Печать движений" и пр...
Можно все собрать в одно расширение и для каждой обработки:
Прописать для каких объектов её подключать... (или вынести это в общих модуль, или сделать регистр сведений только с административным доступом - для настройки) и какую процедуру печати использовать

А если еще "озаботиться" что кому можно - то вообще мрак...

ИМХО: Интересно. Но пока стандартные ВПФ лучше...

З.З.Ы. Хоть и прошло больше года... Или я что то пропустил?
20. burgomister 53 16.11.21 19:04 Сейчас в теме
Скачал, установил. Немного переделал для УТ. Работает. Спасибо.
21. mart-artur 6 16.05.22 14:36 Сейчас в теме
Доброго всем дня. Подскажите, как можно прицепить ПФ к документу, созданному в расширении? Сломал себе голову, не появляется кнопка Печать...
Оставьте свое сообщение
Вакансии
Программист/тестировщик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день