Имя: Пароль:
1C
 
Печать 4 накладных на одном листе А4 (1с8.3 УПП ОФ)
0 Casper211
 
25.04.16
15:55
У меня есть несколько РТУ, я делаю из них накладные с товарами для отправки в посылку.


ФормСтрока = "Л = uk_UA; ДП = Истина";
    ПарПредмета="гривня, гривні, гривень, м, копійка, копійки, копійок, ж, 2";
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    Макет = ПолучитьМакет("Накладная");
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПокупатель = Макет.ПолучитьОбласть("Покупатель");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    ОбластьИтого = Макет.ПолучитьОбласть("Итого");
    ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
    ОбластьЛиния = Макет.ПолучитьОбласть("Линия");
    
    ТабДокумент.РазмерСтраницы = "A4";
    ТабДокумент.АвтоМасштаб = Истина;
    
    Для каждого СтрокаРТУ Из РТУ Цикл
            
        ЗапросТоваров = Новый Запрос;
        ЗапросТоваров.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслугТовары.Ссылка.Контрагент Как ПредставлениеПокупателя,
        |    РеализацияТоваровУслугТовары.Номенклатура Как Товар,
        |    РеализацияТоваровУслугТовары.Номенклатура.Артикул Как Артикул,
        |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения Как Од,
        |    РеализацияТоваровУслугТовары.Цена,
        |    РеализацияТоваровУслугТовары.Сумма,
        |    РеализацияТоваровУслугТовары.ЗаказПокупателя,
        |    РеализацияТоваровУслугТовары.Количество,
        |    РеализацияТоваровУслугТовары.Ссылка.СуммаДокумента Как Всего,
        |    РеализацияТоваровУслугТовары.НомерСтроки
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        |ГДЕ
        |    РеализацияТоваровУслугТовары.Ссылка = &РТУ";
        
        ЗапросУслуг = Новый Запрос;
        ЗапросУслуг.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслугУслуги.Количество,
        |    РеализацияТоваровУслугУслуги.Номенклатура Как Товар,
        |    РеализацияТоваровУслугУслуги.Сумма,
        |    РеализацияТоваровУслугУслуги.Цена,
        |    РеализацияТоваровУслугУслуги.Номенклатура.Артикул Как Артикул
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
        |ГДЕ
        |    РеализацияТоваровУслугУслуги.Ссылка = &РТУ";
        
        ЗапросКонтрагент = Новый Запрос;
        ЗапросКонтрагент.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслугТовары.Ссылка.Контрагент Как ПредставлениеПокупателя,
        |    РеализацияТоваровУслугТовары.Ссылка.СуммаДокумента Как Всего
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        |ГДЕ
        |    РеализацияТоваровУслугТовары.Ссылка = &РТУ";
        
        ЗапросКонтрагент.УстановитьПараметр("РТУ", СтрокаРТУ.Значение);
        ЗапросТоваров.УстановитьПараметр("РТУ", СтрокаРТУ.Значение);
        ЗапросУслуг.УстановитьПараметр("РТУ", СтрокаРТУ.Значение);
        
        Строка = ЗапросТоваров.Выполнить().Выбрать();
        Услуга = ЗапросУслуг.Выполнить().Выбрать();
        СтрокаКонтрагент = ЗапросКонтрагент.Выполнить().Выбрать();    
        
        
        ТабДокумент.Вывести(ОбластьЗаголовок);
        
        Пока СтрокаКонтрагент.Следующий() Цикл
            ОбластьПокупатель.Параметры.Заполнить(СтрокаКонтрагент);
            ОбластьИтого.Параметры.Заполнить(СтрокаКонтрагент);
            ОбластьСуммаПрописью.Параметры.ИтоговаяСтрока = "Всього найменувань  " + Строка.Количество() + ", " + "на суму  "+ Формат(СтрокаКонтрагент.Всего, "ЧДЦ=2") + " грн.";
            ОбластьСуммаПрописью.Параметры.СуммаПрописью = ЧислоПрописью(СтрокаКонтрагент.Всего, ФормСтрока, ПарПредмета);
        КонецЦикла;  
        ТабДокумент.Вывести(ОбластьПокупатель);
        ТабДокумент.Вывести(ОбластьШапкаТаблицы);
        НумерацияСтрок = 0;
        Пока Строка.Следующий() Цикл
            ОбластьСтрока.Параметры.НомерСтроки =НумерацияСтрок+1;
            НумерацияСтрок = НумерацияСтрок+1;
            ОбластьСтрока.Параметры.Артикул =Строка.Артикул;
            ОбластьСтрока.Параметры.Товар =  Строка.Товар;
            ОбластьСтрока.Параметры.Количество =Строка.Количество;
            ОбластьСтрока.Параметры.Од = Строка.Од;
            ОбластьСтрока.Параметры.Цена =Строка.Цена;
            ОбластьСтрока.Параметры.Сумма = Строка.Сумма;
            ТабДокумент.Вывести(ОбластьСтрока);
        КонецЦикла;
        Пока Услуга.Следующий() Цикл
            ОбластьСтрока.Параметры.НомерСтроки =НумерацияСтрок+1;
            НумерацияСтрок = НумерацияСтрок+1;
            ОбластьСтрока.Параметры.Артикул =Услуга.Артикул;
            ОбластьСтрока.Параметры.Товар =  Услуга.Товар;
            ОбластьСтрока.Параметры.Количество =Услуга.Количество;
            ОбластьСтрока.Параметры.Цена =Услуга.Цена;
            ОбластьСтрока.Параметры.Сумма = Услуга.Сумма;
            ТабДокумент.Вывести(ОбластьСтрока);
        КонецЦикла;
        ТабДокумент.Вывести(ОбластьИтого);
        ТабДокумент.Вывести(ОбластьСуммаПрописью);
        ТабДокумент.Вывести(ОбластьЛиния);
        ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЦикла;
        ТабДокумент.Показать();



Как сделать так чтобы печатало 4 накладных на 1 А4? нужно использовать  ТабДокумент.ЭкземпляровНаСтранице = 4;
???
1 ejikbeznojek
 
25.04.16
15:57
Разделители в цикле не выводить
2 Casper211
 
25.04.16
16:07
(1) тогда просто будет 2 или 3 листа А4. И то пополам разорвано. Ну если накладные не влезают все на 1 лист? Есть такая возможность как в пдф ?? я сделаю например 4 листа А6 и затем напечатать их на 1 листе А4?
3 ejikbeznojek
 
25.04.16
16:24
Выводить разделители в конце, и печатать по ширине страницы.
Мне кажется больше ни как.
4 Casper211
 
25.04.16
16:32
(3) а этот параметр не то что я думал ??? (Вопрос темы)

ТабДок.ЭкземпляровНаСтранице= 4; //на листе будет размещено четыре страницы
5 uno-group
 
25.04.16
18:07
(4) Если документ в 2-3 строки то-то. Последовательно друг за другом если к-во экземпляров влазит на страницу.
Как вариант в печатной форме делать 2 столбца по накладной в каждом столбце. и потом выводить 2 экземпляра на страницу.
только чтобы это все влезло на А4 придется тебе следить.
6 uno-group
 
25.04.16
18:08
а лучше делать сразу в таблице все 4 документа и уже там задавать что разместить на 1 листе
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший