Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Копирование Таблицы значений с отбором
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
kostya77
Добрый день. Есть документ в которого реквизитом табличной части есть Контрагент. Подскажте. как на печать вывести данные по каждому контрагенту оттельно, тоесть если три контрагента, то три печатных формы. Пробую делать через Таблицу значений, не получаеться скопировать в разные таблицы значений с отбором.

Может это можно сделать без Таблицы значений?
denis84
kostya77 @ Сегодня, 11:51 необходимо зарегистрироваться для просмотра ссылки ,
выгрузите ТЧ в таблицу значений. Потом проверяйте, если сменился контрагент и выводите на печать
kostya77
denis84 @ Сегодня, 12:02 необходимо зарегистрироваться для просмотра ссылки ,
Мне нужны еще итоги по Контрагенту
volodya1122
kostya77 @ Сегодня, 11:04 необходимо зарегистрироваться для просмотра ссылки ,
Не нужно в разные таблицы выгружать. Достаточно в одну ТЗ выгрузить. Отсортировать ТЗ по контрагенту. Потом обходить и когда контагент изменился выводить подвал по первой печатной форме и создавать новую печатную форму (или новую страницу в той же печатной форме). После цикла по таблице значений не забыть вывести последний подвал. Нужные итоги для подвала также сумировать до момента измененения контрагента. И потом обнулять.
Или есть хороший метод "Свернуть" для таблицы значений. Но тогда небудет детализации по строкам табличной части.
denis84
kostya77 @ Сегодня, 11:51 необходимо зарегистрироваться для просмотра ссылки ,
типа такого кода .
выгрузите ТЧ в таблицу значений, а потом:
    ТЗ.Свернуть("Контрагент,,","");   //указываете реквизиты, которые нужны на печати
    ТЗ.Сортировать("+1");
    
    Сч         = 0;    
    Итого     = 0;
    Состояние("Заполнение выходной таблицы...");
    
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Таб.ВывестиСекцию("Шапка");
    
    ТЗ.ВыбратьСтроки();
    ТекКонтрагент     = "Начало";
    СуммаКонтрагент = 0;    
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
        Сч=Сч+1;
        
        Контрагент          = ТЗ.Контрагент;
        ..........        
        //указываете реквизиты, которые нужны на печати
        
        СуммаВсего             = ТЗ.Контрагент.Итог("Сумма");

        Если ТекКонтрагент<>ТЗ.Контрагент Тогда
            Если СуммаКонтрагент<>0 Тогда
                Таб.ВывестиСекцию("ИтогоКлиент");
            КонецЕсли;
            ТекКонтрагент = ТЗ.Контрагент;
            СуммаКонтрагент = 0;
        КонецЕсли;

        Итого = Итого + СуммаВсего;
        Таб.ВывестиСекцию("Строка");
        
        СуммаКонтрагент = СуммаКонтрагент + СуммаВсего;
        ТекстВсего = "РАЗОМ ПО контрагенту: " + Контрагент;
    КонецЦикла;
    Таб.ВывестиСекцию("ИтогоКлиент");
    Таб.ВывестиСекцию("Подвал");
    
    Таб.ТолькоПросмотр(1);
        Таб.Показать("Моя таблица", "");


код примерный, может где то и есть ошибка, но идея такая
awp
Запросом и обходом по групиировкам не?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.