Имя: Пароль:
1C
1С v8
Печать документа
0 t2013
 
18.04.14
09:04
Документ в табличной части "Материалы" которого есть колонка "Подразделение"

Печатную форму документа необходимо изменить так, чтобы формировались отдельные страницы на каждое подразделение.
В этой функции все работает, но если количество подразделений N, то макет повторяется N раз.
Как сделать без повторений?


Функция Печать() Экспорт
    
    Организация = СсылкаНаОбъект.Организация;
    Склад = СсылкаНаОбъект.Склад;
    Материалы = СсылкаНаОбъект.Материалы;
    
    
    ТабДокумент = Новый ТабличныйДокумент;

    Макет = ПолучитьМакет("Макет");
    
    Для й=1 по Материалы.Количество() Цикл    
        
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
        
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    ОбластьМакета.Параметры.Склад = Склад;
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьСтроки = Макет.ПолучитьОбласть("Строка");
    
    ТабДокумент.Вывести(ОбластьМакета);
    
    Отбор = Новый Структура;
    Отбор.Вставить("Подразделение", Материалы[й-1].Подразделение);
    МассивСтрок = Материалы.НайтиСтроки(Отбор);
    
    НомерСтроки = 0;
    Для Каждого СтрокаТабличнойЧасти из МассивСтрок Цикл    
        
        НомерСтроки = НомерСтроки + 1;
                 
        ОбластьСтроки.Параметры.Заполнить(СтрокаТабличнойЧасти);
        ОбластьСтроки.Параметры.Подразделение = СтрокаТабличнойЧасти.Подразделение;
        ОбластьСтроки.Параметры.Код=СтрокаТабличнойЧасти.код;
        ОбластьСтроки.Параметры.ЕдИзм=СтрокаТабличнойЧасти.ЕдиницаИзмерения;
        
        ТабДокумент.Вывести(ОбластьСтроки);
        
     КонецЦикла;

    
    ОбластьМакета = Макет.ПолучитьОбласть("Итого");
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего выдано материалов " + НомерСтроки+ ".";
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
    ОбластьМакета.Параметры.Заполнить(ЭтотОбъект);
    ТабДокумент.Вывести(ОбластьМакета);
    
    КонецЦикла;
    
    Возврат ТабДокумент;
    
КонецФункции
1 cw014
 
18.04.14
09:06
Мда, а выгрузить ТЧ и свернуть по подразделениям - религия не позволяет?
2 t2013
 
18.04.14
11:19
(1) пробовал свернуть, не получается
можешь подсказать код?
3 Wobland
 
18.04.14
11:23
пятничные скидки на СП. только сегодня!
4 ДенисЧ
 
18.04.14
11:30
(3) Вот так и уходят люди в мир побираться...
5 FIXXXL
 
18.04.14
11:54
СтрокаТабличнойЧасти  что у тебя?
если из запроса, группируй в запросе

а выводить табдок в цикле не надо :)
6 t2013
 
18.04.14
13:09
если сворачивать, то строки Номенклатура и т.д. ТЧ пустые
7 FIXXXL
 
19.04.14
08:39
(6)почитай Свернуть в помошнике :)
а лучше делай в запросе
8 Wobland
 
19.04.14
08:42
(6) это бывает
9 kotletka
 
19.04.14
08:50
мммм а непроще запросом выбрать тч и затнм итоги по подразделению?
10 Wobland
 
19.04.14
08:52
(9) тогда ему придётся ещё и про сгруппировать читать
11 kotletka
 
19.04.14
09:03
(10) пожалуй да, читать ему ещё пока сложно будет