![]() |
![]() |
![]() |
|
Помогите понять код | ☑ | ||
---|---|---|---|---|
0
Eugene_life
04.12.13
✎
14:50
|
Всем доброго дня.
Переношу обработку из версии 7.7 в 8.2. Смысл обработки - получение из сторонней системы биллинга данных (сохраняются в xml и затем парсятся и превращаются в документы). Получилось так, что мне нужно получить дополнительное поле, но не понимаю, где список полей задается. Под подозрение попала строка скрипта: Скрипт.Eval("RQ.Option(4)='13056'"); Кто может, объясните мне, пожалуйста, что это означает. Вот сама функция: Функция ЗагрузитьФайл(СтрокаАдреса, ИмяВходящегоФайла) WinH = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); Поток = Новый COMОбъект("ADODB.Stream"); Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl"); Попытка Скрипт.Language="javascript"; Скрипт.AddObject("RQ", WinH); Скрипт.Eval("RQ.Option(4)='13056'"); //что это за параметр? WinH.Open("GET", СтрокаАдреса, 0); WinH.setRequestHeader("Accept", "application/xml"); WinH.SetRequestHeader("Content-Type","text/xml; charset=Windows-1251"); WinH.Send(); Поток.Mode = 3; Поток.Type = 1; Поток.Open(); Скрипт.AddObject("Stream", Поток); Скрипт.Eval("Stream.Write(RQ.ResponseBody)"); Поток.SaveToFile(ИмяВходящегоФайла, 2); Возврат Истина; Исключение Возврат Ложь; КонецПопытки; КонецФункции // ЗагрузитьФайл() |
|||
1
Господин ПЖ
04.12.13
✎
14:53
|
>Скрипт.Eval("RQ.Option(4)='13056'"); //что это за параметр?
спроси у авторов биллинга |
|||
2
Eugene_life
04.12.13
✎
14:56
|
(1)Они открестились от этой функции. Ее писал какой-то умный программист. Само собой, в тексте ни одного комментария.
|
|||
3
Господин ПЖ
04.12.13
✎
14:58
|
>Они открестились от этой функции.
пускай дают другую. с документацией |
|||
4
Господин ПЖ
04.12.13
✎
15:00
|
тут просто дергается некий скрипт на их стороне с передачей ему хер знает чего... какая там сигнатура и чо вообще происходит - мы будем всей миздой гадать?
|
|||
5
Eugene_life
04.12.13
✎
15:01
|
(3),(4) Ты, конечно, прав. Но Миста непредсказуема, всегда есть вероятность того, что кто-то просто напишет ответ :)
|
|||
6
shuhard
04.12.13
✎
15:09
|
(5) и что мешает использовать код есть, раз он работает ?
|
|||
7
Eugene_life
04.12.13
✎
15:13
|
(6) нужно получать еще одно поле в выгрузке, а напрямую в коде отсутствует список полей. Стало быть, получаются все поля? Но по документации это поле существует (номер документа в биллинге), а в xml-е его нету. Вот и думаю, как же это работает. Отладчик тут бесполезен.
|
|||
8
Eugene_life
04.12.13
✎
15:19
|
Всем присутствующим спасибо, разобрался. Видимо, прежний программист участвовал в разработке этой системы биллинга (ну, или тесно сотрудничал с разработчиками), и сделал функцию на стороне биллинга. Она в документации не описана, однако продолжает работать. Изменил вызов на функцию, описанную в документации - получил все реальные поля.
|
|||
9
vhl
04.12.13
✎
15:22
|
(0) Этот код не загружает данные. Здесь просто сохраняется файл из вашей системы биллинга. Загрузка где-то дальше должна идти.
|
|||
10
CrazyBear
04.12.13
✎
15:22
|
(0) а сам скрипт нельзя посмотреть? или хотя бы отладчиком пошариться по переменной "Поток" может глазами хоть что-то будет понятное...
|
|||
11
Torquader
04.12.13
✎
15:23
|
(1) Ваша строка задаёт опцию к запросу файла
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384108(v=vs.85).aspx К авторам билинга он относится точно также, как и к автору этого кода - это параметр запроса (точнее набор параметров) То есть вся эта "байда" просто заходит на http по СтрокаАдреса, получает оттуда ответ на запрос GET и записывает его в файл ИмяВходящегоФайла. Запрос формируется на стороне билинга и дополнительные поля добавляются именно там. |
|||
12
Eugene_life
04.12.13
✎
15:29
|
(11) я так и понял. Но "фишка" была в том, что функция, которая была в СтрокаАдреса, не описана никак в документации, и техподдержка о ней "ни слухом ни духом". Вылечилось заменой на документированную функцию.
|
|||
13
Torquader
04.12.13
✎
15:46
|
(12) Видимо, кто-то написал преобразователь на стороне билинга - пусть смотрят php-код - там, наверное, всё описано.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |