Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2024, 10:35

1с 8.2. Вывод печатной формы с подписями

Автор illiona, 14 июл 2017, 07:53

0 Пользователей и 1 гость просматривают эту тему.

illiona

Добрый день. Не могу разобраться, как сделать чтоб при выводе товаров и подвала:подвал не рвался и захватывал одну позицию товара.
******Код******
   // Шапка
   Область = Макет.ПолучитьОбласть("Шапка");
   Область.Параметры.Заполнить(ЭтотОбъект);
   Область.Параметры.Номер = СокрЛП(Номер);
   Область.Параметры.Дата = Формат (Дата, "ДЛФ=Д");
   Область.Параметры.КонтрагентНаименование = Контрагент.ПолноеНаименование;
   ТабДок.Вывести(Область);
   
   // Товары
   ОбластьТовары = Макет.ПолучитьОбласть("Строка");
   Подвал = Макет.ПолучитьОбласть("Подвал");

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

   ТабДок.ОтображатьСетку = Ложь;
   ТабДок.Защита = Ложь;
   ТабДок.ТолькоПросмотр = Ложь;
   ТабДок.ОтображатьЗаголовки = Ложь;
   ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
   ТабДок.АвтоМасштаб = Истина;
   ТабДок.Показать();

Помогите пожалуйста

illiona

Добавила
Подвал = Макет.ПолучитьОбласть("Подвал");
   МВО.Очистить();
   МВО.Добавить(Область);
   МВО.Добавить(ОбластьТовары);
   МВО.Добавить(Подвал);
   Если НЕ ТабДок.ПроверитьВывод(МВО) Тогда
      ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
   КонецЕсли;

Захватывает итог, последнюю строку таблицы а позицию товара нет

AIFrame


    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.АвтоМасштаб = Истина;

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

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

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

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

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

illiona


illiona

если на трех листах по подвал рвется:(

AIFrame

Ну так проверьте его перед выводом. По аналогии со строкой.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск