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

У меня есть задание, задать печать двух актов на одном А4. То есть что бы два одинаковых акта печатались на одном листе. Делается с целью удобства пропечатывания актов, так как их огромное количество.
Пробивал задать данные параметры в свойствах самой печати, уменьшивал размер листа и задавал печать двух экземпляров на страницу, но ничего так и не помогло, либо при печати разрывает сам акт на два А4 либо печатает два экземпляра на двух листах.
Второй подход к снаряду открыл для меня табличную часть документа и модуль печати в конфигураторе но там я так же не нашел параметр - "печать двух экземпляров на одной странице" или что то в этом роде.

Уважаемые знатоки. Подскажите пожалуйста куда еще следует копнуть?

Заранее спасибо.
Batchir
Нужно ковырять саму процедуру печати.
В цикле вывести два раза печать и после чего выполнить команду печати/просмотра сформированного листа,т.е.
если раньше было

таб.ВывестиСекцию("Шапка");
таб.ВывестиСекцию("Строка");
таб.ВывестиСекцию("Подвал");
таб.Показать();


То нужно сделать
Для Инд = 1 По 2 Цикл
      таб.ВывестиСекцию("Шапка");
      таб.ВывестиСекцию("Строка");
      таб.ВывестиСекцию("Подвал");
КонецЦикла;
таб.Показать();
grechina
Сделал следующие

Для Инд = 1 По 2 Цикл 
    Таб.ВывестиСекцию("Шапка|Исполнитель");
    Таб.ПрисоединитьСекцию("Шапка|"+СекцияКонтрагента);
    Таб.ВывестиСекцию("Заголовок|Все");
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Если (ВидНДС.Код = "БезНДС") Тогда      
            Таб.ВывестиСекцию("СтрокаБезНДС|Все");
        Иначе
            Таб.ВывестиСекцию("Строка|Все");
        КонецЕсли;
    КонецЦикла;          
    Если (ВидНДС.Код = "БезНДС") Тогда      
        Таб.ВывестиСекцию("БезНДС|Все");
    Иначе
        Таб.ВывестиСекцию("Итог|Все");
    КонецЕсли;
    Таб.ВывестиСекцию("Дно|Исполнитель");
    Таб.ПрисоединитьСекцию("Дно|"+СекцияКонтрагента);
КонецЦикла;


Напечатало за один раз два акта но каждый на отдельном листе.
Укажите пожалуйста на ошибку.
Batchir
Покажите всю процедуру печати
grechina
На печать выводится - "Стандартная форма"

