Универсальная внешняя печатная форма счета-фактуры и УПД для Бухгалтерии 3.0


Может быть полезна для разработчиков, которые хотят внести изменения в форму счет-фактуры и УПД, но не хотят добавлять несколько внешних обработок для каждой формы документа.

Внешняя печатная форма счет-фактуры и упд. Сделано на Бухгалтерия предприятия, редакция 3.0 (3.0.52.39). Но должно работать и на других.

Печатает нужную форму в зависимости от даты документа.

Выполнено на БСП.

5 Comments

  1. user853896

    Эта Внешняя печатная форма счет-фактуры выводится на печать только из документа «Реализация товаров и услуг». При попытке вывести на печать из документа «Счет-фактура выданный» вылезает ошибка: «В обработчике печати не был сформирован табличный документ для: СчетФактура981. Как можно исправить и устранить эту проблему?

    Reply
  2. aleksdiez

    (1) проверил, действительно проблема есть, обязательно исправлю.

    Но вас нет в списке скачавших

    Reply
  3. MasI

    Добрый день!

    проверил для счета-фактуры действительно не печатает, я есть в списке скачавших точно)

    Reply
  4. user659124_s.kostina

    Наткнулась на тот же момент, что и авторы предыдущих комментариев) Но обработка уже скачана, так что вот так доработала самым быстрым образом обработку.

    В функции отладочная печать изменила строки:

    Функция ОтладочнаяПечать(МассивОбъектов, ОбъектыПечати) Экспорт
    
    ДокПродажи = МассивОбъектов[0];
    Если ТипЗнч(ДокПродажи) = Тип(«ДокументСсылка.РеализацияТоваровУслуг») Тогда
    СчетаФактуры = ПолучитьСчетФактуры(ДокПродажи);
    Иначе Если ТипЗнч(ДокПродажи) = Тип(«ДокументСсылка.СчетФактураВыданный») Тогда
    СчетаФактуры = Новый Массив;
    СчетаФактуры.Добавить(ДокПродажи);
    КонецЕсли;
    КонецЕсли;
    
    ДатаДок = СчетаФактуры[0].Дата;
    ОбъектыПечати = Новый СписокЗначений;
    
    Если ДатаДок < Дата(«20170701») тогда
    ТД = ПечатьСчетовФактур1137До1Июля(СчетаФактуры, ОбъектыПечати, ТекстЗапросаПечатьСчетовФактур(,,Ложь));
    ИначеЕсли ДатаДок >= Дата(«20170701») И ДатаДок < Дата(«20171001») тогда
    ТД = ПечатьСчетовФактур1137После1Июля(СчетаФактуры, ОбъектыПечати, ТекстЗапросаПечатьСчетовФактур(,,Ложь));
    ИначеЕсли ДатаДок >= Дата(«20171001») тогда
    ТД = ПечатьСчетовФактур981(СчетаФактуры, ОбъектыПечати, ТекстЗапросаПечатьСчетовФактур(,,Истина));
    КонецЕсли;
    
    Возврат ТД;
    
    КонецФункции // ОтладочнаяПечать()
    

    Показать

    И на форме у реквизита «Документ» отметила составной тип данных и добавила ДокументСсылка.СчетФактураВыданный.

    Reply
  5. user659124_s.kostina

    Если же хотите, чтобы обработка работала для внешней ПФ из доп. обработок, то меняла функцию:

    Функция ПолучитьСчетФактуры(ДокументПродажи)
    
    СчетаФактуры = Новый Массив;
    Запрос = Новый Запрос;
    
    Если ТипЗнч(ДокументПродажи) = Тип(«ДокументСсылка.РеализацияТоваровУслуг») Тогда
    
    Запрос.Текст =
    «ВЫБРАТЬ
    | СчетФактураВыданный.Ссылка КАК Ссылка
    |ИЗ
    | Документ.СчетФактураВыданный КАК СчетФактураВыданный
    |ГДЕ
    | СчетФактураВыданный.ДокументОснование В(&ДокументОснование)»;
    
    Запрос.УстановитьПараметр(«ДокументОснование», ДокументПродажи);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    СчетаФактуры.Добавить(ВыборкаДетальныеЗаписи.Ссылка);
    КонецЦикла;
    Возврат СчетаФактуры;
    
    Иначе Если ТипЗнч(ДокументПродажи) = Тип(«ДокументСсылка.СчетФактураВыданный») Тогда
    СчетаФактуры.Добавить(ДокументПродажи.Ссылка);
    Возврат СчетаФактуры;
    КонецЕсли;
    КонецЕсли;
    
    КонецФункции // ПолучитьСчетФактуры()
    

    Показать

    В функции Печать изменить строку

    СчетаФактуры = ПолучитьСчетФактуры(МассивОбъектов);
    

    на

    СчетаФактуры = ПолучитьСчетФактуры(МассивОбъектов[0]);
    

    И добавить вид документа, для которого будет отображаться данная внешняя форма:

    ПараметрыРегистрации.Назначение.Добавить(«Документ.СчетФактураВыданный»);
    
    Reply

Leave a Comment

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