1с поле html документа пример

Профессия — 1С

рубрики: Работа с формами | Дата: 10 августа, 2018
Скачать обработку с примерами из статьи: professia1c_html_document.epf
Платформа: 8.3; Тип формы: управляемая.

Сегодня рассмотрим такой элемент форм как Поле HTML документа.

Название его говорит само за себя и предназначено это поле для отображения кода в формате html. Первое, что приходит на ум это конечно же организовать просмотр сайтов. И такая возможность действительно есть. И второе — для тех кто немного знаком с html и css есть возможность самим написать код для отображения в html поле. Учитывая, что у css3 достаточно широкие возможности стилизации, и в том числе присутствует возможность анимации, может получится достаточно живая и красочная картинка. Плюс, как известно, в html можно включать и код на языке java script. И тут уже возможности ограничиваются только вашей фантазией. Рассмотрим на примере оба вышеперечисленных варианта. Для демонстрации создадим внешнюю обработку на управляемых формах.

Просмотр веб страницы через поле HTML документа

Эта возможность реализуется очень просто. В реквизиты формы добавим реквизит Сайт с типом «Строка»:
1с поле html документа пример. PoleNTML Rekvizit. 1с поле html документа пример фото. 1с поле html документа пример-PoleNTML Rekvizit. картинка 1с поле html документа пример. картинка PoleNTML Rekvizit. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.
Разместим этот реквизит на форме и в свойствах выберем вид — «Поле HTML документа»:
1с поле html документа пример. PoleNTML RekvizitDialoga. 1с поле html документа пример фото. 1с поле html документа пример-PoleNTML RekvizitDialoga. картинка 1с поле html документа пример. картинка PoleNTML RekvizitDialoga. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.
И конечно же добавим строку для ввода адреса сайта.

Остальное делается практически одной строчкой кода, которую мы вставим в обработчик события ПриИзменении адресной строки сайта:

Теперь опробуем обработку в режиме 1С:Предприятия. Ввожу адрес своего сайта www.professia1c.ru и получаю вот такое сообщение об ошибке:
1с поле html документа пример. PoleNTML Oshibka. 1с поле html документа пример фото. 1с поле html документа пример-PoleNTML Oshibka. картинка 1с поле html документа пример. картинка PoleNTML Oshibka. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.
Это связано с тем, что по умолчанию поле HTML документа работает в режиме совместимости с древней версией браузера Internet Explolrer. И естественно, что очень многие владельцы сайтов уже не заморачиваются с поддержкой старых версий. Хотя если ввести адрес сайта самой 1С — www.1c.ru, мы увидим, что он успешно отобразится в нашем поле. В сети предлагается несколько разных способов как победить эту ошибку. От редактирования настроек браузера IE, до редактирования реестра. Мне на моей домашней 32-разрядной версии Windows 10 помогло редактирование реестра. Для этого необходимо найти ветку «HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION» и добавить в нее параметр 1Cv8c.exe со значением 11000 в десятичной системе исчисления.
1с поле html документа пример. PoleNTML Reestr. 1с поле html документа пример фото. 1с поле html документа пример-PoleNTML Reestr. картинка 1с поле html документа пример. картинка PoleNTML Reestr. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.
После этого все встает на свои места и сайт отображается корректно. Понятно, что когда речь идет о крупном предприятии, то отредактировать реестр на десятках и сотнях машин может быть проблематично. Но в каких-то отдельных случаях может выручить.

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

Метатег X-UA-Compatible

Когда речь не идет о просмотре сайтов и мы пишем полностью свой код для поля html документа, то нам нет необходимости редактировать реестр для того чтобы воспользоваться всеми прелестями CSS3 и HTML5. Для этого воспользуемся метатегом X-UA-Compatible. Это специфический метатег предназначенный для браузера Internet Explorer. Он позволяет устанавливать режим совместимости для IE. Если быть точным, то X-UA-Compatible — это значение аттрибута http-equiv, который в свою очередь используется вместе с аттрибутом content. Короче говоря нам необходимо в разделе head нашего html документа прописать вот такую строчку:

которая говорит браузеру Internet Explorer, что он должен работать в режиме совместимости с самой последней его версией. В которой нам конечно же доступны CSS3 и HTML5.

Пишем свой код для поля HTML документа

А теперь создадим свою мини веб страничку и отобразим ее в другом поле HTML документа. По аналогии с предыдущим примером создадим реквизит СтилиCSS и разместим его в отдельной закладке на форме.
1с поле html документа пример. PoleNTML RekvizitStiliCSS. 1с поле html документа пример фото. 1с поле html документа пример-PoleNTML RekvizitStiliCSS. картинка 1с поле html документа пример. картинка PoleNTML RekvizitStiliCSS. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.
Далее перейдем к написанию кода html. Минимально необходимый код, так сказать заготовка нашей странички выглядит следующим образом:

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

Источник

1С html. Cоздание поля html документа

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

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

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

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

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

1с поле html документа пример. %D0%A4%D0%BE%D1%80%D0%BC%D0%B0 %D0%B4%D0%BB%D1%8F %D0%BF%D0%BE%D0%BB%D1%8F html %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0 1%D1%81 8. 1с поле html документа пример фото. 1с поле html документа пример-%D0%A4%D0%BE%D1%80%D0%BC%D0%B0 %D0%B4%D0%BB%D1%8F %D0%BF%D0%BE%D0%BB%D1%8F html %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0 1%D1%81 8. картинка 1с поле html документа пример. картинка %D0%A4%D0%BE%D1%80%D0%BC%D0%B0 %D0%B4%D0%BB%D1%8F %D0%BF%D0%BE%D0%BB%D1%8F html %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0 1%D1%81 8. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.

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

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

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

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

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

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

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

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

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

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

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

Для того чтобы отделить изображение от следующей информации, используем тег

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1с поле html документа пример. Html %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82 %D1%81%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9 %D0%B2 1%D1%81. 1с поле html документа пример фото. 1с поле html документа пример-Html %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82 %D1%81%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9 %D0%B2 1%D1%81. картинка 1с поле html документа пример. картинка Html %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82 %D1%81%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9 %D0%B2 1%D1%81. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.

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

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

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

Скачать обработку формирования html поля можно здесь: СозданиеHTMLПоля

Источник

Поле HTML документа в управляемом и обычном приложении в 1С 8.3, 8.2

Поле HTML документа – этот элемент позволяет выводить на форму HTML страницы, полученные по URL адресу.

ПолеHTMLДокумента в обычном приложении

Для примера, во внешней обработке, создаём реквизит формы – ПолеHTMLДокумента1. Для перехода на страницу в интернете, воспользуемся методом “Перейти”.

1с поле html документа пример. %D0%9F%D0%BE%D0%BB%D0%B5 HTML %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0 %D0%BE%D0%B1%D1%8B%D1%87%D0%BD%D0%BE%D0%B5 %D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5. 1с поле html документа пример фото. 1с поле html документа пример-%D0%9F%D0%BE%D0%BB%D0%B5 HTML %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0 %D0%BE%D0%B1%D1%8B%D1%87%D0%BD%D0%BE%D0%B5 %D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5. картинка 1с поле html документа пример. картинка %D0%9F%D0%BE%D0%BB%D0%B5 HTML %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0 %D0%BE%D0%B1%D1%8B%D1%87%D0%BD%D0%BE%D0%B5 %D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.

ПолеHTMLДокумента в управляемом приложении

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

1с поле html документа пример. %D0%9F%D0%BE%D0%BB%D0%B5 HTML %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0 %D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC%D0%BE%D0%B5 %D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5. 1с поле html документа пример фото. 1с поле html документа пример-%D0%9F%D0%BE%D0%BB%D0%B5 HTML %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0 %D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC%D0%BE%D0%B5 %D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5. картинка 1с поле html документа пример. картинка %D0%9F%D0%BE%D0%BB%D0%B5 HTML %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0 %D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC%D0%BE%D0%B5 %D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.

В управляемом приложении метод “Перейти” недоступен.

По этой причине, для перехода на страницу, URL-адрес установим не полю формы, а реквизиту формы.

Веб браузер в 1С

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

1с поле html документа пример. %D0%92%D0%B5%D0%B1 %D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80 %D0%B2 1%D1%81. 1с поле html документа пример фото. 1с поле html документа пример-%D0%92%D0%B5%D0%B1 %D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80 %D0%B2 1%D1%81. картинка 1с поле html документа пример. картинка %D0%92%D0%B5%D0%B1 %D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80 %D0%B2 1%D1%81. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.

Весь прикол в том, что Поле HTML документа – это всеми любимый Internet Explorer, только в режиме совместимости с IE7. Поэтому, в некоторых случаях, вас будет ждать такое уведомление)))

1с поле html документа пример. %D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0 %D0%B2 %D0%B2%D0%B5%D0%B1 %D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B5. 1с поле html документа пример фото. 1с поле html документа пример-%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0 %D0%B2 %D0%B2%D0%B5%D0%B1 %D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B5. картинка 1с поле html документа пример. картинка %D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0 %D0%B2 %D0%B2%D0%B5%D0%B1 %D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B5. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.

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

Okolokompa в Яндекс Дзен

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

Источник

Управляемые формы: Поле HTML Документа и веб-клиент

Вступление

Взаимодействие 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)

Для реализации этого варианта необходимо немного исправить HTML макет. А именно:

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

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

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

Источник

html + css + js в поле HTML документа 1С на примере решения задачи ханойских башен

Задача ханойских башен

1с поле html документа пример. 97860f1d5e67232e92a8e5c8313e45d6. 1с поле html документа пример фото. 1с поле html документа пример-97860f1d5e67232e92a8e5c8313e45d6. картинка 1с поле html документа пример. картинка 97860f1d5e67232e92a8e5c8313e45d6. рубрики: Работа с формами | Дата: 10 августа, 2018 Скачать обработку с примерами из статьи: professia1c_html_document.epfПлатформа: 8.3; Тип формы: управляемая.

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

Существует несколько подходов к решению. В данной публикации приведено решение с использованием рекурсивного метода.

Суть метода. Пусть есть 3 стержня (Стержень1, Стержень2, Стержень3). Переложим n-1 дисков с Стержень1 на Стержень3. Затем перенесём оставшийся (самый большой) диск с Стержень1 на Стержень2. Наконец, снова, переложим n-1 дисков с Стержень3 на Стержень2 (поверх того, самого большого диска). Таким образом, задача по переносу n дисков с Стержень1 на Стержень2 решена, а её код на 1С будет иметь вид:

Реализация

Для начала «нарисуем» внешний вид ханойских башен используя HTML и CSS, и создадим метод который будет передвигать указанный диск на заданный стержень:

Далее сгенерируем получившийся код в форме 1С, используя Поле HTML Документа.

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

В нашем случае HTML форма будет генерироваться при открытии формы:

В секции описана функция MoveDisk(disk, st), которая принимает значение параметров из 1с, и двигает диски согласно этим параметрам.

Теперь перепишем процедуру «Переставить», таким образом, чтобы:

Процедура примет вид:

Вызов функции «Переставить» происходит по нажатию на кнопку:

ОбъектWindow является корневым объектом JavaScript. Все объекты JavaScript, а также переменные и функции определяемые пользователем хранятся в объекте window.

В контексте данного объекта и хранится javascript функция MoveDisk(disk, st).

Таким образом, используя связку html css javascript, реализовано решение головоломки в элементе формы 1с Поле HTML Документа.

Источник

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

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