Вывод макета на новый лист

1. user1619761 14.10.21 09:45 Сейчас в теме
Здравствуйте. Подскажите, как сделать вывод макета для каждого документа из выборки на новый лист. Пробовал ПроверитьВывод(МассивОбластей) , но не вышло.

Документ.НачатьАвтогруппировкуСтрок();
    
        ОбластьДок = Макет.ПолучитьОбласть("СтрокаДокумент");
    ОбластьСтрока =  Макет.ПолучитьОбласть("Строка");
        ОбластьПодСтрокой = Макет.ПолучитьОбласть("ПодСтрокой");
    
    Пока Выборка.Следующий() Цикл

        ОбластьДок .Параметры.Заполнить(Выборка);
        Документ.Вывести(ОбластьДок);///////////////////////// Сюда попадает документ, и надо выводить макет на новый лист, когда документ другой
        
        Для Каждого Строка Из Выборка.ДокСсылка.ТоварыЦикл
        
        ОбластьСтрока .Параметры.Номенклатура= Строка.Наименование;
        ОбластьСтрока .Параметры.Колво= Строка.Количество;
        
        Документ.Вывести(ОбластьСтрока ,1);
        
        КонецЦикла;
        
        Для Каждого Стр из   ВыборкаДетальныеЗаписи.Спецификация.ПриходМатериалов Цикл
            
            ОбластьПодСтрокой .Параметры.Материал = Стр.Наименование;    
            ОбластьПодСтрокой .Параметры.Сумма= Стр.Количество * Выборка.Цена;    
            Документ.Вывести(ОбластьПодСтрокой ,2);
        КонецЦикла;
Показать
По теме из базы знаний
Найденные решения
13. user1619761 14.10.21 12:40 Сейчас в теме
Всем спасибо, разобрался. Решение вот :

&НаКлиенте
Процедура Сформировать(Команда)
	
	МассивДокументов = ПолучитьМассивДокументов();
		
	Для Каждого Объект Из МассивДокументов Цикл
		
	Документ = СформироватьНаСервере(Объект);
	Документ .Показать("Отчет");
	
	КонецЦикла;
	
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PlatonStepan 38 14.10.21 09:56 Сейчас в теме
В свойствах строки макета должен быть отмечен флаг "НачалоСтраницы", либо "КонецСтраницы"
4. user1619761 14.10.21 10:12 Сейчас в теме
(2) Спасибо. Попробовал, не помогло.
7. user1619761 14.10.21 10:41 Сейчас в теме
Возможно я некорректно сформулировал задачу. Мне нужно чтоб каждый документ выводился на отдельную вкладку.
3. Romeo_1c_programmer 29 14.10.21 09:56 Сейчас в теме
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();

ВывестиГоризонтальныйРазделительСтраниц (PutHorizontalPageBreak)
Синтаксис:
ВывестиГоризонтальныйРазделительСтраниц()
Описание:
Вставляет в результирующую таблицу горизонтальный разделитель страниц.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
5. user1619761 14.10.21 10:14 Сейчас в теме
(3) Спасибо. Я это уже пробовал. Не разделяет. Делал вот так

Документ.НачатьАвтогруппировкуСтрок();

ОбластьДок = Макет.ПолучитьОбласть("СтрокаДокумент");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьПодСтрокой = Макет.ПолучитьОбласть("ПодСтрокой");
МассивДокументов = Новый Массив;

Пока Выборка.Следующий() Цикл

МассивДокументов.Добавить(Выборка.Документ);

Для Каждого Объект Из МассивДокументов Цикл

ОбластьДок .Параметры.Заполнить(Выборка);
Документ.Вывести(ОбластьДок);///////////////////////// Сюда попадает документ, и надо выводить макет на новый лист, когда документ другой

Для Каждого Строка Из Выборка.ДокСсылка.ТоварыЦикл

ОбластьСтрока .Параметры.Номенклатура= Строка.Наименование;
ОбластьСтрока .Параметры.Колво= Строка.Количество;

Документ.Вывести(ОбластьСтрока ,1);

КонецЦикла;

Для Каждого Стр из ВыборкаДетальныеЗаписи.Спецификация.ПриходМатериалов Цикл

ОбластьПодСтрокой .Параметры.Материал = Стр.Наименование;
ОбластьПодСтрокой .Параметры.Сумма= Стр.Количество * Выборка.Цена;
Документ.Вывести(ОбластьПодСтрокой ,2);
КонецЦикла;

ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

КонецЦикла;
Показать
6. soft_wind 14.10.21 10:32 Сейчас в теме
да вот же проще все
ОбластьДок = Макет.ПолучитьОбласть("СтрокаДокумент");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьПодСтрокой = Макет.ПолучитьОбласть("ПодСтрокой");

ЭтоПервыйДокумент = Истина;

Пока Выборка.Следующий() Цикл

Если ЭтоПервыйДокумент  Тогда
    ЭтоПервыйДокумент  = Ложь;
Иначе
    //уже не первый, выводим разделитель
    Документ.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ОбластьДок .Параметры.Заполнить(Выборка);
Документ.Вывести(ОбластьДок);///////////////////////// Сюда попадает документ, и надо выводить макет на новый лист, когда документ другой

Для Каждого Строка Из Выборка.ДокСсылка.ТоварыЦикл

ОбластьСтрока .Параметры.Номенклатура= Строка.Наименование;
ОбластьСтрока .Параметры.Колво= Строка.Количество;

Документ.Вывести(ОбластьСтрока ,1);

КонецЦикла;

Для Каждого Стр из ВыборкаДетальныеЗаписи.Спецификация.ПриходМатериалов Цикл

ОбластьПодСтрокой .Параметры.Материал = Стр.Наименование;
ОбластьПодСтрокой .Параметры.Сумма= Стр.Количество * Выборка.Цена;
Документ.Вывести(ОбластьПодСтрокой ,2);
КонецЦикла;
Показать
8. user1619761 14.10.21 10:47 Сейчас в теме
(6) Спасибо. Так я тоже пробовал. Видимо я неправильно задачу сформулировал. Мне нужно чтоб каждый документ открывался в новой вкладке, как это можно реализовать?
9. soft_wind 14.10.21 11:21 Сейчас в теме
в новой вкладке,


в новой вкладке - чего?
а зачем?
проще, сделайте вывод в новом окне (правда если 1000 доков выведете будет весело)
user1619761; +1 Ответить
11. user1619761 14.10.21 12:34 Сейчас в теме
(9) Не знаю, зачем, но мне такую задачу поставили)) Спасибо,разобрался)
10. PlatonStepan 38 14.10.21 11:31 Сейчас в теме
Хм...сделайте генерацию отчета в форме, прикреплённой к форме списка документов.
Чтобы при выборе строки отражался в ней новый табдок. не думаю, что он будет ресурсоёмкий, к тому же можно кэшировать
user1619761; +1 Ответить
12. user1619761 14.10.21 12:34 Сейчас в теме
(10) Спасибо. Я разобрался.)
13. user1619761 14.10.21 12:40 Сейчас в теме
Всем спасибо, разобрался. Решение вот :

&НаКлиенте
Процедура Сформировать(Команда)
	
	МассивДокументов = ПолучитьМассивДокументов();
		
	Для Каждого Объект Из МассивДокументов Цикл
		
	Документ = СформироватьНаСервере(Объект);
	Документ .Показать("Отчет");
	
	КонецЦикла;
	
КонецПроцедуры
Показать
Оставьте свое сообщение

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