8.х Как получить ответ от сервера из html

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем v0233, 25 май 2011.

  1. TopicStarter Overlay
    v0233
    Offline

    v0233 Опытный в 1С

    Регистрация:
    23 авг 2010
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Добрый день.
    В HTML есть переменная good
    Good = polygon.contains(new YMaps.GeoPoint(37.804867, 55.813444);
    после отправки на сервер яндекс карт идет ответ и этот good присваивает 1 или 0

    Вопрос: как получить в 1с эту переменную после отправки на сервер.
    Помогите пожалуйста , целый день с этим вожусь.

    Вот полная процедура

    Код:
    Карта = "<!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"">
    |   // Создание обработчика для события window.onLoad
    |   YMaps.jQuery(function () {
    |      // Создание экземпляра карты и его привязка к созданному контейнеру
    |       var map = new YMaps.Map(YMaps.jQuery(""#YMapsID"")[0]);
    |
    |      // Установка для карты ее центра и масштаба
    |       map.setCenter(new YMaps.GeoPoint("""+СтрЗаменить(ДолготаМетки,",",".")+""", """+СтрЗаменить(ШиротаМетки,",",".")+"""), 15);
    </span>
    |
    |map.addControl(new YMaps.TypeControl());
    |map.addControl(new YMaps.ToolBar());
    |map.addControl(new YMaps.Zoom());
    |map.addControl(new YMaps.MiniMap());
    |map.addControl(new YMaps.ScaleLine());
    |
    |     // Создание метки
    |         var placemark = new YMaps.Placemark(new YMaps.GeoPoint("""+СтрЗаменить(ДолготаМетки,",",".")+""", """+СтрЗаменить(ШиротаМетки,",",".")+"""));
    |
    |       // Установка содержимого значка метки
    |      placemark.setIconContent("""+Наименование+""");
    |
    |    // Добавление метки на карту
    |   map.addOverlay(placemark);
    |
    | // Создание стиля для многоугольника
    |var style = new YMaps.Style(""default#greenPoint"");
    |style.polygonStyle = new YMaps.PolygonStyle();
    |style.polygonStyle.fill = false;
    |style.polygonStyle.outline = 1;
    |style.polygonStyle.strokeWidth = 4;
    |style.polygonStyle.strokeColor = ""ff0000ff"";
    |style.polygonStyle.fillColor = ""ff000055"";
    |YMaps.Styles.add(""polygon#Example"", style);
    |
    | // Создание многоугольника
    |var polygon = new YMaps.Polygon([
    |    "+ТочкиРайона+"
    |     ], {
    |                style: ""polygon#Example"",
    |               hasHint: 1,
    |              hasBalloon: 1
    |         });
    |
    |       // Установка данных для многоугольника
    |      //polygon.name = ""Москва"";
    |     //polygon.description = ""Столица России"";
    |    
    |   // Добавление многоугольника на карту
    |  map.addOverlay(polygon);
    |Good=polygon.contains(new YMaps.GeoPoint("+СтрЗаменить(ДолготаМетки,",",".")+", "+СтрЗаменить(ШиротаМетки,",",".")+"));
    |alert(Good);
    |        });
    |       
    |  </script>
    | 
    |</head>
    |
    |<body>
    |  <div id=YMapsID style=""width:1400px;height:786px""></div>
    |</body>
    |
    |</html>";
    ЭлементыФормы.КартыYandex.УстановитьТекст(Карта);
    
    
    </FONT></FONT></pre>
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    С яндекс картами не работал (да и с javascript - давно уже дело было, поэтому за кривой код javascript - приношу извинения если что), вот обработка, пример получения значения.
    Думаю под свои нужды допилите.

    Вложения:

  3. TopicStarter Overlay
    v0233
    Offline

    v0233 Опытный в 1С

    Регистрация:
    23 авг 2010
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое. :angry: Действительно то что нужно. :D
    Вы мне очень помогли. :aua:
    Только в процессе у меня выявилась непонятная ошибка
    В обработке работает, а когда переношу на форму в Справочниках выдает ошибку при определении координат
    {Справочник.Районы.Форма.ФормаЭлемента(119)}: Метод объекта не обнаружен (eval)
    ОтветJS = ЭлементыФормы.КартыYandex1.Документ.parentWindow.eval("retTo1C('37.76', '55.76')");

    подскажите пожалуйста что это может быть?

  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Это в моей обработке или переделывали? В своей я проверял, все ок было.
    Чтобы работал метод eval - надо чтобы html страница на момент вызова метода была уже загружена. Если вы выполняете все как бы в одной процедуре (т.е. идет ЭлементыФормы.КартыYandex.УстановитьТекст(Карта); и потом сразу же вызывается eval, то страница не успевает загрузиться (т.е. технически объект ЭлементыФормы.КартыYandex1.Документ не успевает создаться), поэтому и выдает ошибку).
  5. TopicStarter Overlay
    v0233
    Offline

    v0233 Опытный в 1С

    Регистрация:
    23 авг 2010
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Нет, вот именно что документ успевает создаться и я вижу эту карту. В Вашей обработке все работает. я даже вручную создал еще одну обработку и перенес туда все содержимое из Вашей. Работает. А переношу в форму Элемента в Справочники, там не работает. Карта появляется а при определении координат ошибка.
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не знаю честно говоря. Такая проблема с eval возможна только если на момент вызова COMОбъект "Документ" не инициализирован. Других причин не знаю.
  7. TopicStarter Overlay
    v0233
    Offline

    v0233 Опытный в 1С

    Регистрация:
    23 авг 2010
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Спасибо.
    Буду разбираться.
  8. TopicStarter Overlay
    v0233
    Offline

    v0233 Опытный в 1С

    Регистрация:
    23 авг 2010
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Этот прикол заключался в том что ЭлементыФормы.КартыYandex1 была на другой странице в форме. Поэтому и eval не работал.

    Спасибо Вам еще раз большое пребольшое. :angry:

Поделиться этой страницей