Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 мая 2024, 13:01

Перенос макета если не влезает

Автор trialex3, 27 фев 2019, 17:57

0 Пользователей и 1 гость просматривают эту тему.

trialex3

Добрый день. Прошу помощи.
Есть простой макет: Скрин
Нужно, чтобы макеты выводились на один лист, но при условии, что они туда влезают.
Пытаюсь сделать через проверить вывод:
Процедура ПечататьЗаказы(МассивСсылок)
ТабДок = Новый ТабличныйДокумент;
ТабДок.АвтоМасштаб = Истина;
Для каждого Элемент Из МассивСсылок Цикл//Обходим весь список документов
Макет = ПолучитьОбщийМакет("АР_МакетQRкодовОТК");
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.НомерЗаказа = Элемент.Номер;
Шапка.Параметры.ДатаЗаказа = Элемент.Дата;
ТабДок.Вывести(Шапка);
Тело = Макет.ПолучитьОбласть("Тело");
МассивВыводимыхОбластей = Новый Массив;
МассивВыводимыхОбластей.Очистить();
МассивВыводимыхОбластей.Добавить(Шапка);
Изделия = Элемент.Продукция;
Признак = Истина;
Для каждого Строка Из Изделия Цикл
Если Найти(Строка.Номенклатура.НаименованиеПолное,"Клапан противопожарный")>0 Тогда //Если не готовая продукция то пропускаем.
Тело.Параметры.Характеристика = Строка.ХарактеристикаНоменклатуры;
Тело.Параметры.Кол = Строка.Количество;
ШтрихкодХарактеристики = АР_ГенерацияУи.ВыборкаШтрихкодаИзРегистра(Строка.ХарактеристикаНоменклатуры,Строка.Номенклатура);
Тело.Рисунки.MyQRcode.Объект.barcode = Строка(Элемент.Номер)+"!"+Строка(ШтрихкодХарактеристики)+"!"+Строка(Элемент.Дата);
ТабДок.Вывести(Тело);
МассивВыводимыхОбластей.Добавить(Тело);
КонецЕсли;
КонецЦикла;
Если НЕ ТабДок.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
КонецЦикла;//Закончили обходить весь список документов
ТабДок.Показать();
КонецПроцедуры

Не получается. Ставит разделители после каждого макета.

trialex3

Решил попробовать просто через количество строк
Процедура ПечататьЗаказы(МассивСсылок)
ТабДок = Новый ТабличныйДокумент;
ТабДок.АвтоМасштаб = Истина;
КолвоСтрок = 0;
Для каждого Элемент Из МассивСсылок Цикл//Обходим весь список документов
Макет = ПолучитьОбщийМакет("АР_МакетQRкодовОТК");
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.НомерЗаказа = Элемент.Номер;
Шапка.Параметры.ДатаЗаказа = Элемент.Дата;
//ТабДок.Вывести(Шапка);
Тело = Макет.ПолучитьОбласть("Тело");
МассивВыводимыхОбластей = Новый Массив;
МассивВыводимыхОбластей.Очистить();
МассивВыводимыхОбластей.Добавить(Шапка);
КолвоСтрок = КолвоСтрок+1;
Изделия = Элемент.Продукция;
НеПечатать = Истина;
Для каждого Строка Из Изделия Цикл
Если Найти(Строка.Номенклатура.НаименованиеПолное,"Клапан противопожарный")>0 Тогда //Если не готовая продукция то пропускаем.
НеПечатать = Ложь;
Тело.Параметры.Характеристика = Строка.ХарактеристикаНоменклатуры;
Тело.Параметры.Кол = Строка.Количество;
ШтрихкодХарактеристики = АР_ГенерацияУи.ВыборкаШтрихкодаИзРегистра(Строка.ХарактеристикаНоменклатуры,Строка.Номенклатура);
Тело.Рисунки.MyQRcode.Объект.barcode = Строка(Элемент.Номер)+"!"+Строка(ШтрихкодХарактеристики)+"!"+Строка(Элемент.Дата);
//ТабДок.Вывести(Тело);
МассивВыводимыхОбластей.Добавить(Тело);
КолвоСтрок = КолвоСтрок+1;
КонецЕсли;
КонецЦикла;

Если НеПечатать Тогда//Если в ЗНП нету готовой продукции не печатаем этот док
Продолжить;
КонецЕсли;

Если КолвоСтрок+МассивВыводимыхОбластей.Количество() > 10 Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

Для каждого Элемент Из МассивВыводимыхОбластей Цикл
ТабДок.Вывести(Элемент);
КонецЦикла;

КонецЦикла;//Закончили обходить весь список документов
ТабДок.Показать();
КонецПроцедуры


Так он разделительная строка ставится вообще после каждой строчки
скрин
Добавлено: 28 фев 2019, 13:17


вопрос решен

Теги:  

Похожие темы (5)

Рейтинг@Mail.ru

Поиск