Пакетная печать документов в 1С7.7

Обработка предназначена для любой конфигурации 1С7.7. Дает возможность распечатывать, не заходя в документы, формы документов, при условии, что для этих документов есть внешние печатные формы в каталоге prnforms  с соответствующими файлами описаний *.efd. Эти внешние обработки печати отличаются от стандартных несколькими строчками.

Встала задача: распечатать счета-фактуры на аванс за квартал массово. ПОлучилась такая вот обработочка для решения этой задачи по любому виду документов. При открытии обработки заполняется список слева со всеми видами документов. В этом списке надо встать на строку с интересующим видом документа. Выбрать необходимый период. Задать все дополнительные условия отбора, если надо: по контрагенту, по комментарию, по проведенности или пометке удаления и прочее. Щелкнуть по кнопке «Отобрать». Заполнится список справа отобранными документами. Надо поставить пометки у тех, которые необходимо распечатать. Также заполнится список имеющихся печатных форм, в котором надо отметить ту, которую хотим печатать. Нажимаем кнопку «Печать» и на экран выведутся нужные документы не в отдельных окнах, а в одном, из которого можно распечатать на принтер.

Примечание: в каталог внешних печатных форм информационной базы кладем 2 файла на каждый вид документа: *.ert и *.efd. Отличие от имеющихся файлов процедурой при открытии:

Процедура ПриОткрытии()
    
    Если ПустоеЗначение(Форма.Параметр) = 0 Тогда       
        Докум      = Форма.Параметр.Получить(«Контекст»);
        Устройство = Форма.Параметр.Получить(«Устройство»);
        КолвоКопий = Форма.Параметр.Получить(«КоличествоКопий»);       
        Если ТипЗначенияСтр(Докум)=»СписокЗначений» Тогда
            Таб = СоздатьОбъект(«Таблица»);
            Для к=1 по Докум.РазмерСписка() Цикл
                Если к>1 Тогда
                    Таб.НоваяСтраница();
                КонецЕсли;
                ТекДок=Докум.ПолучитьЗначение(к);
                Печать(ТекДок, Устройство, КолвоКопий);
            КонецЦикла;
            Таб.Опции(0,0,0,0,»ОпцииПечати»,»ОкноПечати»);    
            Таб.ПараметрыСтраницы(2,,,5,5,5,5,0,0,1);            
            Таб.ТолькоПросмотр(1);        
            Таб.Показать(«Печать счета-фактуры»,»»);
        Иначе
            Сообщить(«Печать возможна только из групповой обработки!»);    
        КонецЕсли;
        Статусвозврата(0);
        Возврат;  
    КонецЕсли;   
КонецПроцедуры // ПриОткрытии()

И в процедуре печати надо убрать строчки инициализации таблицы и отображения таблицы. все остальное также. Прилагается печатная-форма для счетов-фактур 1137. Их надо поместить в папку «ExtFormsPrnForms» рабочей базы. Есть возможность доработать отсутствующие печатные формы.

6 Comments

  1. Ёпрст
  2. nata0579

    У меня не работет ни чего не формирует . файлы помистила в папку, но в окошке список печатных форм ни чего не появилась

    Reply ↓
  3. Арчибальд
  4. nata0579

    с этим разобралась . А вот хочу распечатать только авансовые с/ф ставлю галочку, но почемуто выходят все с/ф.

    Reply ↓
  5. nata0579

    все работает большое спасибо . Хочу сделать что бы также печатолись приходные ордера на поступление материалов. но они почемуто не попадает печатная форма

    Reply ↓
  6. Ctrl P

    Все супер, чуть допилил что бы не надо было создавать отдельную печ.форму для пакетной печати. сэкономил мне полвыходного)))

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *