|
Как избавиться от нескольких табличных документов | ☑ | ||
---|---|---|---|---|
0
asder117
17.04.17
✎
01:16
|
Имеется процедура:
// Вставить содержимое обработчика. Табдок1 = Новый ТабличныйДокумент; Табдок2 = Новый ТабличныйДокумент; Табдок3 = Новый ТабличныйДокумент; Табдок4 = Новый ТабличныйДокумент; ТаблицаСклады = Новый ТаблицаЗначений; ТаблицаСклады = Товары.Выгрузить(); ТаблицаСклады.Свернуть("Размещение"); МакетЗадания = ПолучитьМакет("Макет"); ОбластьШапки = МакетЗадания.ПолучитьОбласть("Шапка"); ОбластьСтрок = МакетЗадания.ПолучитьОбласть("СтрокаЗадания"); Если ТаблицаСклады.Количество()=1 Тогда РазнестиПоОдномуПроизв =0; для Каждого строкаЗаказаП из ТаблицаСклады цикл ПроизводствоДок = строкаЗаказаП.Размещение.Наименование; КонецЦикла; ОбластьШапки.Параметры.НомерЗаказа = ДокументОбъект.Номер; ОбластьШапки.Параметры.ДатаЗаказа = ДокументОбъект.Дата; ОбластьШапки.Параметры.Производство = ПроизводствоДок; Табдок1.Вывести(ОбластьШапки); для Каждого строкаЗаказа1 из Товары цикл ОбластьСтрок.Параметры.Продукция = строкаЗаказа1.Номенклатура.Наименование; ОбластьСтрок.Параметры.Количество = строкаЗаказа1.Количество; Табдок1.Вывести(ОбластьСтрок); КонецЦикла; Табдок1.Показать(); иначе сч=0; Для Каждого СтрокаТаблицаСклады Из ТаблицаСклады Цикл сч=сч+1; Если сч = 1 тогда Таблица = Табдок1 иначе Если сч = 2 тогда Таблица = Табдок2 иначе Таблица = Табдок3 конецесли; конецесли; СсылкаСклад=СтрокаТаблицаСклады.Размещение; ОбластьШапки.Параметры.НомерЗаказа = ДокументОбъект.Номер; ОбластьШапки.Параметры.ДатаЗаказа = ДокументОбъект.Дата; ОбластьШапки.Параметры.Производство = СтрокаТаблицаСклады.Размещение.Наименование; Таблица.Вывести(ОбластьШапки); СтруктураОтбор=Новый Структура("Размещение",СсылкаСклад); МассивСтрокиПоСкладу=Товары.НайтиСтроки(СтруктураОтбор); Для каждого СтрочкаМассива из МассивСтрокиПоСкладу цикл ОбластьСтрок.Параметры.Продукция = СтрочкаМассива.Номенклатура.Наименование; ОбластьСтрок.Параметры.Количество = СтрочкаМассива.Количество; Таблица.Вывести(ОбластьСтрок); //а=0; КонецЦикла; Таблица.Показать(); КонецЦикла Конецесли; История берет начало УТ. разброс заявки покупателя по всем складам. Но это тема другая. Цель: берется табличное поле оно сворачивается по складу (размещение). и дальше по количеству складов идет раскидка на несколько табличных документов для дальнейшей печати. Вопрос: Как можно используя один табличный документ несколько раз вывести его на экран( печать) пока решил так как сверху (выводом на экран(печать) нескольких табдоков). Спасибо заранее, |
|||
1
vladimir80
17.04.17
✎
02:43
|
На выбор:
1 - ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); 2 - Просто правильный цикл Для Каждого СтрокаТаблицаСклады Из ТаблицаСклады Цикл // Тут табличный документ объявляем и заполняем шапку Для Каждого Товар ИЗ Товары Цикл // Или что там у тебя в товарах, в общем цикл по товарам Если СтрокаТаблицаСклады.Размещение <> Товары.Размещение Тогда Продолжить; КонецЕсли; // выводим товары в табличный документ КонецЦикла // Показываем или что-то там делаем с готовым табличным документом КонецЦикла |
|||
2
vladimir80
17.04.17
✎
02:45
|
Или вынести объявление ТабДока выше первого цикла, между циклами вставляй разрывы, а показывай после обоих циклов...
|
|||
3
asder117
17.04.17
✎
10:10
|
(2) Спасибо. разделитель меня не устраивает. т.к нужны отдельные доки которые будут печататься на разных принтерах
|
|||
4
nordbox
17.04.17
✎
10:13
|
Ну так сделай отдельно три макета и пусть каждый печатает свой
|
|||
5
asder117
17.04.17
✎
10:22
|
(4) я так и сделал практически только не 3 макета а 3 табдока.. я и хотел уйти от 3
|
|||
6
lodger
17.04.17
✎
10:59
|
(5) а куда ты уйдешь если печатать на разных принтерах?
|
|||
7
asder117
17.04.17
✎
12:00
|
(6) теперь понял. что только так
|
|||
8
asder117
17.04.17
✎
13:47
|
(6) Тогда к вопросу. а интересно можно как-нибудь динамически создать табдок к примеру табдок1, табдок2, табдок3 и так до табдокN чтобы не переписывать точнее не дописывать код при появлении нового склада.
|
|||
9
lodger
17.04.17
✎
15:09
|
(8) создавай циклично с передачей параметров.
|
|||
10
asder117
17.04.17
✎
19:51
|
(9) Пробовал через Табдок+[счетчик] получается строковое значение
|
|||
11
Мимохожий Однако
17.04.17
✎
20:22
|
(10) Выкладывай код подробнее.
|
|||
12
Йохохо
17.04.17
✎
20:55
|
(5) после последнего Таблица.Показать(), таблицу очистить, заполнить по второму складу и снова Показать() и так пока не кончатся склады
|
|||
13
asder117
17.04.17
✎
21:50
|
(12) имеешь ввиду без цикла по складам? (11) Код наверху я его пытаюсь соптимизировать
|
|||
14
Йохохо
17.04.17
✎
22:00
|
(13) с циклом, хоть он и кривой, просто переиспользуй ТабличныйДокумент после Показать
|
|||
15
asder117
17.04.17
✎
22:04
|
(14) Спасибо попробую
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |