1с как открыть html документ

Обновлено: 07.07.2024

Прошу отнестись с понимаем, раньше писал неплохо, но 3 года вне игры. последнее что видел 8.2.
А в 8.3 я даже полеHTMLдокумента не пойму куда вставить.
Искал по разным форумам, но для 8.3 примеров что-то совсем мало.

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

Спасибо!
Отпишусь как что-то получится.
А как теперь поле формы называется куда это можно визуально вывести?
Как на форму вставить поле в которое можно ввести html страницу?
В 8.2 это было полеHTMLдокумента. кажется.
Что-то я совсем туплю.

Кладем на страницу "СамСайт" ПолеHTMLДокумента и обзываем его к примеру "Сайт".

Вот как это в 8.3 реализуется?
Ужас, стыдно, но честно не понимаю.

Вот такое написал.

Но в поле Сайт ничего не появляется. Что может быть не так?

(9) сунь запарсить в обработчик события документсформирован

7. Проверяем работу нашей обработки. У меня появился сайт связного. А у Вас?

А у меня вот ничего не появляется..

Код теперь вот так вот выглядит. СайтДокументаСформирован() не запускается.

(0) Обновляемые строки текста в каком-то контейнере находятся (div, например)? ID у контейнера есть? Пример нужен, одним словом.

Вот этот синтаксис же не совсем точен? В модуле формы нельзя с таким синтаксисом обратится к "ЭлементыФормы"?

(14) ты реально из Манилы?

в (13) работающий код

Я горе фринлансер, когда-то перешел с 1С на свои проекты по вебмастерингу.

Это нечто. Я первый в жизни себя таким ослом ощущаю.
Сделал все до запятой как в (13).
Обход элементов не начинается.

1С в локале стоит, файловая БД.
Ну что еще может быть не так. Реквизиты те же.

Отладчик выдает вот тут выдает нули

(17) скорее всего у тебя обработчики не ассоциированы с процедурами обработки - в свойствах формы глянь - события
и прощелкай мышью чтобы связать код с обработчиками

Ассоциированы.
ПриОткрытииии срабатывает по отладчкиу да и остальное тоже.

Все таки, как выглядит оператор перехода на сайт.

я скопировал 13-е дословно.
прошел отладчиком все процедуры.
сайт не открывается обход не начинается.

на обходе сразу уходит в конец цикла, визуально сайта тоже нет.

(22) метод вперед() срабатывает?
какие ошибки выдаются сейчас?

Ошибок нет, но обхода боди.алл тоже нет, там пусто.

но ошибка не выскакивает.
это вот что отладчик пишет.

(24) у элемента формы "Сайт" в свойствах что написано?

путь к данным?
Вид элемента?

Сайт = "----" явно не указала на это.

Реквизит1 Строка неогр длины

Переименовал, ничего не изменилось.

Я правильно понимаю, что Сайт, это реквизит формы, а не самой внешней обработки?

(29) именно - реквизит формы сайт - тип строка - это написано в (13)

Ты гений. Спасибо.

(37) Скачай для примера конфигурацию "Управляемое приложение" там есть обработка "Путеводитель"

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

(39) У тебя тут JSON. В 8.3.6 он уже реализован на уровне платформы, читай его стандартными методами.
(40) Ты можешь показать страницу, с которой тебе надо выдернуть данные, и сказать, какие именно данные нужно выдернуть?
+(41) Конкретно - это массив из двух элементов, каждый элемент - структура.

(40) выше была ссылка.
(39) разработчик утверждал что тут должен быть ХМЛ вообще-то ). он с 8.3.6? Я что такое Json только слышал )

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

стоит задача собирать эту инфу и потом анализировать.
Так как я когда-то неплохо знал УПП и писал море отчетов, то взялся это делать.

Но много конечно сложностей.
Вечером когда футбола будет больше там будет до 40 50 строк одновременно.

(44) JSON суть тот же XML - структурированный набор данных. Просто он легче XMLя, поэтому используется более широко при обмене данными в интернете.
(44) зачем в 1С это пихать? Напиши на JS. Или еще хуже с ним чем с 1С ?

44, да с ним еще хуже, питон знаю только кроме 1С и тоже слабо.
Я брался задачу по формам отчетов делать.
Запись этой инфы в регистры рассматривал как подзадачу не очееь серьезную и н4 слишком объемную.
Ошибся сильно.

Визуальное отражение страницы требование заказчика, в лбом случае. Так что по хорошему чтобы два раза не читать одно и то же, использовать бы лучше уже полученное.
Интересно насколько эта ерунда будет лагать, чтение и запись обновлений раз в 30 секунд.

(54) А зачем ему отображать JSON?

(61) Да помню такой трюк, только на форуме встречал и поломку.
Все работает!
какой релиз 8.3.6 постабильней?
199 пишут не очень.

Но задача растет, так как программист который до этого парсил, родил (на ладно ладно, родила) и ей не до того, то надо теперь запарсить вот это.

У нас там живет DIV

(67) Тебе лучше работать с Полем HTML ибо
onload="loadScript()

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

А. Дублер
Б. По второй ссылке инфы больше.

Распарсить не обязательно средствами 1С, можно чем угодно и писать например в текстовый файл. Ну вы поняли.

Админам. Извините, если предложение мое тут неуместно. Но честно очень надо.

Взаимодействие javascript и интерфейса 1С дает огромные возможности для реализации нестандартных функций. Раньше можно было напрямую вызывать функции JavaScript через DOM объект document Поля HTML документа. В современных браузерах эта возможность ушла. Более того, в веб-клиенте появляется тип ВнешнийОбъект, который вообще нигде не описан. На Инфостарте были предложения вызывать JavaScript через fireEvent, но это очень неудобно. Предлагаю свой вариант решения.

С чего все началось

Разбираться с HTML полем меня сподвигло большое количество задач, в которых была необходимость реализовать интерактивные карты с мониторингом, маршрутизацией и т.д. Поскольку встроенными средствами 1С сделать это невозможно, то раньше использовал ActiveX компоненту собственного изготовления. На обычных формах все работало приемлимо, не считая, что решение и рядом не стояло с открытыми фреймворками типа OpenLayers. После появления управляемых форм, была попытка встроить все тот же ActiveX в HTML документ и разместить его в поле. Решение работает, но в виду ужесточения политики безопасности Microsoft, требовало изменения настроек безопасности на каждом клиенте, что в конечном счете оказалось неприемлимым. Вот тогда мы и поставили перед собой задачу, прикрутить к управляемым формам карты на основе Web-движков (Яндекс.Карты, OpenLayers и прочие Tile ориентированные движки).

Вариант 1. Работает в толстом клиенте, работает в тонком клиенте, не работает в веб-клиенте

Суть метода заключается в получении свойства parentWindow элемента формы ПолеHTMLДокумента. Выглядит примерно так:

Все это прекрасно работает в толстом и тонком клиенте, но в веб-клиенте это работать не будет, так как в веб-клиенте у ПоляHTMLДокумента в свойстве Документ нет parentWindow.

Вариант 2. Работает в Толстом клиенте, тонком клиенте, веб-клиенте (проверено Chrome, IE, Edge)

И небольшие правки в коде формы

Таким образом для толстого и тонкого клиента мы оставляем все как и было, но для универсальности используем расширенный нами объект DOM body. В веб-клиенте элемент формы ПолеHTMLДокумента.Документ содержит тип ВнешнийОбъект, что на самом деле является COM реализацией элемента body по структуре DOM.

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

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

  • .xls
  • .xlsx
  • .ods
  • .doc - необходим установленный Word
  • .docx - необходим установленный Word
  • .rtf
  • .pdf
  • .txt
  • .bmp
  • .dib
  • .rle
  • .jpg
  • .jpg
  • .tif
  • .jpg
  • .jpg
  • .ico
  • .wmf
  • .emf

Пример отображения формата docx:

Обработка


Word



Пример отображения формата xlsx:

Обработка


Excel


Пример отображения изображения (gif):


Тестирование проводилось на платформе 8.3.15.1565.

В обработке для некоторых процедур приведены аналоги в БСП 3.0.3.87.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

(2) цель может и одна, но решения разные :) и там загружаемый ресурс а здесь еще и статья с описанием. Как-бы еще доработать процесс подчистки временных файлов, например, при закрытии формы. А в процессе работы хранить СЗначений, если пользователь будет перебирать повторно файлы, что-бы новых файлов не плодить, а открывать уже созданные. А при закрытии, удалить файлы согласного этого СЗначений. (4)при открытии файла из справочника происходит проверка на наличие данного файла на ПК.
При открытии файла можно писать локальный путь в ТЧ . В момент закрытия свернуть данную ТЧ (чтобы не удалять уже удаленный файл) ,обойти её циклом и удалить файлы. (13)На самом деле иногда сам задумываюсь об этом. В БСП много полезного, но ОЧЕНЬ много лишнего переделал на обычные формы, спасибо, подскажите пожалуйста почему pdf исключили? Поле HTML документа - универсальный объект для окон других приложений, точно не скажу, но очень уж похож на встроенный Ole Automation. Я через него проводник выводил с возможностью перетаскивания файлов в него и всеми прочими функциями проводника. решил через
тд=Новый ТекстовыйДокумент;
тд.Прочитать(ВремФайл);
ТекстВозврата=тд.ПолучитьТекст(); (25) странно. у меня на платформе 8.3.10.2699 всё открывает. В любом случае спасибо. Постараюсь добавить ваши правки в обработку. Тоже написано подобное решение по открытию файлов, но после обновления на платформу 8.3.15 , открываются только jpeg, pdf и word выдают ошибку "загрузка по файловому протоколу заблокирована". Где это настроить непонятно. В вашей обработке также.

Просмотры 15001

Загрузки 50

Рейтинг 103

Создание 01.11.17 08:36

Обновление 06.12.19 10:22

№ Публикации 694061

Операционная система Не имеет значения

Страна Россия

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Да

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

См. также

Безопасная работа с транзакциями во встроенном языке Промо

Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку "В данной транзакции уже происходили ошибки". Учимся защищаться от них.

1 стартмани

25.03.2019 46255 tormozit 58

Пример создания документа с движениями в ERP 2.5.7

Пример создания документа с движениями в ERP 2.5.7, а также включение документа в основные подсистемы, а именно по управлению доступом, датам запрета изменения, контролю остатков, использованию характеристик и серий и прочее.

1 стартмани

10.08.2021 2250 maraty 10

Работа с абстрактным массивом

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

1 стартмани

07.07.2021 3892 kalyaka 56

Семеро одного не ждут? Асинхронное исследование асинхронности

Все уже, наверное, знают о появлении в новых версиях платформы асинхронных функций и конструкций Асинх/Ждать. Многие, возможно, уже их используют. Но что будет, если создать свои асинхронные функции, запустить и не дожидаться окончания их выполнения? Неужели можно запустить несколько процессов параллельно?

1 стартмани

08.06.2021 5643 Alxby 45

План подготовки к аттестации на 1С: Специалиста по платформе (+ Ссылки на материалы) Промо

Хочу поделиться собственным планом подготовки к аттестации на 1С: Специалист по платформе 8.3 со ссылками на материалы (и указанием стоимости).

1 стартмани

23.12.2017 25852 UtSpar 39

Модель запроса

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

1 стартмани

01.03.2021 2996 kalyaka 25

Связи параметров выбора номенклатуры и характеристики в 1С 8.3

Из этой статьи вы узнаете, как, используя системы стандартов и методик разработки 1С, правильно настроить связи параметров выбора номенклатуры и характеристики в новой табличной части.

1 стартмани

22.02.2021 1460 plotnikov1c 2

Как сдать экзамен 1С:Специалист по платформе?

Не пора ли получить сертификат 1С:Специалист по платформе? Для этого .

1 стартмани

18.01.2021 18147 vasilievil 10

Как выполнить отчет на СКД через COM и получить данные отчета? Промо

2 стартмани

