Sdscompany.ru

Компьютерный журнал
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Internetexplorer application 1с

Заметки из Зазеркалья

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

Реализовано в версии 8.3.14.1565.

В клиентских приложениях для операционной системы Windows вместо Internet Explorer мы задействовали библиотеку WebKit. Это позволяет унифицировать работу элементов управления, использующих браузер, а также избавиться от проблем, связанных с ошибками Internet Explorer.

Элементы управления, использующие браузер

В платформе 1С:Предприятия существует несколько прикладных и системных элементов, работа которых в операционной системе Windows основывается на COM-объекте движка Internet Explorer. Это такие элементы как:

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

Клиентские приложения, работающие под управлением операционных систем Linux и macOS, вместо COM-объекта Internet Explorer используют библиотеку WebKit. Это свободная кроссплатформенная библиотека с открытым исходным кодом. В результате DOM-модель HTML документа, полученная через свойство поля Документ (ПолеФормы.Документ), в этих клиентских приложениях может отличаться от аналогичной DOM-модели в клиентском приложении в операционной системе Windows. Это также усложняет разработку прикладной функциональности, работающей одинаково на разных операционных системах.

Преимущества перехода на WebKit

Перевод всех клиентских приложений на использование WebKit даёт следующие преимущества:

  • Одинаковое поведение в различных версиях Windows;
  • Максимально схожее поведение при работе в операционных системах, поддерживаемых 1С:Предприятием, так как используется одна и та же библиотека, хоть и разных версий;
  • Лучшая производительность в ряде сценариев работы;
  • Более стабильная и более быстрая работа форматированного документа;
  • Лучшая поддержка веб-стандартов;
  • При переходе на WebKit мы исправили большое количество ошибок, которые невозможно было исправить при использовании Internet Explorer.

Реализация

Последний пункт предыдущего списка нужно пояснить подробнее. В отличие от Internet Explorer библиотека WebKit содержит открытый исходный код, поэтому мы можем самостоятельно исправлять какие-то её проблемы, если они возникают.

Мы используем доработанную библиотеку WebKit, и поставляем её вместе с дистрибутивом платформы.

В первую очередь доработка потребовалась потому, что прикладные решения 1С:Предприятия могут работать под управлением операционной системы Windows XP, а стандартный WebKit её уже не поддерживает. Мы реализовали такую поддержку в нашей библиотеке WebKit.

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

Влияние на существующую функциональность

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

Если при разработке функциональности вы учитывали рекомендации для операционных систем Linux и macOS, то никаких проблем возникнуть не должно.

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

Обучение программированию на 1С

Проверка e-mail адресов через Internet Explorer с помощью COM-объекта

Данная обработка 1С «Проверка mail.ru», которую можно скачать ниже, предназначена для верификации e-mail адресов для домена mail.ru. Такой функционал может пригодиться для актуализации контактов пользователей, либо для групповой рассылки на существующие адреса электронной почты коммерческих предложений. Но в первую очередь эта обработка 1С была создана для демонстрации функционирования COM-объекта на базе Internet Explorer.

В этой статье разберём следующие вопросы:

  • Как получить текст HTML-страницы?
  • Как отправить POST-запрос?
  • Как обратиться к элементу формы и установить в нём значение?
  • Как осуществить навигацию на конкретный URL адрес и дождаться загрузки страницы?
Читать еще:  Мозилла экспорт закладок

Алгоритм

Обработка имеет следующий алгоритм верификации электронных адресов:

1. Создаём COM-объект InternetExplorer.Application

2. Парсим e-mail адрес на составляющие его логин и домен

3. Осуществляем навигацию на страницу восстановления пароля: https://e.mail.ru/cgi-bin/passremind

4. Заполняем значения элементов нужной нам HTML-формы

5. На странице в браузере осуществляем нажатие на кнопку «Восстановить»

6. Возвращаем текст полученной в результате перехода HTML-страницы

7. Ищем в тексте признак существования или отсутствия электронного ящика (выполняем валидацию).

Функции и процедуры

Разберём используемые в обработке 1С функции подробнее:

1. ВыполнитьВалидацию(ТабMail) — Основная процедура для валидации, которая перебирает адреса табличной части.

2. ВыполнитьIEЗапрос(СтруктураОбъектов, СтруктураMail) – Функция получает текст итоговой HTML-страницы.

3. ВернутьСтатусВалидации(СтруктураMail, ТекстСтраницы) – На основании полученного текста страницы верифицируем e-mail адрес.

4. ВыполнитьПерезагрузку(СтруктураОбъектов, Старт = Неопределено) – Процедура закрывает или создаёт нужные COM-объекты.

5. ПолучитьAppIE() – Функция создаёт новый COM-объект InternetExplorer.Application.

6. ЗакрытьAppIE(appIE) – Процедура закрывает COM-объект InternetExplorer.Application.

7. ОжиданиеЗагрузки(СтруктураОбъектов) – Процедура ожидает загрузку страницы в браузере.

8. ПолучитьФормуHTML(objDoc, ИндексФормы) – Получает форму HTML-документа по её индексу.

9. ЗаполнитьПараметрыPOST(objForm, ПараметрыПОСТ) –Процедура заполняет значения элементов HTML-формы.

10. ВернутьТекстHTMLДокумента(htmlDoc) – Функция возвращает текст HTML-документа.

11. НайтиСтр(Стр, ПодстрокаПоиска, ИндексСимвола = 1, Ограничитель = «») – Функция поиска текста выделяет подстроку символов, начиная с заданного символа, по подстроке поиска.

12. ПарситьEMail(Стр) – Функция возвращает структуру e-mail адреса.

13. СобратьEMail(СтруктураMail) – Собирает e-mail адрес из составляющих его частей.

14. Спать(Время, IDПроцесса = Неопределено) – Процедура создания скрипта для обеспечения задержки в миллисекундах.

Тестирование

Проведём тестирование данной обработки 1С. Для этого загрузим тестовые данные из файла «Адреса» (см. архив с обработкой).

Затем просто нажимаем на кнопку «Выполнить».

Запускается приложение Internet Explorer и визуально осуществляется процесс валидации.

В итоге получаем следующий результат (следующие статусы валидации).

Kazun

Заметки о PowerShell.

Опубликовано в InternetExplorer

Авторизация на форуме на примере forum.oszone.net используя PowerShell?

Рассмотрим 2 метода:

Учетом успешного выполнения скрипта, будет вывод сообщения – “Ваш последний визит был: время”

Определим, какие поля нам требуется заполнить, достаточно просто.

В поля “Имя Пользователя” и “Пароль” подставим значения ,и посмотрим, какие поля требуют заполнения.

Как видно выше для заполнения нужны поля vb_login_username и vb_login_password.

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

Требуется нам заполнить все поля или достаточно определенных. В этом нам поможет Fiddler .

  • Запускаем Fiddler
  • Запускаем любой браузер ( логирование командлета Invoke-WebRequest тоже поддерживается)
  • Переходим на сайт
  • Заполняем поля , нажимаем “Войти”
  • Смотрим Post запрос

Поле vb_login_password – пустое, но вычисляется md5 hash пароля.

Для ASCII символов, если пароль в Unicode, данный метод не подойдет. Какой алгоритм преобразования

Вычислим поле vb_login_md5password для Unicode , на примере – Привет:

Вычислим поле vb_login_md5password_utf для Unicode , на примере – Привет:

При использовании полей vb_login_md5password и vb_login_md5password_utf, поле vb_login_password – не заполняем.

Но можно не утруждать себя данными алгоритмами, а просто заполнить поля vb_login_username и vb_login_password.

В конечном итоге получим вывод:

Как заполнить frame форму и нажать на ней отправить программно?

Powershell должен быть запущен с параметром -STA.

Для примера воспользуемся сайтом — Enter.UniCredit.В исходном коде мы видим набор frames.

Фреймы в HTML позволяют авторам представлять документы в нескольких разделах, которые могут быть независимыми или вложенными окнами. Это обеспечивает дизайнерам способ оставлять некоторую информацию видимой, в то время как другая информация прокручивается или заменяется. Например, в одном окне в одном фрейме может отображаться статический баннер, во втором навигационное меню, а в третьем — сам документ, который можно прокручивать или переходить к другому с помощью навигации во втором фрейме.
Ни у одного frame,нет каких-либо полей для заполнения.Основное меню реализовано,с помощью frame — F_HLP.Который и скрывает форму(MForm) для заполнения.

Читать еще:  Как зайти в аутлук через браузер

Основная проблема, как добраться до этой формы.Для этого мы подменяем параметр src. Здесь мы и видим, куда перенаправляется frame.

После этого нам будет доступна MForm и уже не составляет труда пройти авторизацию.

Выполняем скрипт и получаем ответ Success или Fail.

Авторизация на форуме с помощью PowerShell, на примере http://www.guitarplayer.ru.

Для авторизации на форуме воспользуемся COM объектом InternetExplorer.Application.Для навигации используем метод Navigate.Для получения всех форм на странице,воспользуемся свойством Forms.

Как видим у нас две формы,форму frmLogin мы и будем заполнять.После заполнения полей и нажатия кнопки «Войти» ,мы переходим в заданную тему и создаем сообщение.

Настройка и использование веб-браузера Microsoft Internet Explorer

Особенности использования

Если на вашем компьютере установлена операционная система Windo.ws XP SP 2, необходима библиотека jscript.dll версии 5.6.0.8834 и выше. Библиотеку можно найти в папке system32 операционной системы. Более ранние версии библиотеки будут значительно замедлять работу веб-клиента. Для ранних версий jscript.dll мы рекомендуем скачать пакет обновлений на сайте Microsoft.

Настройки использования веб-браузера

Перед первым сеансом работы в веб-браузере необходимо настроить свойства обозревателя. Для этого нужно предпринять следующие шаги:

1. В левом верхнем углу браузера кликните на иконку «Настройки», выберите пункт Свойства обозревателя (Internet Options) и настройте следующие параметры:

2. Разрешить выполнение JavaScript скриптов:

  • Вкладка Безопасность (Security) для зоны Internet кликните Другой (Custom level);
  • Раздел Сценарии (Scripting) для параметра Активные сценарии (Active scripting) выберите опцию Разрешить (Enable) и нажмите кнопку «OK».

3. Разрешите всплывающие окна:

  • Вкладка Конфиденциальность (Privacy);
  • Раздел Блокирование всплывающих окон (Pop-up Blocker) снимите отметку с опции Блокировать всплывающие окна (Block Pop-ups).

4. Разрешите использование cookies:

  • Вкладка Конфиденциальность (Privacy) — выберите удобный вам уровень использования cookies, но не выше Умеренно высокий (Medium High).

Если вы планируете работать с внешним оборудованием (сканеры штрих-кодов, электронные весы и т.п) необходимо произвести дополнительную настройку веб-браузера:

1. Вкладка Безопасность (Security) — нажмите кнопку Другой (Custom level);

2. В открывшемся окне проставьте Разрешить (Enable) для следующих параметров:

  • Запрос разрешения для ActiveX объектов (Automatic promting for ActiveX controls)
  • Загрузка подписанных ActiveX объектов с разрешения пользователя (Download signed ActiveX controls)
  • Работа с ActiveX объектам и плагинами (Run ActiveX controls and plug-ins);
  • Работа с объектами, помеченными как безопастные (Script ActiveX controls marked safe for scripting).

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

1. Открыть настройки ОС «Язык и региональные стандарты» («Regional and Languages Options»)

2. Вкладка «Языки» («Languages»), раздел «Языки и службы текстового ввода» («Text services and input languages») – нажать кнопку «Подробнее. » («Details. «)

3. В появившемся окне кликнуть вкладку «Параметры» («Settings») в разделе «Язык ввода по умолчанию» («Default input language») и выбрать нужный язык

4. нажать кнопку «OK»

Особенности использования расширенных средств работы с файлами

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

Для использования расширенных средств работы с файлами в Internet Explorer нужно установить специальный ActiveX компонент «1С:Предприятие 8.2. Расширение работы с файлами для Internet Explorer (x86)» (32- или 64-разрядный вариант). Этот компонент уже включен в платформу 1С: Предприятие 8.2, но его установка требует реализации вызова метода УстановитьРасширениеРаботыСФайлами в конфигурации.

Читать еще:  Как почистить кэш фаерфокс

Чтобы компонент корректно работал, в браузере необходимо предоставить права на установку и использование подписанных ActiveX компонентов для зоны, в которой находится веб-сайт.

При работе с файлами мы рекомендуем использовать библиотеку Microsoft Core XML Services (MSXML) версии 6.0 или 4.0. При использовании более ранних версий могут возникнуть проблемы с передачей файлов большого размера.

С рекомендациями по установке модулей MSXML можно ознакомиться на сайте Microsoft.

HTA VBScript-IE CreateObject(InternetExplorer.Application) IE.Document.form1 не поддерживает свойство или метод

Я делал это несколько раз, однако я не уверен, почему на этот раз мой HTA vbscript кричит на меня о том, что объект не поддерживает это свойство или метод IE.Document.form1?

Игнорируйте ожидание IE.2000 подводных лодок.

У меня есть эта функция и в моем HTA vbscript, и она отлично работает.

Обнаружил, что form1 находится в iframe, возможно, поэтому я не могу ссылаться на него. Есть какие-нибудь идеи?

2 Ответа

Ладно, значит, я все понял. iframe-й был причиной всех неприятностей. Для тех, у кого есть такое же сообщение об ошибке, попробуйте проверить, что форма и элементы не являются частью iframe в пределах сайта, который вы пытаетесь очистить. Работа с backwords на сайте возьмите источник iframe и поместите его в свой vbscript, а не тот, который у вас есть.

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

кроме того, в случае возникновения проблем, лучше отделить ваши уровни объекта по одному на строку, проще отлаживать

и комментируйте до тех пор, пока это не сработает

Эти общие рекомендации oare, если вы опубликуете real URL и ваш wait sub, мы могли бы дать более простой совет.

Похожие вопросы:

При использовании HTA userform для VBscript я обнаружил, что HTA не поддерживает WScript и его objects/methods. Существует ли какой-либо альтернативный способ создания формы пользователя или есть.

Я получаю объект не поддерживает свойство или метод ‘closest’ ошибка в IE. Я использую MooTools. Кто-нибудь может мне помочь.. var li = $$(‘.list’)[0].clone(true, true); var NewContainer =.

я создаю приложение, которое открывает веб-браузер (кроме IE ) и переходит к определенному URL с помощью VBScript, а также определяет экземпляр браузера, если он уже открыт. Браузер может быть.

Я получаю ошибку автоматизации при вызове следующего объекта Set IE = CreateObject(InternetExplorer.Application) Ошибка показывает Ошибка времени выполнения ‘-2147467259 (80004005)’ Ошибка.

Мне было интересно, как вызвать диалоговое окно поиска из открытого окна HTA с помощью кнопки отправки? Если я вручную ввожу Ctrl F, это запускает окно, поэтому я надеюсь, что это достижимо с.

У меня есть сценарий VBS в HTA, который должен проверять учетные данные для входа из формы входа HTA, пытаясь войти на внешнюю веб-страницу с теми же учетными данными. getElementsByClassName.

Я пытаюсь использовать это свойство в VBScript: DateCreated, как описано здесь: http://msdn.microsoft.com/en-us/library/ke6a7czx%28в=vs.84%29.aspx Но я получаю следующую ошибку: Ошибка среды.

У меня возникла проблема с разрешением объекта oList с моим CreateObject(System.Collections.ArrayList) Ошибка, которую я получаю в vbscript Ошибка выполнения Microsoft VBScript: объект не.

У меня есть vbscript, используя объект InternetExplorer для перехода на несколько страниц и передачи данных на эти страницы. Недавно после исправления IE8 я заметил, что что-то вызывает создание.

Я сталкиваюсь с одной проблемой. Объект не поддерживает это свойство или метод Ошибка времени выполнения в excel vba. Примечание : код прекрасно работает в моем ноутбуке. Эта ошибка произошла, когда.

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector