|
Вывод табличного документа | ☑ | ||
---|---|---|---|---|
0
новичок12345
24.07.12
✎
07:51
|
Уважаемые специалисты, прошу помощи, что -то запутался с циклами и вложенностью их друг в друга.
Ситуация такая: нужно вывести на печать табличный документ. При чем, если количество товаров превышает 4, то вывести эти 4 товара на одной странице, потом подвал, а оставшиеся товары вывести на новой странице. И что-то я не могу понять как это сделать. Решил сделать новым макетом. То есть пока количество меньше 5 выводим один макет, а потом другой. В первом макете есть и строка для товаров и подвал, а в новом макете только строка для товаров. Код такой: n = 0; Для каждого СтрокаТаблицыЗначений Из ЗапросЭлементы Цикл n = n + 1; Если n<3 Тогда ОбластьМакета = Макет.ПолучитьОбласть("Элементы"); ОбластьМакета.Параметры.Заполнить(СтрокаТаблицыЗначений); Попытка Д = СокрЛП(Строка(Формат(СтрокаТаблицыЗначений.ДатаВыработки,"ДФ=dd.MM.yy"))); КолДнейДобавить = 10*24*60*60; Д10 = СокрЛП(Строка(Формат(СтрокаТаблицыЗначений.ДатаВыработки + КолДнейДобавить,"ДФ=dd.MM.yy"))); ОбластьМакета.Параметры.ДатаВыработки = Д + "-" + Д10; Исключение КонецПопытки; ОбластьМакета.Параметры.НаименованиеПродукции = СокрЛП(СтрокаТаблицыЗначений.Номенклатура); ОбластьМакета.Параметры.ПроизводительПродукции = СокрЛП(СтрокаТаблицыЗначений.Организация.Наименование); ОбластьМакета.Параметры.Вес = СокрЛП(СтрокаТаблицыЗначений.Вес); ТабДокумент.Вывести(ОбластьМакета); Иначе Макет1 = ПолучитьМакет("Макет1"); ОбластьМакета1 = Макет1.ПолучитьОбласть("Элементы1"); ОбластьМакета1.Параметры.Заполнить(СтрокаТаблицыЗначений); Попытка Д = СокрЛП(Строка(Формат(СтрокаТаблицыЗначений.ДатаВыработки,"ДФ=dd.MM.yy"))); КолДнейДобавить = 10*24*60*60; Д10 = СокрЛП(Строка(Формат(СтрокаТаблицыЗначений.ДатаВыработки + КолДнейДобавить,"ДФ=dd.MM.yy"))); ОбластьМакета1.Параметры.ДатаВыработки1 = Д + "-" + Д10; Исключение КонецПопытки; ОбластьМакета1.Параметры.НаименованиеПродукции1 = СокрЛП(СтрокаТаблицыЗначений.Номенклатура); ОбластьМакета1.Параметры.ПроизводительПродукции1 = СокрЛП(СтрокаТаблицыЗначений.Организация.Наименование); ОбластьМакета1.Параметры.Вес1 = СокрЛП(СтрокаТаблицыЗначений.Вес); ТабДокумент.Вывести(ОбластьМакета1); КонецЕсли ; КонецЦикла; ОбластьМакета = Макет.ПолучитьОбласть("Подвал"); ОбластьМакета.Параметры.ПунктОтправления = Подвал.Организация.НаименованиеПолное; ОбластьМакета.Параметры.НаименованиеПолучателя = Подвал.Контрагент.НаименованиеПолное; ОбластьМакета.Параметры.НомерВетДокумента = СокрЛП(Строка(Подвал.ВетДок) + " " + Строка(Подвал.ВетДок1)); ОбластьМакета.Параметры.ДолжностьВетСпециалиста = Подвал.Должность; ОбластьМакета.Параметры.ФИОСпециалиста = Подвал.ФИОВрач; ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); Вообщем, не могу понять где сделать разрыв, и не могу понять как выстроить правильно цикл, чтобы все шло в том порядке, в котором мне нужно. Заранее спасибо |
|||
1
Wobland
24.07.12
✎
08:02
|
не читал. ПовторятьПриПечатиСтроки изучал?
|
|||
2
новичок12345
24.07.12
✎
08:11
|
(1) нет. Это в табличной части устанавливается в свойствах? а как сделать что-бы этот диапазон выводился с определенного элемента? и как это можно в коде задать. Все равно не очень понимаю куда это нужно вставить..
|
|||
3
Мимохожий Однако
24.07.12
✎
08:36
|
Посмотри типовую ТОРГ12. Там есть пример.
|
|||
4
новичок12345
24.07.12
✎
09:33
|
(3) Сейчас в ней посмотрю
|
|||
5
новичок12345
25.07.12
✎
15:18
|
(1)(3) Спасибо всем большое. Похоже ПовторятьПриПечатиСтроки мне не подходит. По-крайней мере я не понял как бы это было возможно сделать. Посмотрел В ТОРГ-12 там просто идет проверка на вмещение данных в страницу, но это навело меня на мысль, с помощью которой я и решил поставленную задачу! Использовал копию таблицы значений.
Еще раз все огромное спасибо за помощь! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |