1С печатная форма html

1С печатная форма html

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Asus zen aio pro z240ic цена

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

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

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

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

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

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

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

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

Авторегистрация печатной формы

Для того чтобы при подключении печатной формы не нужно было выбирать тип документа вручную можно настроить авторегистрацию. Для этого добавляем новый макет и называем его Параметры_Авторегистрации(только так) и в первой его ячейке пишем Документы. (либо Справочники. ).

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

Смотрите видео по созданию внешней печатной формы для управляемого приложения:

Добрый день.
Подскажите каким способом организовать формирование отчетов в HTML по шаблону ?

У меня есть шаблон XLS . Я могу заполнять эти файлы и предлагать их скачивать пользователю. Но это не удобно. Гараздо проще сделать HTML шаблон и его заполнять.

Читайте также:  Android view view onunhandledkeyeventlistener

Какие для этого можно использовать средства ?
Рисовать с нуля форму отчета это както долго и по моему мнению не правильно.Есть какието генераторы? Или проще сохранить шаблон xls в html и использовать его ?

Поступила задача разработки печатной формы документа с наклонами, выделением текста и т.д.

Ничего особенного. Получил задачу – исполняй. Но оказалось, что таких печатных форм много. Захотелось облегчить свою жизнь и как-то все оптимизировать. Запустил в свой мозг задачу на сон грядущий и умище с утра выдало такое.

Итак, как мне создать печатную форму 1С и сохранить в формате WORD?

Поле HTML документа – это что? Обычная строка.

— Можно использовать возможности объекта ТекстовыйДокумент? Можно.

После таких умозаключений разделил макет, тип ТекстовыйДокумент с HTML разметкой на области (#Область Имя области #КонецОбласти) .


И набросал две простенькие функции. Жизнь стала прекрасна !

Функция ПолучитьОбласть ( МакетHTML,ИмяОбласти )

ТекОбласть = МакетHTML.ПолучитьОбласть ( ИмяОбласти );

//Удаляем строки с определением области #Область, #КонецОбласти

Функция ВывестиОбласть ( Область,Параметры = Неопределено)

Если ТипЗнч ( Параметры ) = Тип ( "Структура" ) и Параметры.Количество () Тогда

Для каждого Эл из Параметры Цикл

Текст = СтрЗаменить ( Текст , "[" + Эл.Ключ + "]" , Эл.Значение );

Далее простая обработка.
Например:

МакетHTML = РеквизитФормыВЗначение ( "Объект" ) .ПолучитьМакет ( "МакетПечати" );

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

ОбластьШапкаТаблицы = ПолучитьОбласть ( МакетHTML ,"ШапкаТаблицы" );

ОбластьСтрока = ПолучитьОбласть ( МакетHTML ,"Строка" );

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

ПараметрыШапки = Новый Структура ( "Номер,Дата,Контрагент"

, "ООО Рога и Копыта" );

ТекстHTML = ТекстHTML + Символы.ПС

+ ВывестиОбласть ( ОбластьШапка , ПараметрыШапки );

ТекстHTML = ТекстHTML + Символы.ПС

Для Сч = 1 по 10 Цикл

Рандом = Новый ГенераторСлучайныхЧисел ( 150 * Сч );

Артикул = Рандом.СлучайноеЧисло ( 10000,30000 );

Рандом = Новый ГенераторСлучайныхЧисел ( 15 *Сч );

Цена = Окр ( Рандом.СлучайноеЧисло ( 100,30000 )/ 100,2 );

Рандом = Новый ГенераторСлучайныхЧисел ( Сч );

Количество = Рандом.СлучайноеЧисло ( 1,20 );

Сумма = Окр ( Цена * Количество, 2 );

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

ПараметрыСтроки = Новый Структура ( "НомерСтроки,Артикул,Товар,Количество,Цена,Сумма"

, "Товар такойто " + Строка ( Сч )

, Формат ( Цена, "ЧДЦ=2" )

, Формат ( Сумма, "ЧДЦ=2" ));

ПараметрыПодвала = Новый Структура( "Сумма" ,Формат ( СуммаИтог , "ЧДЦ=2" ));

ТекстHTML = ТекстHTML + Символы.ПС

+ ВывестиОбласть ( ОбластьПодвал , ПараметрыПодвала );

ПС: Как получить макет с HTML разметкой в 1С? Все знают, что 1С таблицу или документ WORD можно сохранить как HTML.

Ссылка на основную публикацию
Adblock detector