// ===============================
Процедура Печать(Реж, АвтоВыбор)
    // БиТ 20.08.2009
    Перем ВыбЗначение;
    Если АвтоВыбор = 0 Тогда
        ВариантыПечати = СоздатьОбъект("СписокЗначений");
        ВариантыПечати.ДобавитьЗначение(1,"Стандартная форма");
        ВариантыПечати.ДобавитьЗначение(2,"С факсимильной печатью");
        Если ВариантыПечати.ВыбратьЗначение(выбЗначение,"",,,1) <> 1 Тогда
            Возврат;
        КонецЕсли;
    Иначе
        ВыбЗначение = АвтоВыбор;
    КонецЕсли;    
    // БиТ 20.08.2009

    Таб = СоздатьОбъект("Таблица");
    фУкр = ?(Константа.ФормыНаУкраинском = Да, 1, 0);
    СуффиксТаблицы = ?(фУкр = 1, "_Укр", "");
    СуффиксФайла = ?(фУкр = 1, "_ukr", "");
    ПрефиксФайла = "RNAk";
    
    // БиТ 20.08.2009
    Если ВыбЗначение = 1 Тогда
        ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\"+ПрефиксФайла+СуффиксФайла+".mxl";
        Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
            Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
        Иначе
            Таб.ИсходнаяТаблица("Таблица"+СуффиксТаблицы);
        КонецЕсли;
    Иначе
        ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\"+ПрефиксФайла+"Fax"+СуффиксФайла+".mxl";
        Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
            Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
        Иначе
            Таб.ИсходнаяТаблица("ТаблицаФакс"+СуффиксТаблицы);
        КонецЕсли;
    КонецЕсли;
    // БиТ 20.08.2009
    
    глУстПропись(Гривня);

    РС = ?(ВидТорговли = Перечисление.ВидыТорговли.Нал, глПолучитьРСчет(Фирма, Гривня), Касса);
    
    ЗаказИнфо = "";
    Если Заказ.Выбран() = 1 Тогда
        Если Заказ.Вид() = "Счет" Тогда
            ЗаказИнфо = ?(фУкр = 1, " по рахунку № "," по счету № ") +
            СокрЛП(Заказ.НомерДок) + ?(фУкр = 1, " від "," от ") + Заказ.ДатаДок;
        ИначеЕсли Заказ.Вид() = "Договор" Тогда
            ЗаказИнфо = " по договору № " + СокрЛП(Заказ.НомерДоговора) + ?(фУкр = 1, " від "," от ") + Заказ.ДатаДок;
        КонецЕсли;
    КонецЕсли;
    
    НДССтр = "0.00 грн";
    Если ВидНДС.Ставка.Получить(ДатаДок) <> 0 Тогда
        НДССтр = "20% - " + глФРМВал(Итог("НДС"), Гривня, 1);
    КонецЕсли;
    
    СекцияКонтрагента = ?(Контрагент.ВидКонтрагента = Перечисление.ВидыКонтрагентов.ЧастноеЛицо,
                          "ЧастноеЛицо", "Организация");
    Для Инд = 1 По 2 Цикл
    Таб.ВывестиСекцию("Шапка|Исполнитель");
    Таб.ПрисоединитьСекцию("Шапка|"+СекцияКонтрагента);
    Таб.ВывестиСекцию("Заголовок|Все");
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Если (ВидНДС.Код = "БезНДС") Тогда      
            Таб.ВывестиСекцию("СтрокаБезНДС|Все");
        Иначе
            Таб.ВывестиСекцию("Строка|Все");
        КонецЕсли;
    КонецЦикла;          
    Если (ВидНДС.Код = "БезНДС") Тогда      
        Таб.ВывестиСекцию("БезНДС|Все");
    Иначе
        Таб.ВывестиСекцию("Итог|Все");
    КонецЕсли;
    Таб.ВывестиСекцию("Дно|Исполнитель");
    Таб.ПрисоединитьСекцию("Дно|"+СекцияКонтрагента);
    КонецЦикла;
    // БиТ 20.08.2009
    Если Реж = 0  Тогда
        Таб.Защита(Константа.ФлагЗащитыТаблиц);
        Таб.ТолькоПросмотр(1);
        Таб.Опции(0,0,,);
        Таб.Показать("ПЕЧАТЬ: Акт сдачи-приемки работ","");
    Иначе
        ИмяКаталога = СокрЛП(КаталогПользователя());
        Если ПустоеЗначение(ИмяКаталога) = 1 Тогда
            ИмяКаталога = КаталогИБ();
        КонецЕсли;    
        ИмяФайла = СокрЛП(НомерДок)+"_"+Прав(Строка(ДатаГод(ДатаДок)),2)+?(ДатаМесяц(ДатаДок)<10,"0","")+Строка(ДатаМесяц(ДатаДок))+?(ДатаЧисло(ДатаДок)<10,"0","")+Строка(ДатаЧисло(ДатаДок));
        Если ФС.СуществуетФайл(ИмяФайла+".xls") = 1 Тогда ФС.УдалитьФайл(ИмяФайла) КонецЕсли;
        ИмяФайла = ИмяКаталога +"\"+ ИмяФайла;
        Попытка
            Таб.Записать(ИмяФайла,"XLS");
            глКомментарий("Сохранен файл: "+ ИмяФайла +".xls",2,Контекст,"!");
        Исключение
            Сообщить("Не удалось сохранить файл: " + ИмяФайла +".xls");
        КонецПопытки;    

        ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"\Rom-Mail.dll");
        _SMTP(ТекущийДокумент(), Контрагент, ЗаголовокПисьма, ТелоПисьма, ИмяФайла+".xls");
    КонецЕсли;    
    // БиТ 20.08.2009
        
    глУстПропись(Гривня);
