Групповая печать документов одним заданием

1. hercares 26.09.22 16:59 Сейчас в теме
Добрый день. Пользуюсь своей обработкой по групповой печати, вполне себе рабочий вариант. Но уходит много времени на печать, из-за того, что каждый документ в цикле отправляется на печать, а между документами принтер "простаивает", что занимает до 40 секунд. Есть ли возможность объединить задания и распечатать одним документом?
Посмотрел обработку, там есть процедура для пакетной печати, но условия ее использования не выполняется

Реализация = Выб.РеализацияТоваров.ПолучитьОбъект();
			СтрМакета = мСписокДеревоМакетов.РеализацияТоваровУслуг.Строки.Найти(МакетРеализации, "Имя");
			Если (СтрМакета<>Неопределено) И (СтрМакета.Расшифровка<>Неопределено) И (ТипЗнч(СтрМакета.Расшифровка)=Тип("Структура")) И (СтрМакета.Расшифровка.СсылкаНаВнешнююОбработку<>Неопределено) Тогда
				ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Реализация.Ссылка, СтрМакета.Расшифровка);
				МассивРеализаций.Добавить(ТабДокумент);
				Если НаПринтерРелизация Тогда
					УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляровРеализации, НаПринтерРелизация, ОбщегоНазначения.СформироватьЗаголовокДокумента(Реализация, Реализация.Метаданные().Представление()), Реализация.Ссылка);
				КонецЕсли;
			Иначе
				Если НЕ НаПринтерРелизация Тогда
					Реализация.Печать(МакетРеализации, 1, Ложь);
				Иначе
					Реализация.Печать(МакетРеализации, КоличествоЭкземпляровРеализации, Истина);
				КонецЕсли;
				
			КонецЕсли;
Показать

При каких условиях ТипЗнч(СтрМакета.Расшифровка)=Тип("Структура") должен быть с типом структура
Потому что, тогда будет заполняться массив документов и его можно распечатать

Если НЕ МассивРеализаций.Количество() = 0 И Не НаПринтерРелизация Тогда
		ВывестиНаПечатьМассивДокументов(МассивРеализаций, "Реализации товаров", НаПринтерРелизация, КоличествоЭкземпляровРеализации);
	КонецЕсли;

Процедура ВывестиНаПечатьМассивДокументов(Массив, Заголовок, НаПринтер, КвоЭкземпляров = 1) Экспорт
		ТабДокумент = Массив[0];
		Перв = ИСТИНА;
	Для Каждого Макет Из Массив Цикл
		Для Ит = 1 По КвоЭкземпляров Цикл
			Если Перв Тогда
				Перв = Ложь;
				ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
				Продолжить;
			КонецЕсли;
			ТабДокумент.Вывести(Макет);
			ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЦикла;
	КонецЦикла;
	УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, 1, НаПринтер, Заголовок);
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. hercares 27.09.22 19:07 Сейчас в теме
В массив засунул ТабДокумент каждого документа, а далее в цикле , как бы объединяется все в один и отправляется на печать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот