|   |   | 
| 
 | вызов js функции в 8.3.14 | ☑ | ||
|---|---|---|---|---|
| 0
    
        digitta 16.05.19✎ 18:44 | 
        Добрый вечер. Подскажите, пожалуйста, как вызвать js из 1С. Я совсем не знаю JS, а изучать его с нуля нет времени сейчас. Суть: В версии 8.3.14 в свойство Документ элемента ПолеHTMLДокумента содержит ВнешнийОбъект. Это мой HTML-документ, в котором объявлена функция func(str). Как её вызвать и передать ей параметр - текстовую строку. Делаю так:
 Элементы.HTML_документ.Документ.window.eval(func('текст_строки')); Естественно, не работает..... | |||
| 1
    
        Garykom гуру 16.05.19✎ 18:47 | 
        http://catalog.mista.ru/public/398366/
 Eval нету и Документ.parentWindow нету Есть Элементы.HTML_документ.Документ.defaultView Перевод с модели IE на модель Webkit 8.3.14 платформа | |||
| 2
    
        Garykom гуру 16.05.19✎ 18:48 | 
        Нечто вроде
 Элементы.HTML_документ.Документ.defaultView.func('текст_строки') попробуй | |||
| 3
    
        digitta 16.05.19✎ 18:55 | 
        Неправильная константа типа Дата
 Элементы.HTML_документ.Документ.defaultView.func(<<?>>'текст_строки'); | |||
| 4
    
        Garykom гуру 16.05.19✎ 18:59 | 
        (3) Кавычки исправь     | |||
| 5
    
        digitta 16.05.19✎ 19:06 | 
        Поправил. Теперь ошибка теперь не вылетает, но функция не отрабатывает.     | |||
| 6
    
        Garykom гуру 16.05.19✎ 19:07 | 
        (5) Добавь в функцию Alert("Сообщение") что будет?     | |||
| 7
    
        Garykom гуру 16.05.19✎ 19:10 | 
        И да не факт что функция рабочая после смены движка IE на WebKit     | |||
| 8
    
        Garykom гуру 16.05.19✎ 19:15 | 
        У меня например в 1С:Предприятие 8.3 (8.3.14.1565) так работает прекрасно     | |||
| 9
    
        digitta 16.05.19✎ 19:17 | 
        не выводит сообщение, значит не входит в функцию. платформа у меня та же     | |||
| 10
    
        digitta 16.05.19✎ 19:18 | 
        <!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> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=8"> <style type="text/css"> html { height: 100% } body { height: 100%; margin: 0px; padding: 0px } #map { height: 100% } </style> <script src="https://api-maps.yandex.ru/2.1/?apikey=3ebf705a-b58a-4352-87a4-60f03edd2119&load=package.full&lang=ru_RU"></script> <script src="http://yandex.st/jquery/1.6.4/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> var index = 1; var MyMap, route; var clusterer; var PointArray = []; var noclick = false; ymaps.ready(init) function init() { var myMap = new ymaps.Map('map', { center: [55.753994, 37.622093], zoom: 9 }); //window.addEventListener('load', findAdress('Витебск'); } function findAdress(address) { Alert("Сообщение"); // Поиск координат центра Нижнего Новгорода. ymaps.geocode(address, { /** * Опции запроса * see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/geocode.xml */ // Сортировка результатов от центра окна карты. // boundedBy: myMap.getBounds(), // strictBounds: true, // Вместе с опцией boundedBy будет искать строго внутри области, указанной в boundedBy. // Если нужен только один результат, экономим трафик пользователей. results: 1 }).then(function (res) { // Выбираем первый результат геокодирования. var firstGeoObject = res.geoObjects.get(0), // Координаты геообъекта. coords = firstGeoObject.geometry.getCoordinates(), // Область видимости геообъекта. bounds = firstGeoObject.properties.get('boundedBy'); firstGeoObject.options.set('preset', 'islands#darkBlueDotIconWithCaption'); // Получаем строку с адресом и выводим в иконке геообъекта. firstGeoObject.properties.set('iconCaption', firstGeoObject.getAddressLine()); // Добавляем первый найденный геообъект на карту. myMap.geoObjects.add(firstGeoObject); // Масштабируем карту на область видимости геообъекта. myMap.setBounds(bounds, { // Проверяем наличие тайлов на данном масштабе. checkZoomRange: true }); /** * Если нужно добавить по найденным геокодером координатам метку со своими стилями и контентом балуна, создаем новую метку по координатам найденной и добавляем ее на карту вместо найденной. */ /** var myPlacemark = new ymaps.Placemark(coords, { iconContent: 'моя метка', balloonContent: 'Содержимое балуна <strong>моей метки</strong>' }, { preset: 'islands#violetStretchyIcon' }); myMap.geoObjects.add(myPlacemark); */ }); } </script> </head> <body> <div id="map" style="width:100%; height:100%"></div> <input type="hidden" id="address" name="address" value="Полоцк, проспект Скорины 2"/> <input type="hidden" id="CoordX" name="CoordX" value="0"></input> <input type="hidden" id="CoordY" name="CoordY" value="0"></input> <input type="hidden" id="RouteInfo" name="RouteInfo" value=""></input> <input type="hidden" id="WebClientOperation" name="WebClientOperation" value="0"></input> <input type="hidden" id="WebClient" name="WebClient" onclick="WebClientClick();"></input> </body> </html> | |||
| 11
    
        Garykom гуру 16.05.19✎ 19:19 | 
        Кстати кто в курсе как глянуть в WebKit ошибки JavaScript и загрузки страницы в целом?
 Вот написал вместо function test(ttt){ просто func test(ttt){ // сча на голанг просто перестроился и результат ноль Как бы глянуть то страница нормально сформировалась или нет? | |||
| 12
    
        digitta 16.05.19✎ 19:20 | 
        из 1с вызываю findAdress(address)
 стр = "Витебск"; Элементы.ЯндексКарта.Документ.defaultView.findAdress(стр); | |||
| 13
    
        Garykom гуру 16.05.19✎ 19:23 | 
        Дай код страницы в нормальном виде файлом через обменник какой     | |||
| 14
    
        Garykom гуру 16.05.19✎ 19:24 | 
        (13)+ В смысле весь .html     | |||
| 15
    
        digitta 16.05.19✎ 19:29 | ||||
| 16
    
        Garykom гуру 16.05.19✎ 19:31 | 
        (15) файлы были удалены https://i.paste.pics/7042bab2abdee4951f48f173811c0176.png     | |||
| 17
    
        Garykom гуру 16.05.19✎ 19:33 | ||||
| 18
    
        Garykom гуру 16.05.19✎ 19:33 | 
        (17) +      | |||
| 19
    
        digitta 16.05.19✎ 19:33 | 
        сорри... там одно скачиание указано было... перезалил
 https://dropmefiles.com/laQej | |||
| 20
    
        Garykom гуру 16.05.19✎ 19:33 | 
 | |||
| 21
    
        digitta 16.05.19✎ 19:46 | 
        скачался из файлообменника?     | |||
| 22
    
        Garykom гуру 16.05.19✎ 19:47 | 
        (21) Да и свои добавленные функции даже не отрабатывают.
 Короче надо изучать исходники там походе некое подавление идет или глюки какие то. В пустой html странице или без левых скриптов все пашет. | |||
| 23
    
        digitta 16.05.19✎ 19:51 | 
        пашет (     | |||
| 24
    
        Garykom гуру 16.05.19✎ 20:12 | 
        Короче предложу сразу инициализировать с переданными данными для геокодера.
 
 | |||
| 25
    
        Garykom гуру 16.05.19✎ 20:13 | 
        (24)+ Короче на лету страницу перестраивай и вызывай с новыми текстом html где внутри уже прописано что надо.
 Изврат конечно но что поделать. | |||
| 26
    
        digitta 16.05.19✎ 20:18 | 
        ну так-то работает, но хочется изящного решения. да и разобраться тоже в чем там у меня дело тоже хлчеться - может когда-нибудь снова будет нужно мне или кому-нибудь     | |||
| 27
    
        Garykom гуру 16.05.19✎ 20:20 | 
        Это 1С, это хардкор!     | |||
| 28
    
        Garykom гуру 16.05.19✎ 20:21 | 
        Чем хуже чем в коде прописывать Справочники.Номенклатура.НайтиПоКоду("0001") ? :)     | |||
| 29
    
        digitta 16.05.19✎ 20:23 | 
        не понял     | |||
| 30
    
        Garykom гуру 16.05.19✎ 20:27 | 
        (29) Лишь бы работало как надо и устраивало заказчика, наводить красоту некогда.
 К черту изящество если для этого надо перелопать весь апи от яндекса чтобы понять где разрешить выполнять сторонний код. У меня сча почему то не работает перемещение-перетаскивание мышкой по карте, зафиксировано в одном месте. И я хз что за это отвечает, копаться надо. | |||
| 31
    
        digitta 17.05.19✎ 17:25 | 
        Разобрался: 
 Вызов функции действительно производиться так как вы описали. Но в моем случае её вызов происходил до того как загружалось API ЯндексКарт. Естественно, логика моей функции без загруженного API не отрабатывалась. Спасибо за помощь! | |||
| 32
    
        Garykom гуру 17.05.19✎ 17:34 | 
        (31) А alert то почему не отрабатывает?     | |||
| 33
    
        digitta 17.05.19✎ 22:00 | 
        alert был внутри функции.
 и у меня такое впечатление, что alert вообще не работает в среде webkit | |||
| 34
    
        Garykom гуру 17.05.19✎ 22:01 | 
        (33) На пустом документе замечательно работает я же проверял.     | |||
| 35
    
        Garykom гуру 17.05.19✎ 22:03 | 
        Скорее всего кода загрузки ymaps работает слишком долго и блокирует все прочие вызовы функций.
 Надо бы проверить, свою функцию засунуть раньше чем загрузка ymaps | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |