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. Примечание : код прекрасно работает в моем ноутбуке. Эта ошибка произошла, когда.