|
Как получить данные из 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
|
В темповых папках считанный файл лежит, если специально не удалял
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |