новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Работа с веб-страницами средствами 1С

  • Добавить свою публикацию
  • для этого требуется регистрация

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

Т.е. вот этой страницы:

Изображение

Рисунок 1

 

Для начала создадим внешнюю обработку, добавим реквизит «Адрес « с типом «Строка», неограниченной длины.

 

Изображение

Рисунок 2

 

Создадим форму обработки. Реквизит «Адрес» перенесем на форму дважды. Один из элементов формы реквизита переименуем в «Страница», изменим Вид элемента на «Поле HTML документа».

 

Форма примет вид:

Изображение

Рисунок 3

 

Запустим обработку в режиме «Предприятие» и введем адрес произвольного интернет ресурса. И получим результат:

 

Изображение

Рисунок 4

 

Как же сделать так, чтобы в поле «Страница» выводилась страница Яндекса, но уже с результатами поиска по какому-нибудь слову?

Добавим реквизит формы: «КлючевоеСлово», перенесем на форму.

 

Если приглядеться к адресу, который появляется в адресной строке Яндекса после осуществления поиска по ключевому слову «1С» (а будет он таким: «http://yandex.ru/yandsearch?text=1%D1%81»), то можно увидеть, что введенное слово шифруется и передается в post-переменной text. Отсюда делаем вывод, что осталось лишь разобраться в том, как получить шифрованное значение запроса.

Если немного покопаться, то можно узнать, что для кодирования переменных в URL’ах можно использовать java-script функцию «encodeURIComponent». Можно, конечно, перебором подобрать код для каждого символа алфавита и самому написать кодировщик, а можно использовать возможности компоненты wscript, которую можно подключить из 1С.

 

Итак, что нам нужно:

 

А) Подключить wscript

Б) На основании ключевого слова собрать скрипт, который будет получать значение, возвращенное функцией «encodeURIComponent» при передаче в неё в качестве параметра нашего слова, а затем полученный результат будет записывать в текстовый файл с определенным заранее каталогом

В) Из 1С получать текстовый файл, созданный при помощи wscript и читать его.

 

Если говорить на встроенном языке, то звучит это так:

 

 
&НаКлиенте
Процедура КлючевоеСловоПриИзменении(Элемент)
    
    Объект.Адрес = "http://yandex.ru/yandsearch?text=" + КонвертироватьКлючевоеСлово();

КонецПроцедуры

&НаКлиенте
Функция КонвертироватьКлючевоеСлово() 

 ИмяФайлаВрем = ПолучитьИмяВременногоФайла("js");
 КаталогСохранения = СтрЗаменить(КаталогВременныхФайлов(), "\", "/");
 КаталогСохранения = СтрЗаменить(КаталогСохранения, "C:/", "C://");
    
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ТекстовыйДокумент.УстановитьТекст
    ("value = encodeURIComponent(""" + КлючевоеСлово + """);
 |FSO = WScript.CreateObject(""Scripting.FileSystemObject"");
 |f = FSO.CreateTextFile(""" + КаталогСохранения + "test.txt" + """, true);
 |f.WriteLine(value);
 |f.Close();");
    
    ТекстовыйДокумент.Записать(ИмяФайлаВрем,КодировкаТекста.ANSI);
    WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.Run("wscript.exe """+ИмяФайлаВрем+"""",0,-1); 
    УдалитьФайлы(ИмяФайлаВрем);
    
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ТекстовыйДокумент.Прочитать(КаталогВременныхФайлов() + "test.txt");
    
    Строка = ТекстовыйДокумент.ПолучитьТекст();
    
    Возврат СокрЛП(Строка);
            
КонецФункции

 

В итоге получим:

Изображение

Рисунок 5

 
0
Читайте также
Чтение XML файла
Первый шаг - чтение xml-файла и формирование объекта
Разработки
Программа для фрилансеров
В программе много отчетов, которые позволяют отслеживать состояние текущих дел
Сжимаем файл MS EXCEL
Обработка показывает, как программно сжать файл EXCEL с картинками
Выгрузка данных из УТ 10.3.16.1 в Бухгалтерию 2.0
Обработка для выгрузки данных из УТ 10.3 в БП 2.0
Еще от автора
≡ к списку статей