Книга знаний

1С:Предприятие / v8

v8: Печать таблицы значений

Функция для печати таблицы значений в макет. Часто хочется вывести таблицу значений на экран, но писать для этого код лень. Можете использовать уже готовую функцию, в которую можете передать даже макет для оформления выводимой ТЗ.Автор статьи: Гений 1С | Редакторы:
Последняя редакция №2 от 24.07.06 | История
URL: http://kb.mista.ru/article.php?id=306

Ключевые слова: печать,таблица значений,макет


Параметры в функцию передаются в виде структуры. Если параметр не задан, используется параметр по умолчанию.
Можно вывести таблицу уже в имеющийся табличный документ или создать новый.
Можно вообще вывести таблицу, не используя макет.
Можно использовать макет, в котором названия шапки, подвала и строк отличаются от "Шапка", "Подвал" и "Строка".

Функция обТаблицаЗначенийВывести(П) Экспорт
    Перем 
        ТЗ, //Таблица значений, выводимая в отчет
        Макет, //Макет, который используется для вывода в отчет, может отсутствовать
        Т, //Таблица, в которую выводить отчет, если не задана, создается
        ПараметрыШапки, //Параметры, передаваемые в шапку
        ПараметрыПодвала,//Параметры, передаваемые в подвал
        ИмяШапки,    //Имя шапки в макете
        ИмяСтроки, //Имя строки в макете
        ИмяПодвала, //Имя подвала
        Показывать //Показывать ли таблицу, по умолчанию истина
        ;
    П.Свойство("ТЗ", ТЗ);
    П.Свойство("Макет", Макет);
    П.Свойство("Т", Т);
    П.Свойство("ПараметрыШапки", ПараметрыШапки);
    П.Свойство("ПараметрыПодвала", ПараметрыПодвала);
    Если НЕ П.Свойство("ИмяШапки", ИмяШапки) Тогда
        П.Вставить("ИмяШапки", "Шапка");
    КонецЕсли;
    Если НЕ П.Свойство("ИмяСтроки", ИмяСтроки) Тогда
        П.Вставить("ИмяСтроки", "Строка");
    КонецЕсли;
    Если НЕ П.Свойство("ИмяПодвала", ИмяПодвала) Тогда
        П.Вставить("ИмяПодвала", "Подвал");
    КонецЕсли;
    Если НЕ П.Свойство("Показывать", Показывать) Тогда
        П.Вставить("Показывать", Истина);
    КонецЕсли;
    
    Если Т=Неопределено Тогда
        Т=Новый ТабличныйДокумент();
    КонецЕсли;
    Если ИмяШапки<>Неопределено И Макет<>Неопределено Тогда
        Шапка=Макет.ПолучитьОбласть(П.ИмяШапки);
        Если ПараметрыШапки<>Неопределено Тогда
            Шапка.Параметры.Заполнить(ПараметрыШапки);
        КонецЕсли;
        Т.Вывести(Шапка);
    Иначе
        //выводим шапку
        Для Каждого Кол ИЗ ТЗ.Колонки Цикл
            Заг=СокрЛП(Кол.Заголовок);
            Заг=?(Заг="",Кол.Имя, Заг);
            Т.Область("R1C"+Формат(1+ТЗ.Колонки.Индекс(Кол), "ЧГ=")).Текст=Заг;
        КонецЦикла;
    КонецЕсли;

    Для Каждого Стр ИЗ ТЗ Цикл
        Если ИмяСтроки<>Неопределено И Макет<>Неопределено Тогда
            Строка=Макет.ПолучитьОбласть(П.ИмяСтроки);
            Строка.Параметры.Заполнить(Стр);
            Т.Вывести(Строка);
        Иначе
            //выводим строки
            Для Каждого Кол ИЗ ТЗ.Колонки Цикл
                Т.Область("R"+Формат(2+ТЗ.Индекс(Стр), "ЧГ=")+"C"+Формат(1+ТЗ.Колонки.Индекс(Кол), "ЧГ=")).Текст=Стр[Кол.Имя];
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
    Если ИмяПодвала<>Неопределено И Макет<>Неопределено Тогда
        Подвал=Макет.ПолучитьОбласть(П.ИмяПодвала);
        Если ПараметрыПодвала<>Неопределено Тогда
            Подвал.Параметры.Заполнить(ПараметрыПодвала);
        КонецЕсли;
        Т.Вывести(Подвал);
    КонецЕсли;
    Если П.Показывать Тогда
        Т.Показать();
    КонецЕсли;
КонецФункции


Еще один вариант функции здесь: v8: Печать таблицы значений (аналог версии 1сv7.7)

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика