Реализация команды печати "Библиотека стандартных подсистем", редакция 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_МакетСчет");
	КонецЕсли;
		
КонецПроцедуры

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

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

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

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

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

См. также

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

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

1800 руб.

21.11.2024    3643    16    15    

18

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

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

27.12.2024    3442    PROSTO-1C    15    

43

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

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

11.12.2024    3904    gorenski    0    

8

БСП (Библиотека стандартных подсистем) Менеджеры внешних отчетов Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

За последние лет 5 несколько раз сталкиваюсь с проблемой на разных проектах (в конфигурациях 1С:ERP, 1С:ERP УХ и многих других, основанных на БСП), когда много пользователей (около 30 тысяч) в информационной базе, время добавления доступа для пользователей занимает значительное время. Открытие списка занимает от 10 до 15 секунд, и каждое изменение списка еще примерно столько же.

1 стартмани

10.12.2024    997    Iaskeliainen    2    

7

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

Некоторые нюансы, если вы захотите создавать свои расширения. Доработка отчета "Связанные документы" для отражения документов расширения. Печатные формы с шаблоном Word.

20.11.2024    3336    milkers    3    

12

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

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1683    PROSTO-1C    0    

18

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

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    1374    PROSTO-1C    4    

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