Реализация команды печати "Библиотека стандартных подсистем", редакция 3.1 (3.1.1.151)

12.10.19

Разработка - БСП (Библиотека стандартных подсистем)

В новом релизе "БСП" произошли изменения в процедурах общих модулей, связанных с механизмом печати, и в процедурах их вызова в формах документов и в формах списков. Рассмотрим их.

Предыстория:

Пишем свою конфигурацию с внедрением "БСП" и вот дошло дело до реализации механизма печати. Была найдена статья на Инфостарте //infostart.ru/public/674880/ но, как оказалось, к "БСП" (3.1.1.151) она не подходит, поиски в интернете тоже не дали нужного результата.

Реализация команды печати "Библиотека стандартных подсистем", редакция 3.1 (3.1.1.151)

Пример: нужно на форме документа "Счет" реализовать печать документа. 

1. На форме документа в командной панели создаем "ГруппуПечать"

В форме документа создаем процедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтаФорма); 
	 
КонецПроцедуры

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

2. В Общем модули "УправлениеПечатьюПереопределяемый"

// Определяет объекты конфигурации, в модулях менеджеров которых размещена процедура ДобавитьКомандыПечати,
// формирующая список команд печати, предоставляемых этим объектом.
// Синтаксис процедуры ДобавитьКомандыПечати см. в документации к подсистеме.
//
// Параметры:
//  СписокОбъектов - Массив - менеджеры объектов с процедурой ДобавитьКомандыПечати.
//
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
	СписокОбъектов.Добавить(Документы.Счет);	
КонецПроцедуры

3. В документе Модуль менеджера

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "Счёт";
	КомандаПечати.Представление = НСтр("ru = 'Счёт'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;       
	
КонецПроцедуры


// Формирует печатные формы.
//
// Параметры:
//  МассивОбъектов  - Массив    - ссылки на объекты, которые нужно распечатать;
//  ПараметрыПечати - Структура - дополнительные настройки печати;
//  КоллекцияПечатныхФорм - ТаблицаЗначений - сформированные табличные документы (выходной параметр).
//  ОбъектыПечати         - СписокЗначений  - значение - ссылка на объект;
//                                            представление - имя области в которой был выведен объект (выходной
//                                                            параметр);
//  ПараметрыВывода       - Структура       - дополнительные параметры сформированных табличных документов (выходной
//                                            параметр).
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

	// Печать накладной на перемещение.
	НужноПечататьМакет = УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Счёт");
	Если НужноПечататьМакет Тогда
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм,
			"Счёт",
			НСтр("ru = 'Счёт'"),
			СформироватьПечатнуюФормуСчета(МассивОбъектов, ОбъектыПечати),
			,
			"Документ.Счёт.ПФ_MXL_МакетСчет");
	КонецЕсли;
		
КонецПроцедуры

И сама функция в Модуле менеджера где формируется печатная форма

Функция СформироватьПечатнуюФормуСчета(МассивОбъектов, ОбъектыПечати) Экспорт
		
		ТекстЗапроса = 
		"ВЫБРАТЬ
		|	Счет.Ссылка КАК Ссылка,
		|	Счет.ВерсияДанных КАК ВерсияДанных,
		|	Счет.ПометкаУдаления КАК ПометкаУдаления,
		|	Счет.Номер КАК Номер,
		|	Счет.Дата КАК Дата,
		|	Счет.Проведен КАК Проведен,
		|	Счет.Статус КАК Статус,
		|	Счет.Отдел КАК Отдел,
		|	Счет.Сделка КАК Сделка,
		|	Счет.Партнер КАК Партнер,
		|	Счет.СуммаСчета КАК СуммаСчета,
		|	Счет.СуммаПеревода КАК СуммаПеревода,
		|	Счет.ПервыйСчет КАК ПервыйСчет,
		|	Счет.БизнесРегион КАК БизнесРегион,
		|	Счет.Магазин КАК Магазин,
		|	Счет.Представление КАК Представление,
		|	Счет.МоментВремени КАК МоментВремени
		|ИЗ
		|	Документ.Счет КАК Счет
		|ГДЕ
		|	Счет.Ссылка В (&СписокДокументов)";
	
		Запрос = Новый Запрос(ТекстЗапроса);
		Запрос.УстановитьПараметр("СписокДокументов", МассивОбъектов);

	    Результат = Запрос.Выполнить().Выбрать();
КонецФункции

В итоге получится

Может, что-то упустил, может, что-то делаю не правильно)))

См. также

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1281    dimanich70    6    

13

Заполнение поля адреса в своей обработке [БСП]

Механизмы платформы 1С БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    686    FilippovRI    0    

15

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2346    YA_418728146    11    

40

1С:БСП Дополнительные реквизиты и сведения

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

В этой статье расскажем об архитектуре, использовании и особенностях реализации подсистемы «Свойства» из инструментария разработчика «1С:Библиотека стандартных подсистем» (1С: БСП).

19.01.2024    5140    PROSTO-1C    5    

45

Бесплатный митап 9 февраля «Библиотеки и фреймворки на 1С и всё, что с этим связано»

БСП (Библиотека стандартных подсистем) Мероприятия Бесплатно (free)

Митап посвящен вопросам создания, использования и поддержке переиспользуемого кода при разработке решений на платформе 1С:Предприятие 8.

15.01.2024    3795    0    Infostart    0    

20

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

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

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4823    mrXoxot    11    

99
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. leosoft 165 12.10.19 10:24 Сейчас в теме
2. CheBurator 3119 13.10.19 14:03 Сейчас в теме
ничего не понял.
для подключения печатной формы с использованием стандартных механизмов - надо менять код типовой конфигурации?
3. wolfsoft 2421 14.10.19 08:49 Сейчас в теме
(2) Это не типовая, это "своя" конфигурация. Как вариант - для добавления механизма печати в свой документ.
4. paulis 116 14.10.19 09:16 Сейчас в теме
Да описан механизм добавления печати в свой документ. leosoft дал ссылку на статью где в принципе описано то же самое.
Оставьте свое сообщение