Имя: Пароль:
1C
1С v8
1с 8.2. Вывод печатной формы товары с подписями
0 illiona
 
naïve
14.07.17
09:02
Добрый день. Не могу разобраться, как сделать чтоб при выводе товаров и подвала:подвал захватывал одну позицию товара
******Код******
   // Шапка
    Область = Макет.ПолучитьОбласть("Шапка");
    Область.Параметры.Заполнить(ЭтотОбъект);
    Область.Параметры.Номер = СокрЛП(Номер);
    Область.Параметры.Дата = Формат (Дата, "ДЛФ=Д");
    Область.Параметры.КонтрагентНаименование = Контрагент.ПолноеНаименование;
    ТабДок.Вывести(Область);
    //Шапка товаров
    Область1 = Макет.ПолучитьОбласть("ТоварыШапка");
    ТабДок.Вывести(Область1);
    
    // Товары
    ОбластьТовары = Макет.ПолучитьОбласть("Строка");
    Подвал = Макет.ПолучитьОбласть("Подвал");
       Для Каждого ТекСтрокаТовары Из Товары Цикл
        ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары);
        ОбластьТовары.Параметры.ТоварКод = ТекСтрокаТовары.Товар.Код;
        ОбластьТовары.Параметры.КодЕдиницаИзмерения = ТекСтрокаТовары.ЕдиницаИзмерения.Код;
        ТабДок.Вывести(ОбластьТовары);
    КонецЦикла;
    
    // Подписи  выводятся (Подвал)
    
    МВО.Очистить();
    МВО.Добавить(Область);
    МВО.Добавить(Область1);
        МВО.Добавить(ОбластьТовары);
    МВО.Добавить(Подвал);
    Если НЕ ТабДок.ПроверитьВывод(МВО) Тогда
        ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        ТабДок.Вывести(Область1);
    КонецЕсли;
    
    Подвал.Параметры.ИтогоЦенаПродажиСН = Товары.Итог("ЦенаПродажиСН");
    Подвал.Параметры.ИтогоКоличествоЗ = Товары.Итог("Количество");
    Подвал.Параметры.ИтогоКоличествоО = Товары.Итог("Количество");
    Подвал.Параметры.ИтогоСуммаПродажиСН = Товары.Итог("СуммаПродажиСН");
    ТабДок.Вывести(Подвал);

    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.АвтоМасштаб = Истина;
    ТабДок.Показать();
1 illiona
 
naïve
17.07.17
12:45
// Шапка
    Область = Макет.ПолучитьОбласть("Шапка");

// Шапка списка товаров
    Область1 = Макет.ПолучитьОбласть("ТоварыШапка");
    ТабДок.Вывести(Область1);

// Товары
    ОбластьТовары = Макет.ПолучитьОбласть("Строка");
    ВсегоСтрокПоИндексу = Товары.Количество()-1;

// Подписи (формируем)    
    Подвал = Макет.ПолучитьОбласть("Подвал");    

// Вывод товаров
    Для ИНД = 0 ПО ВсегоСтрокПоИндексу Цикл
        ТекСтрокаТовары = Товары[ИНД];
        ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары);
        ОбластьТовары.Параметры.ТоварКод = ТекСтрокаТовары.Товар.Код;
        ОбластьТовары.Параметры.КодЕдиницаИзмерения = ТекСтрокаТовары.ЕдиницаИзмерения.Код;
              
        // Проверим последнюю строку перед выводом
        Если ИНД = ВсегоСтрокПоИндексу Тогда
            МВО.Очистить();    
            МВО.Добавить(Область);      
            МВО.Добавить(Область1);      
            МВО.Добавить(ОбластьТовары);
            МВО.Добавить(Подвал);
            Если НЕ ТабДок.ПроверитьВывод(МВО) Тогда
                ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЕсли;
        КонецЕсли;
        ТабДок.Вывести(ОбластьТовары);
    КонецЦикла;

    Подвал.Параметры.ИтогоЦенаПродажиСН = Товары.Итог("ЦенаПродажиСН");
    Подвал.Параметры.ИтогоКоличествоЗ = Товары.Итог("Количество");
    Подвал.Параметры.ИтогоКоличествоО = Товары.Итог("Количество");
    Подвал.Параметры.ИтогоСуммаПродажиСН = Товары.Итог("СуммаПродажиСН");
    //Подвал.Параметры.Руководитель = ДанныеФирма.Руководитель;

    ТабДок.Вывести(Подвал);
        
ТабДок.Показать();

Если вывод входит в две страницы, то работает, если три и более - то рвутся подписи
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший