Имя: Пароль:
1C
1C 7.7
v7: 1C 7.7 + jscript передача параметров
0 gabatel
 
06.06.12
10:24
Как передать координаты точки х,у и получить результат?

   Текст = "isPointInPoly(points, {x: 10, y: 10})";
   scriptCtrl= СоздатьОбъект("MSScriptControl.ScriptControl");
   scriptCtrl.language="javascript";
   Попытка        
       scriptCtrl.AddCode("
       |function isPointInPoly(poly, pt){
       |for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
       |            ((poly[i].y <= pt.y && pt.y < poly[j].y) || (poly[j].y <= pt.y && pt.y < poly[i].y))
       |            && (pt.x < (poly[j].x - poly[i].x) * (pt.y - poly[i].y) / (poly[j].y - poly[i].y) + poly[i].x)
       |            && (c = !c);
       |        return c;
       |        }            
       |        points = [
       |        {x: 49.325829, y: 26.854756},
       |        {x: 49.326994, y: 26.857169},
       |        {x: 49.324019, y: 26.860754},
       |        {x: 49.325577, y: 26.853961},
       |        {x: 49.325439, y: 26.864316},
       |        {x: 49.327067, y: 26.866709},
       |        {x: 49.323869, y: 26.871692},
       |        {x: 49.323246, y: 26.867334},
       |        {x: 49.322805, y: 26.866486},
       |        {x: 49.320791, y: 26.865787},
       |        {x: 49.320452, y: 26.860936},
       |        {x: 49.320955, y: 26.859675},
       |        {x: 49.322664, y: 26.858469},
       |        {x: 49.323591, y: 26.858516},
       |        {x: 49.324285, y: 26.857736},
       |        {x: 49.324858, y: 26.856305},
       |        ];
       |");
   Текст=СокрЛП(scriptCtrl.Run("isPointInPoly(points, {x: 10, y: 10})"));  

1 andrewks
 
06.06.12
10:28
мой гений дарит вам... ©


Функция СкачатьФайлПоСсылке(Ссылка,ИмяФайла)
   
   Попытка
       JS=СоздатьОбъект("MSScriptControl.ScriptControl");
       JS.Language="jscript";
       JS.Timeout=-1;
   Исключение
       ТекстОшибки=ОписаниеОшибки();
       Сообщить("Не удалось создать объект MSScriptControl.ScriptControl","!");
       Сообщить("Описание ошибки: "+ТекстОшибки,"!");
       Возврат 0;
   КонецПопытки;
   
   Попытка
       
       СтрКода="function DwnFile(FileLink,FileName)
       |{
       |   Stream=new ActiveXObject(""ADODB.Stream"");
       |   Stream.Mode=3;
       |   Stream.Type=1;
       |   Stream.Open();
       |   Req=new ActiveXObject(""Microsoft.XMLHTTP"");
       |   Req.Open(""GET"",FileLink,0,"""","""");
       |   Req.Send();
       |   Stream.Write(Req.responseBody);
       |   Stream.SaveToFile(FileName,2);
       |   Stream.Close();
       
       | return(0);
       |}
       |";
   
   JS.AddCode(СтрКода);
   Рез=JS.Modules("Global").CodeObject.DwnFile(Ссылка,ИмяФайла);
   Исключение
       ТекстОшибки=ОписаниеОшибки();
       Сообщить("Описание ошибки: "+ТекстОшибки,"!");
       Возврат 0;
   КонецПопытки;
   Возврат 1;
КонецФункции

2 gabatel
 
06.06.12
14:55
Выдает ошибку в 1С 'y' is null or not an object,А если данный скрип запустить в Iexplorer тоже такая самая ошибка,а если в другом браузере работает нормально,в чем проблема подскажите пожалуйста.

scriptCtrl= СоздатьОбъект("MSScriptControl.ScriptControl");
scriptCtrl.language="javascript";
scriptCtrl.AddCode("
|    points = [
|    {x: 49.325829, y: 26.854756},
|    {x: 49.326994, y: 26.857169},
|    {x: 49.324019, y: 26.860754},
|    {x: 49.325577, y: 26.853961},
|    {x: 49.325439, y: 26.864316},
|    {x: 49.327067, y: 26.866709},
|    {x: 49.323869, y: 26.871692},
|    {x: 49.323246, y: 26.867334},
|    ];
|function isPointInPoly(poly, pt){
|for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
|            ((poly[i].y <= pt.y && pt.y < poly[j].y) || (poly[j].y <= pt.y && pt.y < poly[i].y))
|            && (pt.x < (poly[j].x - poly[i].x) * (pt.y - poly[i].y) / (poly[j].y - poly[i].y) + poly[i].x)
|            && (c = !c);
|        return c;
|        }
|function PolygonSearch(){    
|alert(isPointInPoly(points,{x: 49.322664, y: 26.859675}) ? ""объект на поле"" : ""объект вне поля"");                
|}
|");
Текст=СокрЛП(scriptCtrl.Run("PolygonSearch"));  
3 gabatel
 
06.06.12
16:20
Решил проблема была в том что нужно было убрать запятую после {x: 49.324858, y: 26.856305},