|   |   | 
| 
 | Как получить данные из xml-файла, расположенного где-то на хосте? | ☑ | ||
|---|---|---|---|---|
| 0
    
        napagokc 04.02.14✎ 08:05 | 
        Мистяне! Подскажите, пожалуйста, можно ли средствами 1С получить данные напрямую с сайта? Даже не так... Где-то на хостинге выложен xml-файл, мне нужно выдернуть из него данные. Мне для этого нужно сначала его сохранить на диск? Как это сделать средствами 1С? Или можно обойтись без сохранения, а выдергивать данные прямо оттуда? Второй вариант предпочтительнее, но можно ли это сделать в 1С и как? Подскажите, пожалуйста, поделитесь опытом...     | |||
| 1
    
        Wobland 04.02.14✎ 08:12 | 
        что-то такое я когда-то писал
 Процедура КоманднаяПанель3ЗагрузитьСтраницу(Кнопка) ФормаАвторизации=ПолучитьФорму("ФормаАвторизации"); СтруктураАвторизации=ФормаАвторизации.ОткрытьМодально(); Если СтруктураАвторизации=Неопределено Тогда Возврат; КонецЕсли; ИмяФайла=ПолучитьИмяВременногоФайла("html"); Прокси=Новый ИнтернетПрокси; Прокси.Пользователь=СтруктураАвторизации.ЛогинПрокси; Прокси.Пароль=СтруктураАвторизации.ПарольПрокси; Попытка Если СтруктураАвторизации.ИспользоватьПрокси Тогда http=Новый HTTPСоединение("techsupp.1c.ru", , СтруктураАвторизации.Логин, СтруктураАвторизации.Пароль, Прокси); Иначе http=Новый HTTPСоединение("techsupp.1c.ru", , СтруктураАвторизации.Логин, СтруктураАвторизации.Пароль); КонецЕсли; Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попытка http.Получить("", ИмяФайла); Мусор.Добавить(ИмяФайла); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ф.ИспользуемоеИмяФайла=ИмяФайла; Попытка ф.Прочитать(ИмяФайла); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ЭлементыФормы.НадписьЗаголовок.Заголовок="Дата последних обновлений: "+ПолучитьДатуПоследнихОбновлений(); КонецПроцедуры Процедура КоманднаяПанель3ПолучитьФайлы(Кнопка) Для Каждого ТекСтрока Из ПоследниеВерсии Цикл ОбработкаПрерыванияПользователя(); Если НЕ ТекСтрока.Пометка Тогда Продолжить; КонецЕсли; Состояние("Загрузка http://techsupp.1c.ru/"+ТекСтрока.Гиперссылка); Расширение=Сред(ТекСтрока.Гиперссылка, СтрДлина(ТекСтрока.Гиперссылка)-2, 3); ИмяКаталога=СтрПолучитьСтроку(ТекСтрока.Наименование, СтрЧислоСтрок(ТекСтрока.Наименование)); ИмяКаталога=СтрЗаменить(ИмяКаталога, ":", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, ".", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "\", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "/", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "*", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "?", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, ";", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "(", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, ")", ""); Если НЕ ПроверитьСуществованиеКаталога(ИмяКаталога) Тогда Продолжить; КонецЕсли; ИмяФайла=ПутьЗагрузки+ИмяКаталога+"\"+ПолучитьИмяФайлаИзГиперссылки(ТекСтрока.Гиперссылка); Попытка http.Получить(ТекСтрока.Гиперссылка, ИмяФайла); Мусор.Добавить(ИмяФайла); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; КонецПроцедуры | |||
| 2
    
        napagokc 04.02.14✎ 08:29 | 
        (1) Спасибо. Теперь хотя бы знаю в какую сторону курить... Опыта работы с сайтом не имею вообще. :(
 Скажите, я правильно понимаю, что при подобном подходе (используя HTTPСоединение) файл на диске не создается? Из СП я так понял, что ответ передается в HTTPОтвет, либо в какую-нить переменную - программист сам решает в какую. Все верно? | |||
| 3
    
        Wobland 04.02.14✎ 08:31 | 
        я не скажу, т.к. по убогости разума получал файл и уже локально извращался над ним (http.Получить(ТекСтрока.Гиперссылка, ИмяФайла)). может, что-то мудрее есть     | |||
| 4
    
        napagokc 04.02.14✎ 08:40 | ||||
| 5
    
        napagokc 04.02.14✎ 08:40 | 
        (4) это я нашел что-то типа учебника. Пока сам читаю. Вроде норм расписано все     | |||
| 6
    
        Мимохожий Однако 04.02.14✎ 08:54 | 
        В темповых папках считанный файл лежит, если специально не удалял     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |