Имя: Пароль:
1C
 
Из Javascript?
0 Santa4527
 
09.09.10
15:08
КодХТМЛ = "
   |<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">
   |<html xmlns=""http://www.w3.org/1999/xhtml"">
   |<head>
   |    <title>Примеры. Геокодирование.</title>
   |    <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" />
   |    <script src=""http://api-maps.yandex.ru/1.1/index.xml?key=ANpUFEkBAAAAf7jmJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ=="" type=""text/javascript""></script>
   |    <script type=""text/javascript"">
   |        var map, geoResult, Kopdinat1, Kopdinat2;
   // Создание обработчика для события window.onLoad
   |        YMaps.jQuery(function () {
   // Создание экземпляра карты и его привязка к созданному контейнеру
   |            map = new YMaps.Map(YMaps.jQuery(""#YMapsID"")[0]);
   // Установка для карты ее центра и масштаба
   |            map.setCenter(new YMaps.GeoPoint(30.35, 59.55), 10);
   // Добавление элементов управления
   |            var toolBar = new YMaps.ToolBar();
   |          map.addControl(toolBar);
   |           map.addControl(new YMaps.Zoom());
   |          map.addControl(new YMaps.TypeControl());
   |          map.enableScrollZoom();
   |        });
   // Функция для отображения результата геокодирования
   // Параметр value - адрес объекта для поиска
   |       function showAddress (value) {
   // Запуск процесса геокодирования
   |           var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
   // Создание обработчика для успешного завершения геокодирования
   |           YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
   // Если объект был найден, то добавляем его на карту
   // и центрируем карту по области обзора найденного объекта
   |if (this.length()) {  
   |                   geoResult = this.get(0);
   //|                   geoResult = "+ Координаты +";
   |                      map.addOverlay(geoResult);
   |                    map.setBounds(geoResult.getBounds());
   |Kopdinat1 = geoResult._point.__lat;
   |Kopdinat2 = geoResult._point.__lng;
   //|"+ Координаты +" = Kopdinat1;
   | alert(geoResult._point.__lat);
   | alert(Kopdinat1);
   | alert(geoResult._point.__lng);
   | alert(Kopdinat2);
   |                    }else {
   |                 alert(""Ничего не найдено"")
   |                    }
   |        });
   // Процесс геокодирования завершен неудачно
   |       YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {
   |          alert(""Произошла ошибка: "" + error);
   |     })
   |}
   |function showA () {
   |showAddress('"+МассивАдресов+"')
   |}
   |</script>
   |</head>
   |<body onload = ""javascript:showA()"">
   |  <div id=""YMapsID"" style=""width:800px;height:600px""></div>
   |</form>
   |</body>
   |    
   |</html>
   |";
   
   ЭлементыФормы.Карта2.УстановитьТекст(КодХТМЛ);

Показан пример работы с яндекс картой.

Возможно получение переменных Kopdinat1, Kopdinat2 для 1С (Чтобы например, записать эти переменные в справочник)
1 AquaKosh
 
09.09.10
15:13
(0) Возможно.
2 IronDemon
 
09.09.10
15:15
Пример можно?
3 AquaKosh
 
09.09.10
15:16
4 Santa4527
 
09.09.10
15:37
Сделал новую обработку. В Форму обработки добавил ПолеHTMLДокумента. Сформировал текст КодХТМЛ2 и установил ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(КодХТМЛ2);

но потом выдает ощибку
Форма.Форма(15)}: Метод объекта не обнаружен (eval)
   ОтветJS = ЭлементыФормы.ПолеHTMLДокумента.Документ.parentWindow.eval("retTo1C()");


КодХТМЛ2 = "
   |<script type=""text/javascript"">
   |function retTo1C() {
   |   var myCars = new Array(""Saab"",""Volvo"",""BMW"");
   |  return myCars;
   |}
   |</script>";

   
   
   ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(КодХТМЛ2);
   
   ОтветJS = ЭлементыФормы.ПолеHTMLДокумента.Документ.parentWindow.eval("retTo1C()");
   Для каждого ЭлементМассива Из ОтветJS Цикл
       Сообщить(ЭлементМассива);
   КонецЦикла;
5 Santa4527
 
09.09.10
15:58
Как так? Но в чем проблема?
6 AquaKosh
 
09.09.10
17:19
(5) А, не, немного не так. Ты должен сделать переход (ЭлементыФормы.ПолеHTMLДокумента.Перейти) на страницу или макет, в которой присутствует функция "retTo1C()", иначе её в DOMе нету и эвалить нечего.
7 AquaKosh
 
09.09.10
18:12
(5) Автор, а тебе точно надо получать значения из скрипта сразу после установки текста? Или у тебя после установки текста идёт возврат в режим ожидания каких-либо действий от пользователя? ... Дело в том, что если делать 1 в 1 как в (4), то перед тем как вызывать "retTo1C()" надо вернуть 1С в режим ожидания. У меня есть рабочий пример из (4), могу выложить.
8 Шурик71
 
09.09.10
20:16
(7) Если не напряжно - выложи, интересно глянуть.
9 Ковычки
 
09.09.10
22:48
вообщето есть объект Script и колекция Scripts
а евал относится и не к доку и не к окну
10 Xbase1
 
09.09.10
22:50
(9) вы постите), ваши записи в инете многие записывают в блокнот. хватит флуда )
11 Ковычки
 
09.09.10
22:56
ты иксбейс и есть ?
12 Xbase1
 
09.09.10
22:59
да олег но я думаю я тут не налолго, скучно тут одни и те же темы, ты лучше пиши решения я уже блокнот взял
13 Ковычки
 
09.09.10
23:10
по поводу (4)
ЭлементыФормы.ПолеHTMLДокумента.Документ.Script.retTo1C()

может в влсьмерке конечно как нибудь и ограничено, но в семерке и скриптах именно так

(12) ))), а где не скушно то
14 Xbase1
 
09.09.10
23:25
(13) записано, не скучно на даче есть шашлык с симпотичными молодыми девушками, не скучно записывать твои решения, не скучно ругаться в рабочей атмосфере с бухгалтерами и зав магазинами ), не скучно вымотаться на рыбалке в поисках крупного хищника , а тут скучно )
15 Asmody
 
09.09.10
23:32
а ничего, что в примере (0) Kopdinat1 и Kopdinat2 это ни много, ни мало - свойства объекта window?
16 Santa4527
 
10.09.10
09:36
(7) Мне просто нужно получить эти значения.
(15) ну и что? Я просто не очень в javascript.

А пример не помешал бы.
17 AquaKosh
 
10.09.10
11:38
(8)(16) Вот пример получения и передачи данных в скрипт: http://ifolder.ru/19241311
18 Santa4527
 
10.09.10
12:09
(17)Спасибо!!! буду пробывать!
19 Шурик71
 
10.09.10
12:52
(17) Нет, в данном случае не прокатывает.

В смысле не то, что из скрипта не возвращается значение - а то, что в _этот_ момент не работает.

И, кстати, действительно, обращение типа
...
Координата1 = ЭлементыФормы.Карта2.Документ.parentWindow.Kopdinat1;
...

проще, чем через eval.

Но тут проблема в том, что сначала страница отображается, скрипт инитится (переменные появляются), страница появляется, в 8-ке генерится евент ДокументСформирован, в этот момент координаты = НЕОПРЕДЕЛЕНО;  а только потом - скриптом идет позиционирование на адресе и его геокодирование...

Я, правда, точно во всем этом не уверен, но в обработчике ДокументСформирован
координаты равны 0; но если потом определить координаты кнопкой - то координаты на месте.

А хотелось бы без лишних телодвижений...
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой