Имя: Пароль:
1C
1С v8
Чтение данных из HTML
0 Rizhij_Nikitos
 
08.11.11
14:29
Здравсвуйте.Как в 1С можно прочитать данные из HTML-файла, который я буду получать через HTTP-соединение методом GET. По идеи данные будут как бы в таблице отображены. Жду ваших дум, советов, подсказок в виде литературы.
1 mzelensky
 
08.11.11
14:38
по форуму поиск сделай - тут много таких тем было
+ как вариант на ИС зайди - там тоже обработок хватает!
2 Rizhij_Nikitos
 
08.11.11
14:44
да вот мне бы простенький вариант, то есть я получаю данных в свой html документ, в виде как бы таблицы, и эту таблицу я должен буду расписахать по нужным данным в 1С. Мне бы примеры работы с этим хватило бы...
3 Wobland
 
08.11.11
14:46
(2) тоже сношаюсь с этим. вот обход конкретной таблицы с четырьмя колонками

   HTML=Новый COMОбъект("HTMLFile");
   HTML.Open("text/html");
   HTML.Write(ф.ПолучитьТекст());
   HTMLDocument=HTML.documentElement.document;
   Table=HTMLDocument.getElementsByTagName("Table");
   obj=Table.Item(1);
   КоличествоСтрок=Цел((obj.cells.length-1)/4);
   Для i=1 По КоличествоСтрок Цикл
4 Rizhij_Nikitos
 
08.11.11
14:52
Интересно, это для 8.2 код?
Строчки
HTLM.Write(ф.ПолучитьТекст())- что такое ф? )
Далее
HTMLDocument=HTML.documentElement.document - тута мы получаем элементы документа верно?
Table=HTMLDocument.getElementsByTagName("Table")- саму таблицу с таким именем.
obj=Table.Item(1) - это че ?
и количество строк
КоличествоСтрок=Цел((obj.cells.length-1)/4) - почему так?
и как в цикле у строки еще колонки выделять чтобы в таблицу значений перекинуть это?
5 Wobland
 
08.11.11
14:55
1) ф - файл, полученный методом Получить()
2) да
3) table - имя тэга
4) типа второй элемент массива (то есть нужная мне таблица)
5) массив ячеек одномерный, поэтому так.значение второй колонки: Наименование=СокрЛП(obj.cells(i*4+1).innerText);
6 Rizhij_Nikitos
 
08.11.11
15:03
Тык я получаю файл таким образом, ниже код просто тестил, щас работал через прокси, данные я уже получаю в html файл.
   СерверИсточник = "www.cennic-etiketka.ru";
   Адрес = "/demo/news?show_id=175";
   ИмяВходящегоФайла = "C:\1.html";
   ПроксиСервер = Новый ИнтернетПрокси;
   ПроксиСервер.Пользователь = "bogoslovskym";
   ПроксиСервер.Пароль = "klmnbuka";
   ПроксиСервер.Установить("HTTP","192.168.1.3","8080");
   HTTP = Новый HTTPСоединение(СерверИсточник,,,,ПроксиСервер);
   HTTP.Получить(Адрес,ИмяВходящегоФайла);
   ВходящийФайл = Новый Файл(ИмяВходящегоФайла);
   Сообщить(ВходящийФайл.Размер());
7 Rizhij_Nikitos
 
08.11.11
15:04
html.open -я думал тута надо открывать полученный свой html докумен в моем случае это будет
htmp.open(@C:\1.html");
8 Wobland
 
08.11.11
15:05
опену надо текст, а не файл. плюс у меня ф=Новый ТекстовыйДокумент;
9 Rizhij_Nikitos
 
08.11.11
15:19
Стоп я тогда вообще не правильно понял. Вот смотри у меня есть файл "C:\1.html", он html документ, теперь мне его надо прочитать. Следуя по твоему коду я пишу следующее
//создаю объект
HTML=Новый COMОбъект("HTMLFile");
HTML.Open("C:\1.html");
//не знаю какой текст брать
текст = Новый ТекстовыйДокумент;
Текст.Прочитать("C:\1.html");
HTML.Write(Текс.ПолучитьТекст());
HTMLDocument = HTML.documentElement.document;
//ищем tag с названием Table
Table=HTMLDocument.getElementsByTagName("Table");
//почему второй элемент массива, а не первый
   obj=Table.Item(1);
//это количество строка длина поделить на количество столбцом x,надеюсь правильно
   КоличествоСтрок=Цел((obj.cells.length-1)/x);
// тута начало цикла чтения
   Для i=1 По КоличествоСтрок Цикл
//читаем какой столбец колонки? x-вый да?
 Наименование=СокрЛП(obj.cells(i*x+1).innerText);
КонецЦикла;
10 Rizhij_Nikitos
 
08.11.11
15:20
Посмотри и скажи где ошибки, а где все правильно понял.
11 Rizhij_Nikitos
 
08.11.11
15:28
HTML.Open("text/html") - я так понял это <META content="text/html; charset=utf-8" http-equiv=Content-Type><LINK rel=stylesheet type=text/css href="/content/css/styles.css">
12 andrewks
 
08.11.11
15:30
(3) нахрена ты извращаешься с htmlfile, когда можно напрямки как хмл разбирать?
13 Rizhij_Nikitos
 
08.11.11
15:37
Тык я данные в html луплю, а разница есть между xml и html или же нет?
14 Rizhij_Nikitos
 
08.11.11
15:52
Вверх!
15 acsent
 
08.11.11
15:56
Есть объект ЧтениеHTML
16 Rizhij_Nikitos
 
08.11.11
15:58
А как с ним работать? и что он делает?
17 acsent
 
08.11.11
15:59
Тоже самое что и ЧтениеXML
18 Rizhij_Nikitos
 
08.11.11
16:07
Хм, еще бы знать, как там работается ...
19 Rizhij_Nikitos
 
08.11.11
16:16
а еще лучше примеры хотя бы какие нибудь.
20 Rizhij_Nikitos
 
08.11.11
16:17
(3) кстати пробывал HTMLDocument.getElementsByTagName("HEAD").Length выдавало 1, хотя если HTMLDocument.HEAD.ChildNotes.Length то выдает 3, по факту там 3 строки.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший