1с напечатать поле html
1C8.2.14.519 УП Добрый вечер. Справочник имеет реквизит Текст (Строка) в которой содержится HTML-текст. На форме элемента справочника имею реквизит HTMLТекст типа ФорматированныйДокумент.
Вставляю в него HTML-текст:
Отображается HTML текст, полученный из реквизита объекта справочника как положено. Закинул в командную панель стандартную команду этого реквизита "Печать" и "Предварительный просмотр". Но вот при печати, режутся края. Предполагаю, по умолчанию поля слева, права, вверху и внизу равны 0. В предварительном просмотре это можно отрегулировать, но постоянно это делать не удобно. Как программно установить параметры печати как для ТабличногоДокумента?
Пробовал не заморачиваться с Форматированным Документом и печатал содержимое поля Объект.Текст имеющего вид на форме "Поле HTML документа" командой
Но тоже режутся края. Может в этом случае кто-нибудь программно форматировал параметры печати?
P.S. Было замечено, что при установки полей печати при предварительном просмотре в случае для ФорматированногоДокумента, эти параметры сохранялись в неявном виде и при печати во втором случае из поля HTML документа.
1. обнови платформу. очень уж старенькая
2. Примеры программной установки параметров печати
Зададим для печати принтер, отличный от установленного по умолчанию.
Используем свойство Табличного документа «ИмяПринтера» которое позволяет задать имя принтера известного в системе, на который бедет выводится печать.
Установим количество копий печатуемого документа программно.
Установив признак разбора по копиям для документа.
Если размер бумаги нестандартен (Custom & произвольный размер бумаги ) то укажем значения высоты и ширины страницы (в мм):
Программно управляем вывводом колонтиттула и его содержимым в 1С через свойства «ВерхнийКолонтитул» и «НижнийКолонтитул».
Если свойство АвтоМасштаб имеет значение Ложь или еще не заданно то можно указать значение масштабирования в процентах (через свойство «МасштабПечати»).
Отправим на печать табличный документ непосредственно на принтер.
Для ТабличногоДокумента понятно. Не понятно как для Форматированного Документа.
Для печати форматированного документа используется Internet Explorer, из 1С ,вроде как ,к нему не обратиться :
только в предварительном просмотре можно настроить ручками
При работе с клиентами возникла задача: использовать форматированный документ. Итак, существует справочник, в нем табличная часть. Для каждой строки требуется ввести описание, причем описание имеет тип форматированный документ. Потребовалось организовать печать табличной части справочника с описанием для каждой строки. Тип данных "Форматированный документ" не может выводится в табличный документ, поэтому пришлось организовывать печать через Microsoft Word.
Постановка задачи
При работе с клиентами возникла задача: использовать форматированный документ. Итак, существует справочник, в нем табличная часть. Для каждой строки требуется ввести описание, причем описание имеет тип форматированный документ. Потребовалось организовать печать табличной части справочника с описанием для каждой строки. Тип данных "Форматированный документ" не может выводится в табличный документ, поэтому пришлось организовывать печать через Microsoft Word. Для этого требуется:
- Сформировать html-файл. Сохранить его во временные файлы, создать временный каталог и выгрузить туда картинки и прочие файлы.
- Открыть html с помощью Microsoft Word и сохранить в pdf.
Все это требуется сделать программно.
1. Формирование временного файла html.
Один из самых простых, но определяющих внешний вид печатной формы этап. Вот пример формирования простого файла html:
Из типа данных "Форматированный документ" легко получить html строку и вставить её в html файл. Причем это можно сделать и с учетом картинок. Вот пример кода:
В html-документ можно передавать данные с учетом форматирования. В Microsoft Word существуют свои особенности. Так например следующая конструкция формирует строку курсивом и шрифтом "Times New Roman":
2. Открытие html с помощью Microsoft Word и сохранение в pdf
Средствами Microsoft Word возможно сохранение файла html в другие форматы (в том числе в pdf). Для данной операции использовалась следующая конструкция:
В статье на примере будут описаны все этапы создания поля html документа. В 1с html поле позволяет представить данные, которые не требуется редактировать, в более эстетичном виде. Разработчик может применить возможности html для создания и настройки формы справочника или бизнес-процесса (как делается в конфигурации Документооборот).
Рассмотрим пример. Разработаем обработку, которая будет представлять элемент справочника Пользователи в виде поля html документа. Для разработки примера я использовал демо БСП 3.1 (управляемое приложение).
Выведем в документ следующие поля справочника:
- Наименование и Комментарий в виде текста;
- ФизическоеЛицо и Подразделение в виде ссылок;
- Фотографию пользователя;
- Контактную информацию в виде таблицы.
Размещение реквизитов на форме
Для начала создадим внешнюю обработку и добавим форму. На форме создадим два реквизита Пользователь (тип СправочникСсылка.Пользователи) и ПредставлениеHTML (тип Строка неограниченной длины). Перетащим реквизиты в дерево элементов. Для элемента ПредставлениеHTML выберем вид Поле HTML документа и отключим отображение заголовка. Должно получится так:
Теперь поработаем над программной частью формы:
- Заполнять html поле данными будем при изменении пользователя. Поэтому создадим для него обработчик события ПриИзменении;
- Работа же с самим полем потребует перехода на сервер, так как нам необходимо выполнять запрос и получать данные из хранилища значений. Поэтому для заполнения данных html создадим функцию ЗаполнитьHTMLПредставление с директивой НаСервереБезКонтекста. В качестве параметра передадим в нее ссылку на пользователя;
В итоге должно получиться следующее:
Получение данных
Во входные параметры функции ЗаполнитьHTMLПредставление мы передаем только ссылку на пользователя, поэтому для начала надо собрать все данные, необходимые для вывода в html документ. Для этого воспользуемся запросом, который вынесем в отдельную процедуру. Приводить текст процедуры здесь я не буду, чтобы не занимать много места. Ознакомиться с ним можно во внешней обработке, ссылка на которую находится внизу статьи.
Функция возвращает структуру, в которой содержится две выборки. Первая, ВыборкаДанных — содержит одну строку с основными данными пользователя. Вторая, ВыборкаКонтактов — содержит контактную информацию пользователя, в разрезе двух полей: Вид и Представление. Вызов функции получения данных выглядит так:
Заполнение стилей 1с html поля
Теперь в функции ЗаполнитьHTMLПредставление будем описывать html документ. Начнем с обязательных тегов и . После чего перейдем к заполнению стилей (тег ), которые будут применяться во всем документе, а также в отдельных его блоках.
Рассмотрим заполнение стилей более подробно:
Создание тела html документа в 1с 8
После описания стилей займемся формированием тела документа. Для этого используем тег .
Вывод изображения в html
Начнем с вывода фотографии пользователя. В элементе справочника она хранится в реквизите Фотография, в виде хранилища значения. Его мы получили вместе с остальными данными пользователя, при помощи запроса.
Разберем представленный код:
- Хранилище содержит двоичные данные изображения, их необходимо получить. Используем для этого метод Получить(), который распаковывает данные хранилища;
- В html мы можем вывести изображение либо указав ссылку на него, либо использовав его двоичные данные, в кодировке base64. Для этого используем метод Base64Строка;
- После подготовки данных, можно выводить их в документ.
- Используем тег , применяемый для вывода изображений;
- Атрибут src указывает адрес выводимого изображения или его данные. У нас это двоичные данные, поэтому в дополнение к ним необходимо использовать префикс data:image/ и указание типа данных base64.
Для того чтобы отделить изображение от следующей информации, используем тег
. Он означает начало нового абзаца. При описании стилей мы указали, что перед началом нового абзаца устанавливается отступ в 10 пикселей.
Вывод текстового реквизита в html
После фотографии выведем основные данные пользователя в следующем формате:
Начнем с имени пользователя:
Разберем представленный код:
- Для того, чтобы имя реквизита не сливалось с его содержанием, выделим его другим цветом. Для этого используем свойство , позволяющее изменять характеристики текста. В нашем случае это цвет color.
- После вывода данных используем тег
. Он предназначен для перехода на следующую строку.
Вывод ссылки в html
Теперь выведем в документ физлицо пользователя. Так как оно представлено ссылочным типом, оформим его в виде ссылки.
Разберем представленный код:
Далее нам необходимо будет вывести еще один текстовый реквизит и еще один ссылочный. Для того чтобы не дублировать код вынесем добавление реквизита в html в отдельную, универсальную процедуру.
Вывод всех реквизитов будет выглядеть следующим образом:
Вывод таблицы в html 1с
Осталось вывести таблицу контактной информации пользователя. Это делается довольно просто.
На этом формирование поля html документа в 1с завершено. Осталось только закрыть теги и вернуть сформированный текст.
В итоге у нас получается html поле, заполненное следующим образом:
Обработка нажатия на ссылку
В обработчике мы анализируем текст ссылки, на которую произошло нажатие. Если это навигационная ссылка, обрабатываем ее по отдельному алгоритму. Получаем текст и осуществляем переход. Таким образом при нажатии на ссылку, у нас произойдет переход на форму элемента справочника.
Гуляя по просторам интернета, случайно наткнулся на обработку HTML Редактор (Андрей Михайлов aka MAV):
Далее, пришла в голову интересная идея, сделать красивыми комментарии в документах ( у нас они очень большие и многострочные, в отдельной закладке), с поддержкой копирования информации из WORD и EXCEL, с сохранением всех цветов и стилей. Подредактировав данную обработку, стали доступны следующие функции:
1. Добавление текста
2. Добавление, просмотр и печать
3. Просмотр и печать
Теперь, более подробно:
Вот так выгляди поле комментариев в нашей базе:
1. Нажав на кнопку "Добавить комментарий" срабатывает Процедура ДобавитьКоммент(Элемент)
Код 1C v 8.х
2. Процедура вызова "Добавление, просмотр и печать"
Код 1C v 8.х
Откроется форма, вида:Нажав на "Добавить запись" и вставив Таблицу из Excel:
Нажимаем Добавить и получаем:
3. Просмотр и печать
Код 1C v 8.х
Откроется форма просмотра реквизита ИсторияИзменений.Похожие FAQ
Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора QR код в 1С 20
Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google (http://chart.apis.google.com/chart). Вот сайт , который работает с ним. После тог Внешние обработки, печатные формы, обработки по заполнению табличных частей 3
Справочник «Внешние обработки, печатные формы, обработки по заполнению табличных частей» содержит список произвольных обработок, произвольных отчетов, дополнительных печатных форм, обработок для заполнения ТЧ объектов, обработок, подключаемых к отч Временные таблицы, как проверить в отладчике? 0
// Функция для просмотра Временных Таблиц в отладчике Функция ЛукВТ(Запрос, ИмяВнутреннейТаблицы) Экспорт Перем ЗапросТМП, Р; //Получаем таблицу из менеджера временных таблиц запроса ЗапросТМП=Новый Запрос(" ВЫБРАТЬ * ИЗ " +ИмяВнутреннейТаблицы) Выбрать Остатки и Обороты по указанным счетам, отбор по субконто и выгрузка результата в EXCEL 0
Запрос=Новый Запрос; Запрос.Текст icon-exclamation-sign"> Посмотреть все результаты поиска похожихЕще в этой же категории
Полезные возможности редактора кода 1С 28
Мне частенько приходится взаимодействовать с 1С-разработчиками, и во время совместной работы над проектами замечаю, что далеко не все из них хорошо знают свой главный инструмент – «Конфигуратор». Причем это не относится к степени крутости девелопера Работа с буфером обмена средствами 1С 19
Копировать из 1С в буфер обмена( без ВК): ЭлементыФормы.Добавить(Тип(" ПолеHTMLДокумента" ), " Поле_HTML_Документа_acb123" , Ложь); Окно = ЭлементыФормы.Поле_HTML_Документа_acb123.Документ.ParentWindow; Окно.ClipboardData.SetData(" Text" , Текст Структура и название таблиц использыемых для хранения данных в БД 1С 8.х 17
Данные, которые определяют логику функционирования системы на базе 1С:Предприятия, относятся к информационной базе. Хранение информационной базы осуществляется в базе данных с виде набора таблиц, для чего 1С:Предприятие 8.1 может использовать одну из Программно получить список активных пользователей 12
Процедура ПолучениеСпискаАктивныхПользователей() ИтогСписокСоединений.Очистить(); СоединенияИнформационнойБазы = ПолучитьСоединенияИнформационнойБазы(); Для Каждого Соединение Из СоединенияИнформационнойБазы Цикл ТЗ=ИтогСпи Как получить ссылку на объект из навигационной ссылки? 7
Процедура ПолучитьСсылкуИзНавигационной(НС) ПерваяТочка = Найти(НС, " e1cib/data/" ); ВтораяТочка = Найти(НС, " ?ref icon-exclamation-sign"> Посмотреть все в категории Полезные, Универсальные ФункцииКлючевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
HTML-редактор используется для создания пользовательских описаний в виде HTML-документов. Окно редактора содержит три закладки, позволяющие осуществлять просмотр и редактирование документа.
На закладке Редактирование документ отображается в текстовом и графическом виде:
На закладке Текст разработчик имеет возможность редактировать HTML-текст документа:
Закладка Просмотр предназначена для отображения документа в том виде, в котором он будет показан пользователю:
Работа с HTML-документом напоминает работу в обычном текстовом редакторе, однако HTML-редактор предоставляет ряд дополнительных возможностей, которые обусловлены использованием формата HTML:
Форматирование текста
Текст HTML-документа можно форматировать: устанавливать его стиль, абзацные отступы, выбирать размер шрифта, параметры, гарнитуру и т. д.:
При копировании текста из других текстовых редакторов (например, Word) HTML-редактор сохраняет исходное форматирование текста.
Таблицы
В HTML-документ можно вставлять таблицы и редактировать как параметры отдельных ячеек таблицы, так и изменять внешний вид и параметры всей таблицы:
Картинки
В HTML-документе могут быть размещены картинки. Разработчик имеет возможность задавать размеры картинки, ее положение и толщину рамки вокруг картинки:
Надписи
HTML-редактор позволяет использовать в документах надписи — специальные объекты HTML-документа. В надписи можно разместить текст, таблицу, картинку или другую надпись. При просмотре документа вложенные объекты надписи будут непрерывно прокручиваться справа налево:
Читайте также: