1с как однозначно достать значение из html
Прошу отнестись с понимаем, раньше писал неплохо, но 3 года вне игры. последнее что видел 8.2.
А в 8.3 я даже полеHTMLдокумента не пойму куда вставить.
Искал по разным форумам, но для 8.3 примеров что-то совсем мало.
В двух словах задача, на HTML странице выкладывают регулярно обновляемые несколько строк текста.
Мне бы их считать и Записать в таблицу значений, я даже считать не могу html.
Вопрос как подключится по вебадресу и считать.
Кладем на страницу "СамСайт" ПолеHTMLДокумента и обзываем его к примеру "Сайт".
Вот как это в 8.3 реализуется?
Ужас, стыдно, но честно не понимаю.
Вот такое написал.
Но в поле Сайт ничего не появляется. Что может быть не так?
7. Проверяем работу нашей обработки. У меня появился сайт связного. А у Вас?
А у меня вот ничего не появляется..
Код теперь вот так вот выглядит. СайтДокументаСформирован() не запускается.
Вот этот синтаксис же не совсем точен? В модуле формы нельзя с таким синтаксисом обратится к "ЭлементыФормы"?
(14) ты реально из Манилы?
в (13) работающий код
Я горе фринлансер, когда-то перешел с 1С на свои проекты по вебмастерингу.
Это нечто. Я первый в жизни себя таким ослом ощущаю.
Сделал все до запятой как в (13).
Обход элементов не начинается.
1С в локале стоит, файловая БД.
Ну что еще может быть не так. Реквизиты те же.
Отладчик выдает вот тут выдает нули
Ассоциированы.
ПриОткрытииии срабатывает по отладчкиу да и остальное тоже.
Все таки, как выглядит оператор перехода на сайт.
я скопировал 13-е дословно.
прошел отладчиком все процедуры.
сайт не открывается обход не начинается.
на обходе сразу уходит в конец цикла, визуально сайта тоже нет.
Ошибок нет, но обхода боди.алл тоже нет, там пусто.
но ошибка не выскакивает.
это вот что отладчик пишет.
(24) у элемента формы "Сайт" в свойствах что написано?
путь к данным?
Вид элемента?
И я извиняюсь, но Вперед() судя по описанию это обход, а где мы перешли на то, что надо обойти?
С
трочка
Сайт = "—-" явно не указала на это.
Реквизит1 Строка неогр длины
Переименовал, ничего не изменилось.
Я правильно понимаю, что Сайт, это реквизит формы, а не самой внешней обработки?
Ты гений. Спасибо.
вообще ничего открыть не могу.
пусто.
чувствую не по зубьям задачка, но надо бы как то сделать.
(40) выше была ссылка.
(39) разработчик утверждал что тут должен быть ХМЛ вообще-то ). он с 8.3.6? Я что такое Json только слышал )
эта страница результат сводного очень объемного парсинга с 10ка сайтов, на которых вживую идет спортивная статистика.
стоит задача собирать эту инфу и потом анализировать.
Так как я когда-то неплохо знал УПП и писал море отчетов, то взялся это делать.
Но много конечно сложностей.
Вечером когда футбола будет больше там будет до 40 50 строк одновременно.
44, да с ним еще хуже, питон знаю только кроме 1С и тоже слабо.
Я брался задачу по формам отчетов делать.
Запись этой инфы в регистры рассматривал как подзадачу не очееь серьезную и н4 слишком объемную.
Ошибся сильно.
В общем сходимся на том, что практичнее 8.3.6 и использовать встроенный механизм работы с Json через Httpсоединение?
(54) А зачем ему отображать JSON?
Но задача растет, так как программист который до этого парсил, родил (на ладно ладно, родила) и ей не до того, то надо теперь запарсить вот это.
У нас там живет DIV
Полагаю, твой div находится в документе, размещенном внутри фрейма, поэтому ты его перебором и не находишь.
Дам денег за голову суслика. От этого зависит остальная часть заказа.
Надо распарсить эту хрень любой ценой.
Я даже не буду описывать что делал последние 13 часов. Наверняка я прошел часть того пути что уже прошли уважаемые пользователи этого ресурса и отписавшиеся тут. Но подвисает весь заказ. Так как то первый источник данных, что вы мне помогли запарсить первым недостаточен, нужен
А. Дублер
Б. По второй ссылке инфы больше.
Распарсить не обязательно средствами 1С, можно чем угодно и писать например в текстовый файл. Ну вы поняли.
Админам. Извините, если предложение мое тут неуместно. Но честно очень надо.
Извлечь Текст Из HTML
При работе c HTML файлами из интернета часто приходится извлекать текст в формте HTML , очищенный от тегов, скриптов и заголовков для сохраненеия при необходимости в переменной типа строка с неограниченной длиной. .
Функцция очищает текст в формате HTML от тегов и возвращает неформатированный текст.
Параметры:
ИсходныйТекстHTML – Строка – текст в формате HTML.
Возвращаемое значение: Строка – текст, очищенный от тегов, скриптов и заголовков.
В теле данной функции есть вызов другой функции РазложитьСтрокуВМассивПодстрок
Функция РазложитьСтрокуВМассивПодстрок разбивает строку на несколько строк по указанному разделителю. Разделитель может иметь любую длину. В случаях, когда разделителем является строка из одного символа, и не используется параметр СокращатьНепечатаемыеСимволы,
рекомендуется использовать функцию платформы СтрРазделить.
Параметры данной функции:
Значение – Строка – текст с разделителями;
Разделитель – Строка – разделитель строк текста, минимум 1 символ;
ПропускатьПустыеСтроки – Булево – признак необходимости включения в результат пустых строк.
Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией:
– для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки включаются в результат;
– если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в случае разделителя-пробела результатом функции будет массив, содержащий одно значение “” (пустая строка), а при других разделителях результатом функции будет пустой массив.
СокращатьНепечатаемыеСимволы – Булево – сокращать непечатаемые символы по краям каждой из найденных подстрок.
Возвращаемое значение:
Массив – массив строк.
Пример:
Работа с веб-страницами средствами 1С
Иногда появляется необходимость отобразить какую-либо веб-страницу прямо на форме. Я рассмотрю эту возможность платформы 1С на примере вывода на форму страницы с поисковой системой yandex, причем с результатами поиска по слову, введённому в поле формы.
Т.е. вот этой страницы:
Для начала создадим внешнюю обработку, добавим реквизит «Адрес « с типом «Строка», неограниченной длины.

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

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

Как же сделать так, чтобы в поле «Страница» выводилась страница Яндекса, но уже с результатами поиска по какому-нибудь слову?
Добавим реквизит формы: «КлючевоеСлово», перенесем на форму.
Если приглядеться к адресу, который появляется в адресной строке Яндекса после осуществления поиска по ключевому слову «1С» (а будет он таким: «http://yandex.ru/yandsearch?text=1%D1%81»), то можно увидеть, что введенное слово шифруется и передается в post-переменной text. Отсюда делаем вывод, что осталось лишь разобраться в том, как получить шифрованное значение запроса.
Если немного покопаться, то можно узнать, что для кодирования переменных в URL’ах можно использовать java-script функцию «encodeURIComponent». Можно, конечно, перебором подобрать код для каждого символа алфавита и самому написать кодировщик, а можно использовать возможности компоненты wscript, которую можно подключить из 1С.
Итак, что нам нужно:
А) Подключить wscript
Б) На основании ключевого слова собрать скрипт, который будет получать значение, возвращенное функцией «encodeURIComponent» при передаче в неё в качестве параметра нашего слова, а затем полученный результат будет записывать в текстовый файл с определенным заранее каталогом
В) Из 1С получать текстовый файл, созданный при помощи wscript и читать его.
1С Поле HTML документа — Обмен
Простой пример обмена текстовой информацией, между платформой 1С и полем HTML документа, будут рассмотрены два варианта отправки и получения данных в поле HTML документа:
- Вставка и получения текста из атрибута HTML тега.
- Вставка и получение текста при помощи JavaScript функций.
Подготовительные действия такие же как в примере 1С Поле HTML документа — Кнопки, отличается исходный код HTML страницы и общей формы.
1. Создаем HTML страницу.
В любом редакторе кода поддерживающим HTML, CSS и JS необходимо создать страницу, содержащую следующий исходный текст:
- Используется тег form с заданным именем «dataInput», для последующего обращения с целью получения дочерних элементов.
- Для ввода и отображения текста, используется тег input с заданным идентификатором «textInput».
- Добавлена область script, в которой происходит получение ссылки на элемент ввода и реализованы функции установки и получения значения.
2. Создаем конфигурацию 1С.
- Создаем пустую конфигурацию.
- Добавляем общий макет «МакетHTML», с типом «HTML документ», помещаем в него HTML код из первого пункта.
- Создаем общую произвольную форму «ПолеHTML», где:
▪ добавляем реквизит «ПолеHTML» тип строка, переносим на форму, вид «Поле HTML документа» и создаем обработчик «ПриНажатии».
▪ создаем реквизит «Комментарий» тип строка, переносим его на форму.
▪ добавляем команды «ОтправитьВHTML», «ОтправитьВJS», «ПолучитьИЗJS», переносим их на форму и создаем обработчики. - Общую форму «ПолеHTML», устанавливаем в рабочую область начальной страницы.
Если возникнут сложности, в конце записи можно скачать архив с конфигурацией.
3. Создаем код модуля формы.
В общей форме необходимо добавить обработчик «ПриСозданииНаСервере», в котором будет происходит загрузка текста из «МакетаHTML» в элемент формы «ПолеHTML».
Пояснение: Из общего макета происходит получение текста HTML страницы и отображение в элементе формы.
Далее добавляем код в обработчик «ПриНажатии» для элемента формы «ПолеHTML», в котором происходит основная обработка нажатий внутри HTML документа:
Пояснение: Так как используется пустой «якорь», определяем имеются ли на странице соответствующие элементы, после по конкретно заданному имени атрибута и его значению, получаем введенный текст.
Оставшийся код обработчиков команд формы:
Пояснение: В команде «ОтправитьВHTML» происходит запись введенного комментария при помощи помещения текста в соответствующее свойство «value» тега input. Команда «ОтправитьВJS» и «ПолучитьИЗJS» обращается непосредственно к JavaScript функциям «insertTextToObject» и «getTextFromObject», при помощи свойства «defaultView».
Извлечь Текст Из HTML
При работе c HTML файлами из интернета часто приходится извлекать текст в формте HTML , очищенный от тегов, скриптов и заголовков для сохраненеия при необходимости в переменной типа строка с неограниченной длиной. .
Функцция очищает текст в формате HTML от тегов и возвращает неформатированный текст.
Параметры:
ИсходныйТекстHTML – Строка – текст в формате HTML.
Возвращаемое значение: Строка – текст, очищенный от тегов, скриптов и заголовков.
В теле данной функции есть вызов другой функции РазложитьСтрокуВМассивПодстрок
Функция РазложитьСтрокуВМассивПодстрок разбивает строку на несколько строк по указанному разделителю. Разделитель может иметь любую длину. В случаях, когда разделителем является строка из одного символа, и не используется параметр СокращатьНепечатаемыеСимволы,
рекомендуется использовать функцию платформы СтрРазделить.
Параметры данной функции:
Значение – Строка – текст с разделителями;
Разделитель – Строка – разделитель строк текста, минимум 1 символ;
ПропускатьПустыеСтроки – Булево – признак необходимости включения в результат пустых строк.
Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией:
– для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки включаются в результат;
– если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в случае разделителя-пробела результатом функции будет массив, содержащий одно значение “” (пустая строка), а при других разделителях результатом функции будет пустой массив.
СокращатьНепечатаемыеСимволы – Булево – сокращать непечатаемые символы по краям каждой из найденных подстрок.
Возвращаемое значение:
Массив – массив строк.
Пример:
1С Поле HTML документа — Обмен
Простой пример обмена текстовой информацией, между платформой 1С и полем HTML документа, будут рассмотрены два варианта отправки и получения данных в поле HTML документа:
- Вставка и получения текста из атрибута HTML тега.
- Вставка и получение текста при помощи JavaScript функций.
Подготовительные действия такие же как в примере 1С Поле HTML документа — Кнопки, отличается исходный код HTML страницы и общей формы.
1. Создаем HTML страницу.
В любом редакторе кода поддерживающим HTML, CSS и JS необходимо создать страницу, содержащую следующий исходный текст:
- Используется тег form с заданным именем «dataInput», для последующего обращения с целью получения дочерних элементов.
- Для ввода и отображения текста, используется тег input с заданным идентификатором «textInput».
- Добавлена область script, в которой происходит получение ссылки на элемент ввода и реализованы функции установки и получения значения.
2. Создаем конфигурацию 1С.
- Создаем пустую конфигурацию.
- Добавляем общий макет «МакетHTML», с типом «HTML документ», помещаем в него HTML код из первого пункта.
- Создаем общую произвольную форму «ПолеHTML», где:
▪ добавляем реквизит «ПолеHTML» тип строка, переносим на форму, вид «Поле HTML документа» и создаем обработчик «ПриНажатии».
▪ создаем реквизит «Комментарий» тип строка, переносим его на форму.
▪ добавляем команды «ОтправитьВHTML», «ОтправитьВJS», «ПолучитьИЗJS», переносим их на форму и создаем обработчики. - Общую форму «ПолеHTML», устанавливаем в рабочую область начальной страницы.
Если возникнут сложности, в конце записи можно скачать архив с конфигурацией.
3. Создаем код модуля формы.
В общей форме необходимо добавить обработчик «ПриСозданииНаСервере», в котором будет происходит загрузка текста из «МакетаHTML» в элемент формы «ПолеHTML».
Пояснение: Из общего макета происходит получение текста HTML страницы и отображение в элементе формы.
Далее добавляем код в обработчик «ПриНажатии» для элемента формы «ПолеHTML», в котором происходит основная обработка нажатий внутри HTML документа:
Пояснение: Так как используется пустой «якорь», определяем имеются ли на странице соответствующие элементы, после по конкретно заданному имени атрибута и его значению, получаем введенный текст.
Оставшийся код обработчиков команд формы:
Пояснение: В команде «ОтправитьВHTML» происходит запись введенного комментария при помощи помещения текста в соответствующее свойство «value» тега input. Команда «ОтправитьВJS» и «ПолучитьИЗJS» обращается непосредственно к JavaScript функциям «insertTextToObject» и «getTextFromObject», при помощи свойства «defaultView».
Работа с веб-страницами средствами 1С
Иногда появляется необходимость отобразить какую-либо веб-страницу прямо на форме. Я рассмотрю эту возможность платформы 1С на примере вывода на форму страницы с поисковой системой yandex, причем с результатами поиска по слову, введённому в поле формы.
Т.е. вот этой страницы:

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

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

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

Как же сделать так, чтобы в поле «Страница» выводилась страница Яндекса, но уже с результатами поиска по какому-нибудь слову?
Добавим реквизит формы: «КлючевоеСлово», перенесем на форму.
Если приглядеться к адресу, который появляется в адресной строке Яндекса после осуществления поиска по ключевому слову «1С» (а будет он таким: «http://yandex.ru/yandsearch?text=1%D1%81»), то можно увидеть, что введенное слово шифруется и передается в post-переменной text. Отсюда делаем вывод, что осталось лишь разобраться в том, как получить шифрованное значение запроса.
Если немного покопаться, то можно узнать, что для кодирования переменных в URL’ах можно использовать java-script функцию «encodeURIComponent». Можно, конечно, перебором подобрать код для каждого символа алфавита и самому написать кодировщик, а можно использовать возможности компоненты wscript, которую можно подключить из 1С.
Итак, что нам нужно:
А) Подключить wscript
Б) На основании ключевого слова собрать скрипт, который будет получать значение, возвращенное функцией «encodeURIComponent» при передаче в неё в качестве параметра нашего слова, а затем полученный результат будет записывать в текстовый файл с определенным заранее каталогом
В) Из 1С получать текстовый файл, созданный при помощи wscript и читать его.