Создаем внешнюю печатную форму для 1С 8.2 с программным кодом и примерами.

external print form

Во множестве документов информационных баз  1С 8.2 существуют свои печатные формы, но они жестко привязаны к ним в конфигурации. Таким образом для их изменения приходится менять и саму конфигурацию. Разработчики создали инструмент, позволяющий подключать «Внешние печатные формы» (далее ВПФ) без изменения конфигурации. Давайте рассмотрим  на примере документа «Требование-накладная» и создадим ВПФ «Дефектная ведомость»

1. Заходим в конфигуратор и создаем внешнюю обработку («Ctrl + N»)  Файл-Новый-Внешняя обработка

choose document

2.  Присваиваем имя обработке и создаем реквизит «ССылкаНаОбъект»  с типом «ДокументСсылка», а именно «ДокументСсылка.ТребованиеНакладная».

New object

Type

 

3. Создаем макет и присваиваем ему наименование «Отчет»

New maket

Maket

3. Далее внизу окна жмем Действия-Открыть модуль объекта .

Open module

4. В открывшейся модель добавляем процедуру печать с ключевым словом Экспорт. Далее в этой процедуре описываем алгоритм вывода печатной формы. Данная функция должна возвращать значение типа ТабличныйДокумент.

        Функция Печать () ЭКСПОРТ
                 …
        КонецФункции

         5.  Напишем алгоритм вывода

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

    ТабДокумент.Вывести(ОбластьМакета);         
     
    // Выводим строки таблицы
    ОбластьМакета = Макет.ПолучитьОбласть(«строка»);
    Пока Выборка.Следующий() Цикл
        ОбластьМакета.Параметры.Ном = Ном;
        ОбластьМакета.Параметры.Наименование = Выборка.Номенклатура;
        ОбластьМакета.Параметры.Кол = Выборка.Количество;
        ОбластьМакета.Параметры.Единица = Выборка.ЕдиницаИзмерения;
        ТабДокумент.Вывести(ОбластьМакета);
        Ном=Ном+1;
    КонецЦикла;
   
    ОбластьМакета = Макет.ПолучитьОбласть(«Подвал»);
    ТабДокумент.Вывести(ОбластьМакета);
            
    Возврат ТабДокумент;
КонецФункции // Печать()

 

6. Сохраняем нашу внешнюю печатную форму и открываем режим «Предприятие». Далее нажимаем Сервис- Дополнительные отчеты и обработки — Внешние печатные формы. В появившемся окне добавляем нашу созданную ВПФ. Так как в данном примере мы не описывали представление и свойства документа, то чуть ниже в табличной части под названием «Принадлежность печатной формы» добавляем строку и выбираем к какому документу она принадлежит и под каким названием будет отображаться.

7. Открываем любой документ «Требование-накладная» и далее кнопку «Печать», где мы и увидим нашу созданную ВПФ. И вот что получилось

print

Обсуждение: 2 комментария
  1. Ксения:

    Спасибо Вам за статью! Очень полезно и интересно!

  2. Наталья:

    Спасибо. Действительно полезно и вполне понятно, ещё бы для 1С 8.3 :). Ещё раз спасибо.

Поделитесь своим мнением

Свежие записи
Советы и помощь программиста в 1с © 2018 ·   Войти   · Наверх