08.05.2018 33291 wowik 3

СКД: все, что вы хотели знать о подмене схемы компоновки данных в отчетах и обработках

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

1 стартмани

07.12.2020 5328 user1502278 18

Cбор и анализ ошибок при помощи Sentry, или как упростить жизнь себе и пользователям

Цель данной статьи - сделать процесс сбора и анализа ошибок, происходящих в базе, максимально простым, быстрым и удобным, собирать статистику по ошибкам, местам их возникновения и частоте их появления, а также в деталях разобрать все тонкости по интеграции 1С с Sentry.

1 стартмани

09.10.2020 7763 hexhoc 12

Программная корректировка при выводе отчета СКД

Большинство отчетов на СКД, требующих программной корректировки, реализуются с помощью программной настройки СКД или обработки табличного документа уже после вывода отчета. Но во многих случаях более оптимально будет выполнять программную корректировку в процессе вывода отчета. Для этого существуют программные объекты, о которых я расскажу в данной статье.

1 стартмани

08.10.2020 11415 dabu-dabu 16

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

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

1 стартмани

19.01.2018 70736 rpgshnik 31

Библиотека программного изменения формы (УФ)

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

1 стартмани

07.08.2020 7062 BuriyLesha 19

Загрузка, скачивание, удаление файлов с помощью НачатьПомещениеФайлаНаСервер() и НачатьПолучениеФайлаССервера()

В платформе 8.3.15 появились новые методы НачатьПомещениеФайлаНаСервер() и НачатьПолучениеФайлаССервера(). В данной статье рассмотрено готовое решение проверенное и прекрасно работающее на тонком и веб-клиенте.

1 стартмани

25.07.2020 12303 Flashill 15

Подготовка к экзамену 1С:Специалист, платформа 8.3

Подготовка, подготовка, подготовка.

1 стартмани

10.03.2020 14466 jan-pechka 91

Как нарисовать граф на 1С Промо

Описывается реализация на языке запросов 1С метода расположения вершин графа на плоскости, основанного на использовании электромеханической аналогии. При этом вершины графа представляются одноименными электрическими зарядами, дуги - пружинками. Силы взаимодействия вершин в этой системе переводят их из случайного начального в нужное конечное положение. Приведена обработка рисования графов "ГрафОграф", реализующая данный подход, показывающая также динамику процесса. Граф можно задать списком ребер вручную, выбрать из нескольких предопределенных примеров или сформировать по данным информационной базы.

1 стартмани

09.08.2013 73669 ildarovich 117

Запуск фонового задания во внешней обработке без регистрации в справочнике "Дополнительные отчеты и обработки"

Описал, как показать прогресс выполнения длительной операции во внешней обработке, и при этом не регистрировать обработку в справочнике "ДополнительныеОтчетыИОбработки". Проверял на БСП версии "3.1.2.264".

1 стартмани

09.03.2020 7769 VinnieThePOOH 6

Методика обновления формы объекта данных при изменении объекта

В формах объектов данных часто встречаются элементы, косвенно связанные с объектом. Логику обновления этих элементов при изменении объекта обычно вызывают из обработчиков ПриСозданнииНаСервере и ПриОткрытии, забывая про наличие других способов изменения объекта. В статье предложена методика для обычных и управляемых форм, учитывающая все способы.

1 стартмани

09.03.2020 21403 tormozit 16

Отправка уведомлений с помощью командной строки, Оповещения с сервера на клиент с помощью командной строки

Отправка уведомлений с помощью команды командной строки msg. Оповестить пользователей из серверного модуля или регламентного задания, с помощью командной строки msg.

1 стартмани

05.03.2020 8258 user5300 3

Простой способ индексирования интервалов Промо

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

1 стартмани

28.09.2016 42181 ildarovich 22

2 стартмани

31.01.2020 11764 burni4 16

Как в 1С создать паутинку "как на Инфостарте"

Добрый день, уважаемы коллеги! В этой статье я расскажу, как в 1С создать отчет - "паутинку" на примере отчета по компетенциям сотрудника (разрабатывала на платформе 1С:Предприятие 8.3 (8.3.13.1865).

1 стартмани

15.01.2020 9817 user660153_aleks.pisanets 17

Краткое руководство по внесению изменений в конфигурацию

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

1 стартмани

13.01.2020 23085 sapervodichka 41

Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов Промо

1 стартмани

01.02.2018 38588 rpgshnik 59

Разбираемся с web-kit в 1С, на примере интеграции TinyMCE в управляемую форму в УТ 11.4. Допиливаем обмен с сайтом в УТ 11.4

Многие уже знают, что в релизе платформы 8.3.14.1565, браузер Internet Explorer был заменен на Web-Kit, это на самом деле большой шаг вперед, но я уверен, многим, как и мне, пока не совсем понятно, что к чему. Возник опыт использования web-kit в 1С, вызова JS из 1С и вызова 1С из JS. Давайте вместе попробуем понять, чем одно отличается от другого, и заодно сделаем, что-нибудь полезное. Да и наверняка многим придется переписывать свои подобные поделки после обновления на новую платформу, так что надеюсь мой опыт окажется полезным.

2 стартмани

08.12.2019 9746 Бэнни 25

"Живые" картинки со Snap.SVG

1 стартмани

24.10.2019 15226 blackhole321 7

RLS - дубли условий в запросах к СУБД

"Подводные камни", возникающие при бездумном копировании ролей с ограничениями RLS, как это отражается на производительности, разбор примера и инструмент для анализа.

1 стартмани

07.10.2019 10153 geron4 4

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному Промо

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

1 стартмани

10.05.2018 54987 dsdred 46

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

Однажды я столкнулся с необходимостью открыть форму ЛЮБОГО документа с определенными изменениями, не зависящими от структуры объекта (например, заблокировать все кнопки). В интернете решения я не нашел. Обычно на форумах на запросы подобного рода отвечают чем-то вроде "покажи первоначальную задачу, а не спрашивай как реализовать то, что ты придумал". Тем не менее, мне стало интересно, как это можно сделать.

1 стартмани

03.10.2019 8212 nekit_rdx 25

Многопоточная обработка данных на примере перепроведения документов

Дальнейшее развитие темы фоновой обработки данных - проведение документов в потоках. Настройка параметров и запуск основного процесса (менеджера потоков). Разбивка документов для проведения на не связанные друг с другом наборы и запуск дополнительных фоновых заданий для отдельных потоков. Отслеживание выполнения каждого потока в родительском сеансе.

1 стартмани

17.09.2019 13085 ids79 46

Описание формата внутреннего представления данных 1С в контексте обмена данными

Фирма 1С не рекомендует использовать внутреннее представление данных для любых целей, которые отличны от обмена с 1С:Предприятием 7.7. Но сама возможность заглянуть на "внутреннюю кухню" платформы с помощью функций ЗначениеВСтрокуВнутр(), ЗначениеВФайл(), ЗначениеИзСтрокиВнутр() и ЗначениеИзФайла(), дала возможность сообществу программистов 1С разработать новые приемы разработки и анализа. Так, именно на использовании внутреннего представления был построен алгоритм "быстрого массива", который позволяет практически мгновенно создать массив в памяти на основании строки с разделителями. С помощью разбора внутреннего представления можно "на лету" программным кодом выполнить анализ обычной формы и даже сделать редактор графической схемы. Во внутреннем формате сохраняют свои данные между сеансами различные популярные внешние обработки. А еще это возможность сделать быстрый обмен с внешними системами.

В статье на примере будут описаны все этапы создания поля html документа. В 1с html поле позволяет представить данные, которые не требуется редактировать, в более эстетичном виде. Разработчик может применить возможности html для создания и настройки формы справочника или бизнес-процесса (как делается в конфигурации Документооборот).

Рассмотрим пример. Разработаем обработку, которая будет представлять элемент справочника Пользователи в виде поля html документа. Для разработки примера я использовал демо БСП 3.1 (управляемое приложение).

Выведем в документ следующие поля справочника:

  • Наименование и Комментарий в виде текста;
  • ФизическоеЛицо и Подразделение в виде ссылок;
  • Фотографию пользователя;
  • Контактную информацию в виде таблицы.

Размещение реквизитов на форме

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

Теперь поработаем над программной частью формы:

  • Заполнять html поле данными будем при изменении пользователя. Поэтому создадим для него обработчик события ПриИзменении;
  • Работа же с самим полем потребует перехода на сервер, так как нам необходимо выполнять запрос и получать данные из хранилища значений. Поэтому для заполнения данных html создадим функцию ЗаполнитьHTMLПредставление с директивой НаСервереБезКонтекста. В качестве параметра передадим в нее ссылку на пользователя;

В итоге должно получиться следующее:

Получение данных

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

Заполнение стилей 1с html поля

Теперь в функции ЗаполнитьHTMLПредставление будем описывать html документ. Начнем с обязательных тегов <html> и <head>. После чего перейдем к заполнению стилей (тег <style>), которые будут применяться во всем документе, а также в отдельных его блоках.

Рассмотрим заполнение стилей более подробно:

Создание тела html документа в 1с 8

После описания стилей займемся формированием тела документа. Для этого используем тег <body>.

Вывод изображения в html

Начнем с вывода фотографии пользователя. В элементе справочника она хранится в реквизите Фотография, в виде хранилища значения. Его мы получили вместе с остальными данными пользователя, при помощи запроса.

Разберем представленный код:

  • Хранилище содержит двоичные данные изображения, их необходимо получить. Используем для этого метод Получить(), который распаковывает данные хранилища;
  • В html мы можем вывести изображение либо указав ссылку на него, либо использовав его двоичные данные, в кодировке base64. Для этого используем метод Base64Строка;
  • После подготовки данных, можно выводить их в документ.
    • Используем тег <img>, применяемый для вывода изображений;
    • Атрибут src указывает адрес выводимого изображения или его данные. У нас это двоичные данные, поэтому в дополнение к ним необходимо использовать префикс data:image/ и указание типа данных base64.

    Для того чтобы отделить изображение от следующей информации, используем тег <p>. Он означает начало нового абзаца. При описании стилей мы указали, что перед началом нового абзаца устанавливается отступ в 10 пикселей.

    Вывод текстового реквизита в html

    После фотографии выведем основные данные пользователя в следующем формате:

    Начнем с имени пользователя:

    Разберем представленный код:

    • Для того, чтобы имя реквизита не сливалось с его содержанием, выделим его другим цветом. Для этого используем свойство <font>, позволяющее изменять характеристики текста. В нашем случае это цвет color.
    • После вывода данных используем тег <br>. Он предназначен для перехода на следующую строку.

    Вывод ссылки в html

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

    Разберем представленный код:

    • Для создания ссылок используется тег <a>. Его атрибут href задает адрес ссылки. Для удобства работы создадим шаблон для вывода навигационной ссылки на физлицо. В параметр %1 будем выводить ссылку, а в параметр %2 текст ссылки;
    • Для получения навигационной ссылки используем метод ПолучитьНавигационнуюСсылку(<Ссылка>);
    • Заполним параметры шаблона, используя строковую функцию СтрШаблон;

    Далее нам необходимо будет вывести еще один текстовый реквизит и еще один ссылочный. Для того чтобы не дублировать код вынесем добавление реквизита в html в отдельную, универсальную процедуру.

    Вывод всех реквизитов будет выглядеть следующим образом:

    Вывод таблицы в html 1с

    Осталось вывести таблицу контактной информации пользователя. Это делается довольно просто.

    • Для вывода таблицы используется тег <table>;
    • Для вывода строки таблицы тег <tr>;
    • Тег <td> отвечает за вывод ячейки;
    • Для вывода ячейки заголовка используется тег <th>.

    На этом формирование поля html документа в 1с завершено. Осталось только закрыть теги и вернуть сформированный текст.

    В итоге у нас получается html поле, заполненное следующим образом:

    Html документ сформированный в 1с

    Обработка нажатия на ссылку

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

    Читайте также: