поле хтмл документа 1с

Веб браузер в 1С используя поле HTML документа

Обработка Веб браузер проста, состоит из поля HTML документа и 20 строчек кода:

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1с

Скачать обработку для 1С 8.3.7 : WebBrauzer.rar

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1с

Но у сайтов, владельцы которых позаботились о совместимости, все открывается без ошибок, например: этот https://helpf.pro или http://www.rbc.ru

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1с

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1с

Похожие FAQ

Еще в этой же категории

Ключевые слова и Изображения

Слова упорядочены по частоте использования в тексте

Изображения

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1споле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1споле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1с

darkoder, по вашему рецепту перевёл Поле HTML документа в режим совместимости с ie11, а ссылка

для того чтобы перевести 1с в режим совместимости с ie11 надо в реестре в ветке[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]создать параметр dword с именем 1cv8.exe и десятичным значением 11001

а так же создать 1cv8c.exe и 1cv8s.exe м такими же параметрами

для того чтобы перевести 1с в режим совместимости с ie11 надо в реестре в ветке

создать параметр dword с именем 1cv8.exe и десятичным значением 11001

а так же создать 1cv8c.exe и 1cv8s.exe м такими же параметрами

для того чтобы перевести 1с в режим совместимости с ie11 надо в реестре в ветке

создать параметр dword с именем 1cv8.exe и десятичным значением 11001

Источник

Вывод сообщений в HTML поле средствами 1С

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

Обязательные условия для работоспособности модуля:

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

Самое замечательно то, что ссылки в HTML поле уже хранят в себе наши параметры. Что позволяет работать с ними как нам захочется (открывать значения по ссылкам, создавать объекты, передавая в них наши параметры и тп.) Надеюсь, идея немного понятна, ведь она довольно простая.

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

Итак, у нас есть кнопка на форме и её клиентская процедура, а также у нас будет процедура»ЛюбаяПроцедураВКоторойБудетФормированиеОшибок()», в которой у нас непосредственно и будет происходить сбор сообщений для последующего вывода на экран.

Как мы видим, передается параметр GUIDОперации он необходим для того случая, когда сбор сообщений будет одновременно в нескольких процедурах и это нам позволит разделить данные списки сообщений (да, параметр GUIDОперации придется тащить через все вложенные процедуры и функции, этот параметр не обязательный, но тогда вы берете на себя ответственность за некорректный вывод сообщений. Повторюсь, работать будет 🙂 ) Вообще, все параметры необязательные, ЭтаФорма нужна если мы захотим заблокировать форму вызова в момент работы с окном ошибок. Второй параметр соответственно заголовок формы HTML.

Итак, проваливаемся в процедуру ЛюбаяПроцедураВКоторойБудетФормированиеОшибок()

Результат выполнения данного кода:

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1с

Теперь немного подробнее о показанных процедурах:

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1с

Вариант вызова данный процедуры на сервере СообщенияВHTML.ДобавитьСообщение(«»);

ОписаниеСообщения непосредственно само сообщение текстом, которое мы хотим вывести;

Самое интересное, что в параметре ОписаниеСообщения мы также можем формировать ссылки на объекты, которые захотим открыть и даже сохранять в них параметры для дальнейшей обработки, все это в виде текста в формате HTML;

Пример вызова такой преобразовывающей процедуры:

Вариант вызова данной процедуры на сервере СообщенияВHTML.СсылкаНаОбъект(Объект.Контрагент,ПредставлениеОбъекта)

Посмотрим, что у неё внутри:

Как видим, просто формируется строка с тегами для HTML, которые мы будем обрабатывать при нажатии.

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

Давайте посмотрим, как это просто реализовать:

Тут мы используем процедуру СообщенияВHTML.СсылкаНаОбъектСПараметром(«новый документ поступления», ТаблицаТовары, «СоздатьДокументПоступлениеТоваров»)

Посмотрим, что внутри процедуры:

Как видим, все по-прежнему просто.

Осталось только понять, а как обрабатывать ссылки в HTML поле? Для этого у нас есть замечательное событие у элемента «ПриНажатии»

Где мы обращаем внимание на процедуру СообщенияВHTMLОбработкаСобытийКлиент.ОбработкаСобытийПоКлючам(КлючСобытия,ДанныеИзHTML);

Вот где и понадобился нам ключ, который мы задавали при записи в HTML, к примеру, я передал ключ «СоздатьДокументПоступлениеТоваров«, а значит в самой процедуре мы видим:

Здесь в параметре КлючСобытия нам и прилетает тот самый ключ, а в параметре ДанныеИзHTML хранится адрес на наши любые переданные параметры, которые мы легко можем получить таким образом:

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

Ещё довольно интересный момент, по поводу вывода картинок (в следующем примере написана функция только под «БиблиотекаКартинок», т.е для всех картинок, которые добавлены в конфигурацию, но по данному примеру я думаю не составит труда добавить функции с картинками по ссылке, либо указав путь на диске)

Посмотрим что у неё внутри:

Спасибо что дочитали до конца 🙂 Значит мой труд уже не был напрасен, плюсик вам в карму.

Источник

1С 8.x : Формирование HTML-документа, содержащего ссылки на объекты базы данных

В данной статье рассматривается способ программного формирования HTML документа, содержащего ссылки на объекты базы данных 1С, такие как справочники, документы и т.д. Показан пример построения обработчика события OnClick ПоляHTMLДокумента, для обработки клика на html-ссылке.

Предисловие
Однажды, дописывая обработку, создающую и модифицирующую, не суть важно какие документы, я подумал, что неплохо было бы вывести для пользователя некое резюме:
“Создан документ такой-то”
“Изменен документ такой-то” и т.д.
От обычного, в таких случаях, вывода информации в окно сообщений я сразу отказался, так как не удобно это, сначала читать в окне сообщений “Создан документ … ” а потом запоминать его номер, открывать соответствующий журнал (или форму списка) и искать там этот документ. А если документов много и пользователь хочет посмотреть все документы?(или выборочно) Насколько это неудобно я убедился при отладке обработки …
То, что в форме есть элемент управления именуемый ПолеHTMLДокумента я конечно знал, но вот представилась возможность познакомиться с ним поближе. Было решено реестр обработанных документов выводить в виде html документа содержащего ссылки на эти самые документы, а по клику на ссылке открывать форму соответствующего документа. Здесь мне многие могут возразить: “А почему бы для этих целей не использовать обычный макет, выводимый в табличный документ, а для открытия документов использовать расшифровку? И чем Ваш способ лучше?” Отвечаю: Конечно можно использовать, и мой способ ничем не лучше. Он просто другой. Ведь у хорошего программиста для решения одной задачи должно быть в арсенале несколько инструментов.
Итак, перейдем от слов к делу, в рамках данной статьи рассмотрим следующую задачу: Сформировать html-документ, содержащий ссылки на элементы справочника номенклатура, по клику требуется открывать форму соответствующего элемента. Создаем новый отчет, его форму, на форме размещаем элемент управления ПолеHTMLДокумента.

Текст модуля формы:
Код 1C v 8.х
Ну вот html мы сформировали, теперь чтобы ссылки “ожили” надо написать обработчик события OnClick элемента управления ПолеHTMLДокумента.
Код 1C v 8.х
Всё можно пробовать!

Источник

РеКС — друг в мире компьютеров

Интерактивное отображение произвольной 2D графики в форме приложения 1С:Предприятие можно реализовать в стандартном поле управляемой формы с установленным видом Поле HTML документа, которое предназначено для отображения изображений описанных языками HTML, XML и их расширениями SVG или VML. Формирование изображения в релизах до релиза 8.3.14 выполняется встроенным в платформу 1С браузером MS Internet Explorer, чьи версия, функциональность и опции отличаются от IE установленного в системе.

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1сМасштабируемая векторная SVG иллюстрация (размер: 4.6KB несжатый)

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

Поле HTML документа

Управляемая форма может содержать элемент вида Поле HTML документа, использующего в качестве источника данных реквизит типа Строка, в котором может находиться произвольный гипертекст удовлетворяющий требованиям HTML5. Элемент Поле HTML документа создает НаКлиенте веб-браузер Webkit, в котором создает документ соответствующий гипертексту из реквизита источника данных. Элемент обеспечивает НаКлиенте полный динамический доступ к веб-документу, каскаду его элементов и свойств и скриптам.

HTML данные

Строковый реквизит данных допускает массу альтернативных реализаций, типовая структура предполагает:

Источник

Поле html документа в управляемых формах 1с. Управляемые формы: Поле HTML Документа и веб-клиент

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

Этот объект называется в 1С полеHTMLдокумента.

Элемент управления ПолеHTMLДокумента имеет одно существенное ограничение в использовании – его нельзя использовать для расположенных в таблице полей.

Создание собственного браузера в 1С

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

Проверим, как это работает.. Получим картинку (Рис.4)
поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1сРис.4.

Проанализируем, что мы видим:

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

Для удобства пользователя можно на форме создать навигационные команды «Вперед» и «Назад», которые будут описывать соответствующие перемещения.

Создание ссылки на объект базы данных

Задача состоит в следующем:

Создадим нашу обработку и форму на ней.

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1с

Подробнее рассмотрим, что мы сделали:

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

Продолжим описывать обработчик.

Создадим процедуру, которая обрабатывает клик мышки по гиперссылке на элемент справочника (Рис.9).

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1сРис.9

Рассмотрим её подробнее:

Протестируем выполнение созданного кода.

Так как в настройках нашей программы запрещено использование модальных окон, выполнение выше приведенного кода завершилось ошибкой (Рис.10). В противном случае все бы отработало нормально.

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1сРис.10

Зайдем в конфигураторе в меню Текст->Рефакторинг->Нерекомендуемые синхронные вызовы->Преобразовать вызовы модуля. По прошествии некоторого времени текст нашего модуля будет выглядеть как на Рис.11

поле хтмл документа 1с. Смотреть фото поле хтмл документа 1с. Смотреть картинку поле хтмл документа 1с. Картинка про поле хтмл документа 1с. Фото поле хтмл документа 1сРис.11

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

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

Пара слов о Javascript

Вызовы функций JS в ранних версиях программы осуществлялись через параметр поля document.parentWindow.MyFunk(), однако в современных браузерах эта возможность была утрачена. Не срабатывают так же вызовы через eval().

Выход состоит в использовании специальной функции fireEvent, которая является универсальным механизмом обмена данными между 1С и Javascript.

Во время реализации одного проекта, возникла необходимость выполнять javascript(далее JS) код под управление объекта ПолеHTMLДокумента, с получением результат в 1С. Приведённые примеры, в найденных статьях, показались не очень удобными в использовании (сугубо личное мнение). Было принято решение попробовать найти другое, более простое, решение, на поиски отводилось не более 1 дня.

Процедура ВыполнитьСкрипт(ТекстСкрипт) ДИВ = Элементы.док.Документ.getElementById(«TEST»); ДИВ.setAttribute(«onclick», ТекстСкрипт); ДИВ.click(); КонецПроцедуры

Дополнение от 02.08.2016

В комметариях был предложен еще один способ вызова JS (спасибо ), если у вас есть возможность менять код HTML документа, то можно прописать функцию в нем и затем ее вызывать. передавая в нее код на JS.

Возврат результата JS в 1С

Для передачи результата скрипта в 1С из объекта ПолеHTMLДокумента будем использовать событие. Привяжем к ПолеHTMLДокумента событие ПриНажатии которое получает на вход 3 параметра:

Чтобы вызвать событие при нажатии понадобиться выполнить следующий js код

Var evt = document.createEventObject(); // создадим пустой объект событие evt.propertyName = «функц1»; // в реквизит propertyName предлагаю помещать название результата (что-то вроде типа, или название функции от которой получили данные) evt.data = «156»; //в реквизит data будем передавать данные результата document.body.fireEvent(«onclick», evt); // выполним событие при нажатии ПолеHTMLДокумента

Выполнив данный js код в процедуру при нажатии вторым параметром придет созданный нами объект событие. Который довольно удобно обрабатывать.

Пример разбора ответа.

&НаКлиенте // получаем имя и результат события Процедура ДокПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка) ИмяОперации = ДанныеСобытия.Event.propertyName; ДанныеОперации = ДанныеСобытия.Event.data; Если ИмяОперации = «» Тогда //не наше событие Возврат; КонецЕсли; Если ИмяОперации = «Функц1» Тогда // обработка результат ИначеЕсли ИмяОперации = «функц2» Тогда // обработка результат //. КонецЕсли; КонецПроцедуры

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

Дополнения от 26.03.2016

// отключим всплывание события

// отключим стандартное поведение

В результате для передачи данных в 1с из JS мы получим функцию.

Вывод.

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

Пример реализации в

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

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *