8.х импорт прайса из html

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем gosn1ck, 12 янв 2011.

  1. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    коллеги, писал ли кто-нибудь обработки по импорту прайса из html ? поделитесь примерчиком
  2. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    у меня алгоритм разбит на 2 этапа:
    1) периодическое сохранение прайса в html файл с помощью программы offline explorer
    2) загрузка прайса в 1с

    Код:
    Процедура ЗагрузкаКаталогаSVEN()
    
    МассивФайлов = НайтиФайлы("c:\download\www.sven.ru\catalog", "*.htm", истина);
    
    Для каждого ЭлементМассива Из МассивФайлов Цикл
    
    ЧтениеHTML = Новый ЧтениеHTML;
    ЧтениеHTML.ОткрытьФайл(ЭлементМассива.ПолноеИмя);
    
    Если 
    ЭлементМассива.Путь="c:\download\www.sven.ru\catalog\" 				// не нужны элементы из корня
    ИЛИ ЭлементМассива.Путь="c:\download\www.sven.ru\catalog\archive\" 		// старые модели тоже не нужны
    //ИЛИ ЭлементМассива.Путь="c:\download\www.sven.ru\catalog\accessory\"	// аксессуары тоже не нужны
    Тогда 
    продолжить; 
    КонецЕсли;
    
    ПостроительDOM = Новый ПостроительDOM;
    ДокументDOM = ПостроительDOM.Прочитать(ЧтениеHTML);
    
    ЭлементыHTML = ДокументDOM.ПолучитьЭлементыПоИмени("h1");
    
    ТекСтрока = ЭлементыHTML[3].СледующийСоседний.СледующийСоседний.ТекстовоеСодержимое;
    
    СтрокаТабличнойЧасти = Объект.ТабличнаяЧасть1.Добавить();
    СтрокаТабличнойЧасти.Наименование = ТекСтрока;
    
    ЧтениеHTML.Закрыть();
    
    КонецЦикла;
    
    КонецПроцедуры
    
  3. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    хм, h1 - это видимо тэг, а как мне быть, если у меня таблички?

    Вложения:

    • sshot_1.png
      sshot_1.png
      Размер файла:
      11 КБ
      Просмотров:
      357
    • sshot_2.png
      sshot_2.png
      Размер файла:
      40,4 КБ
      Просмотров:
      429
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    gosn1ck там ничего сложного по сути нет, просто надо видеть полный html файл, по фрагменту трудно судить о структуре (хреново что нигде id в тэгах нету, поругать бы тех, кто экспортирует в таком виде). На глаз (насколько вижу по структуре): находите первую таблицу (тэг "table"), в ней выбираете внутренние таблицы (тэг "table"), в каждой внутренней выбираете строку (тэг "tr"), в каждой строке выбираете колонки (тэг "td") и из колонок уже берете соответствующие данные.

    Можете скинуть html, 100% не обещаю, но если время появится, постараюсь накидать конкретный пример.
  5. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    написал в личку
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Отправил в личку.. :angry:
  7. Shining ninja
    Offline

    Shining ninja Опытный в 1С

    Регистрация:
    20 фев 2011
    Сообщения:
    129
    Симпатии:
    0
    Баллы:
    26
    Дорогие друзья у кого есть этот пример, скиньте его в личку, пожалуйста...
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Вроде нашел. Не помню правда последняя версия это была или как.

    Вложения:

  9. Shining ninja
    Offline

    Shining ninja Опытный в 1С

    Регистрация:
    20 фев 2011
    Сообщения:
    129
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое, скоро попробую, опишусь))
  10. makfromkz
    Offline

    makfromkz

    Регистрация:
    12 июн 2009
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    у меня выскакивает ошибка:
    {Форма.РаботаHTML(4,22)}: Тип не определен (ЧтениеHTML)
    ЧтениеHTML = Новый <<?>>ЧтениеHTML;
    в СП по 1С81 тишина - такого метода нет
  11. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    извиняюсь.. в 8.2 только появился этот объект.

    есть 2 пути:
    1) конвертировать html в правильный xml с помощью сторонней программы и использовать объект ЧтениеXML
    2) имхо - проще гораздо. поставить платформу 8.2 и сконвертировать базу в 8.2. режим совместимости не снимать. => все-таки новые платформы не просто так выпускаются ;)
  12. Shining ninja
    Offline

    Shining ninja Опытный в 1С

    Регистрация:
    20 фев 2011
    Сообщения:
    129
    Симпатии:
    0
    Баллы:
    26
    Ребята решил возобновить эту тему.

    Со сторонний программой все хорошо.
    Но решил задаться идеей , а можно ли сделать без неё.

    Нужно сохранять во временном файле, html документ загруженной из Интернет ( за пример берем - кинопоиск, из-за своей структуры).

    Итак используем:

    HTTPсоединение , соединение проходит нормально.

    потом использую метод - HTTPсоединение.Получить и тут самое интересное, нужно получить страницу типа - level/1/film/477764/ (но он почему-то ничего не сохраняет, другие сайты сохраняет , где явно заканчивается на .htm)

    Хотел использовать - полеhtmlдокумента, но тут не знаю как и нужно ли оно вообще

    Вопрос можно ли средствами 1с, как-то загрузить в файл страницы заканчивающие на level/1/film/477764/ ?
Похожие темы
  1. Arkadiy_B
    Ответов:
    2
    Просмотров:
    370
Загрузка...

Поделиться этой страницей