Подключение печатной формы к документу




Создание внешних печатных форм 1С — обычное приложение

Рассмотрим написание простейшей печатной формы в 1с 8.1 — 8.2 на примере конфигурации Бухгалтерия предприятия 2.0. Допустим требуется написать внешнюю печатную форму к документу Реализация товаров и услуг: вывести основные данные документа, а так же из табличной части Товары: номенклатуру, цену, количество и сумму.

Скачать получившийся пример можно по ссылке.

Содержание [скрыть]

  • 1 Создание внешней обработки
  • 2 Создание макета печатной формы
  • 3 Программирование
  • 4 Авторегистрация печатной формы

Создание внешней обработки

В конфигураторе 1C Предприятия 8 создаем внешнюю обработку (Файл->Новый->Внешняя обработка), задаем имя, создаем обязательный для внешней печатной формы реквизит СсылкаНаОбъект с типом ДокументСсылка.РеализацияТоваровУслуг.

Создание макета печатной формы

Добавляем новый макет, тип макета оставляем Табличный документ. На макете создаем три области: Шапка, Данные и Подвал. Сделать это можно выделив нужное количество строк и нажав меню Таблица->Имена->Назначить имя (Ctrl+Shift+N).

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

В области Данные создадим параметры для вывода строк табличной части(Номенклатура, цена и т.д.), а в области Подвал для итогов по количеству и сумме.

Программирование

Зайдем в модуль объекта печатной формы Действия->Открыть модуль объекта.

Создадим там обязательную для печатных форм экспортную функцию Печать().

Функция Печать() Экспорт

 

КонецФункции

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

ТабДок = новый ТабличныйДокумент;

 

Макет = ПолучитьМакет("Макет");

 

ОбластьШапки = Макет.ПолучитьОбласть("Шапка");

ОбластьДанные = Макет.ПолучитьОбласть("Данные");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

Заполним параметры шапки и выведем ее в табличный документ.

ОбластьШапки.Параметры.ТекстЗаголовка = "Печатная форма "+СсылкаНаОбъект.Номер;

ОбластьШапки.Параметры.Организация = СсылкаНаОбъект.Организация;

 

ТабДок.Вывести(ОбластьШапки);

Для того чтобы получить строки табличной части Товары используем запрос.

Запрос = новый запрос;

Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);

Запрос.Текст = "ВЫБРАТЬ

| РеализацияТоваровУслугТовары.Номенклатура,

| РеализацияТоваровУслугТовары.Сумма,

| РеализацияТоваровУслугТовары.Цена,

| РеализацияТоваровУслугТовары.Количество

|ИЗ

| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

|ГДЕ

| РеализацияТоваровУслугТовары.Ссылка = &Ссылка";

В параметр запроса передаем реквизит СсылкаНаОбъект, что бы указать в условии ГДЕ, что нам нужны данные только того документа из которого выводим печатную форму. Чтобы получить выборку запроса, сначала выполняем его, а затем выбираем строки.

Выборка = Запрос.Выполнить().Выбрать();

Далее в цикле заполняем параметры области Данные для каждой строки выборки документа и выводим их в табличный документ. Также в цикле считаем итоговые значения количества и суммы. Заполнять каждый параметр в отдельности мы не будем, а используем процедуру ЗаполнитьЗначенияСвойств((<Приемник>, <Источник>) из глобального контекста, она копирует значения свойств <Источника> в свойства <Приемника>. Сопоставление производится по именам свойств. Подробнее об этом можно прочитать в синтаксис-помощнике 1С Предприятия 8.

ИтогоСумма = 0;

ИтогоКоличество = 0;

 

Пока Выборка.Следующий() Цикл

ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);

 

ИтогоСумма = ИтогоСумма + Выборка.Сумма;

ИтогоКоличество = ИтогоКоличество + Выборка.Количество;

 

ТабДок.Вывести(ОбластьДанные);

КонецЦикла;

Заполним и выведем область Подвал.

ОбластьПодвал.Параметры.ИтогоКоличество = ИтогоКоличество;

ОбластьПодвал.Параметры.ИтогоСумма = ИтогоСумма;

 

ТабДок.Вывести(ОбластьПодвал);

Возвращаем заполненный табличный документ из функции Печать().

возврат ТабДок;

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

Подключение печатной формы к документу

В типовых конфигурациях 1С 8 для регистрации внешних печатных форм существует справочник ВнешниеОбработки. Для подключения следует в режиме предприятия зайти в меню Сервис->Дополнительные отчеты и обработки->Дополнительные внешние печатные формы.

 

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

Теперь в документе Реализация товаров и услуг появится новая печатная форма.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-10-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: