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

Публикация № 1134141

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

8

Специальные предложения

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

См. также

Шпаргалка (БСП). Добавление в новый документ механизма печати дополнительных печатных форм 140

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Печать БСП (Библиотека стандартных подсистем)

Постоянно приходится вспоминать, как добавить механизм печати (БСП) в новый документ. Поэтому решил написать шпаргалку.

10.10.2019    3185    John_d    11       

От чего можно отказаться при разработке расширений 1С 75

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Расширения

Разработка расширений 1С и оптимизация через механизм БСП: Дополнительные отчеты и обработки.

23.09.2019    4953    independ    23       

Подсистема "Варианты отчетов". Используете ли Вы ее правильно? 212

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

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    14608    YPermitin    49       

Подсистема БСП «Управление доступом», основные объекты и регистры 106

Статья Программист Нет файла v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free) БСП (Библиотека стандартных подсистем) Роли и права

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    8167    ids79    8       

Добавление отчетов в типовые конфигурации 1С 201

Статья Программист Нет файла v8::УФ v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

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

07.03.2019    23547    ids79    32       

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 163

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    15704    ids79    9       

Добавление команд печати в конфигурациях на БСП 2.4.3 (в частности, в самописных документах в Бухгалтерии 3.0 после релиза 3.0.52.35) 143

Статья Программист Нет файла v8 v8::БУ БП3.0 Россия Бесплатно (free) Печатные формы документов Практика программирования БСП (Библиотека стандартных подсистем)

В статье https://infostart.ru/public/237013/ пользователя nick max рассматривался список действий для подключения команд печати в Бухгалтерии 3.0, работающей на БСП 2.3.6. В новом релизе Бухгалтерии 3.0.52.35 от 15.09.2017г. стала использоваться БСП 2.4.3, из-за чего произошли изменения в процедурах общих модулей, связанных с механизмом печати, и в процедурах их вызова в формах документов и в формах списков. Рассмотрим их.

18.09.2017    47038    bugtester    43       

Фоновое формирование отчета СКД на УФ средствами БСП 81

Статья Программист Нет файла v8::УФ v8::СКД Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем)

В узких кругах широко известна проблема, когда штатное фоновое формирование отчета СКД на управляемых формах перестает работать при выполнении нештатной компоновки (переопределении события ПриКомпоновкеРезультата). В этом случае клиент ожидает ответа сервера и сеанс 1С "висит", что жутко неудобно при формировании затратных по времени отчетов. Также нет возможности прервать такое выполнение. Когда мириться с этим стало тяжело, стал искать решения, но почему-то подходящего готового рецепта не нашел. Если плохо искал, значит, будет еще один в копилку.

16.05.2017    22906    herfis    7       

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

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем)

Конфигурации в 1С пишутся для пользователей и по их «правилам» (клиент всегда прав), поэтому в основном все конфигурации разные, но достаточно часто в них используются одни и те же объекты, которые незначительно отличаются друг от друга. Действительно, сложно представить конфигурацию, где не фигурировали бы такие сущности как номенклатура, контрагенты, пользователи, валюта. И некоторые задачи являются типичными: возможность базового разграничения прав, работа с электронной почтой, задачи пользователям и т.д. Но...!

03.03.2017    51515    V.Stavinsky    21       

Используем механизмы обмена данными БСП для произвольного обмена 148

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции Внешние источники данных БСП (Библиотека стандартных подсистем)

Механизм БСП заточен на обмен XML по правилам обмена. Чтобы использовать его для любого другого обмена, коих в мире немало, требуются доработки. В статье описан вариант, как из положения выйти.

23.08.2016    27773    Патриот    22       

Отладка конвертации данных 2.1 в конфигурациях, построенных на БСП 2.1 (БП 3.0, УТ 11 etc.) 49

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Распределенная БД (УРИБ, УРБД) Обмен через XML БСП (Библиотека стандартных подсистем)

Отладка процесса выгрузки/загрузки данных при проведении синхронизации в новых конфигурациях 1С может вызвать (у меня вызвала) некоторые затруднения. О них и пойдёт речь.

29.10.2015    31765    NittenRenegade    16       

Обмен при помощи Библиотеки Стандартных Подсистем (БСП) конфигурации ЗУП 2.5 10

Статья Программист Нет файла v8 ЗУП2.5 Бесплатно (free) Перенос данных из 1C8 в 1C8 БСП (Библиотека стандартных подсистем)

Как организовать автообмен данными из базы Зарплата и Управление Персоналом 2.5? Очень просто. Кодирование нужно лишь для одной команды - всего несколько строчек кода.

17.07.2015    12096    sml    4       

Авторегистрация внешних отчётов/обработок средствами БСП 60

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Администрирование данных 1С Универсальные функции

Вы сделали клиенту красивую печатную форму, или доп.обработку, или заполнение таб.части; но надо ещё зарегистрировать её. Клиенту это не всегда объяснишь, дистанционно не всегда сделаешь. А дальше её ещё обновлять каждый раз... Предлагаю код, который исключительно штатным образом "сделает всё сам".

11.02.2015    20442    Yashazz    14       

БСП: добавление нового провайдера SMS 52

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) SMS рассылки

Небольшая статья о том, как добавить нового провайдера SMS на примере конфигурации "Управление торговлей 11", используя библиотеку стандартных подсистем (БСП)

26.11.2014    18374    pbazeliuk    5       

Использование подсистемы "Управление доступом" из состава БСП версии 2.2+ 227

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

В статье описана последовательность манипуляций с подсистемой "Управление доступом" из библиотеки стандартных подсистем "1С" (БСП), результатом которых является реализация возможности настройки ограничения доступа к данным на уровне записей таблиц базы данных (RLS), применяя в качестве разграничителя доступа (критерия ограничения) любой из справочников конфигурации. Данная статья полезна для разработчиков, которые имеют дело либо с одной из типовых конфигураций "1С" (таких как "Бухгалтерия предприятие 3.0" или "Управление торговлей 11"), либо собираются внедрять (или дорабатывать) указанную выше подсистему в какую-либо другую конфигурацию.

18.11.2014    57112    Bassgood    81