КонецПроцедуры
grechina
Я пытался еще раз сделать все то что вы мне советовали, но у меня так и нечего не получилось.

Подскажите еще какой то метод

Спасибо.
Batchir
ХЗ, как по коду, так должны печататься два акта сразу. Разделителей страниц нет. Больше похоже на мистику.
grechina
Кажется что то похожие выдало.
Результат следующий:
напечатало два А4, но на первом поместилась еще треть второго акта, а на втором листе уже остальная часть.
Подскажите пожалуйста, название процедуры или функции для сдвига/уменьшения отступа или самого размера страницы, чтоб в итоге поместилось два акта на один А4

Заранее спасибо.
grechina
В принципе разобрался, поигрался с полями и все получилось.
Остался один вопрос, как уменьшить шрифт в самом акте?
Vofka
Цитата
Остался один вопрос, как уменьшить шрифт в самом акте?

В самой таблице уменьшайте
grechina
Batchir and Vofka большое спасибо!

Все получилось!
Vofka
Пожалуйста smile.gif
tomol22
а для податкових накладних також треба в конфігураторі правити чи є інші можливості?
logist
Немає інших можливостей, для будь якої форми друку треба правити конфігурацію.
volodya1122
Цитата(tomol22 @ 27.07.11, 9:59) необходимо зарегистрироваться для просмотра ссылки
а для податкових накладних також треба в конфігураторі правити чи є інші можливості?


А що заважаэ поставити в настройках принтера "два экземпляра на страницу"?
tomol22
Цитата(volodya1122 @ 27.07.11, 9:14) необходимо зарегистрироваться для просмотра ссылки
А що заважаэ поставити в настройках принтера "два экземпляра на страницу"?

так воно ж цю сторінку на пополам ділить тобто виходить поливна накладної
volodya1122
Цитата(tomol22 @ 27.07.11, 10:37) необходимо зарегистрироваться для просмотра ссылки
так воно ж цю сторінку на пополам ділить тобто виходить поливна накладної


Ніколи такого не буде. Маштаб макету автоматично зменшується, щоб дві сторінки вмістились на одному А4. (так само як, наприклад, з Microsoft Office Word можна друкувати декілька сторінок (2.4.8,9) тексту на одному А4)
tomol22
от так виглядає 2 екземпляри на 1стр.
[удалено т.к. пользователю лень читать правила форума]
volodya1122
Цитата(tomol22 @ 27.07.11, 10:48) необходимо зарегистрироваться для просмотра ссылки
от так виглядає 2 екземпляри на 1стр.

Там де Ви виставили 2 екземпляри (в настройках 1С) потрібно поставити "Авто". А "два екземляти на сторінку" потрібно поставити в настройках самого принтера!!!
tomol22
ну і саме фото


Цитата(volodya1122 @ 27.07.11, 10:08) необходимо зарегистрироваться для просмотра ссылки
Там де Ви виставили 2 екземпляри (в настройках 1С) потрібно поставити "Авто". А "два екземляти на сторінку" потрібно поставити в настройках самого принтера!!!

Понятно, таким способом також піде тільки треба своїх бухгалтерів навчити так робити, а це проблема.. ))
volodya1122
Цитата(tomol22 @ 27.07.11, 11:15) необходимо зарегистрироваться для просмотра ссылки
Понятно, таким способом також піде тільки треба своїх бухгалтерів навчити так робити, а це проблема.. ))


розумію.... Мені приходилось вчити своїх бухгалтерів вибирати потрібний принтер із списку (задача на перший погдяд проста, але важко пояснити чому програма сама не вибираю той принтер який хоче бухгалтер (для різних цілей різні принтери)
Vofka
Прекращаем офтоп.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.