Имя: Пароль:
1C
1C 7.7
v7: HTML JS 1c 7.7
0 AleksL12
 
27.02.16
16:51
Добрый день.
Ребят , может есть спецы по этой теме. помогите пожалуйста.

Через текст создаю файл хтмл,
Запускаю его:  Браузер.Navigate("file:///"+ИмяШТМЛФайла);
в нем яваскрипт отрабатывает , данные вывожу в хтмле на окно,
все нормально вроде.
А вот как забрать их в 1с 7.7 не знаю. Просто ума не приложу.
Пытаюсь Браузер.Document.getElementsByTagName("div")
, то бишь с тега  div забрать, я его именно туда вывожу.
но там даже длина (то бишь Table.length) = 0, то есть пустым считает.
Еще раз повторюсь, что не чистый скрипт. MSScriptControl.ScriptControl не использую
А именно в хтмле сидит.
На клиентской js не умеет в текстфайлы сохранять. Так бы сохранял в каталог файл  и имел данные оттуда.
Тысяча извенений за сумбурность. Так как с  темой знаком поверхностно.
4 AleksL12
 
27.02.16
17:16
маплю яндекс карты, показываю точки на них. Считаю маршрут, расчитываю расстояние. и хочу забрать например это расстояние  в 1с .
5 Aleksey
 
27.02.16
17:47
6 Garykom
 
гуру
27.02.16
17:49
7 AleksL12
 
27.02.16
17:59
(5) Я в курсе про готовое решение. у меня стартмани нет скачать, иначе б сам не бился об проблему эту. У кого есть возможность скачать, я только за, если подмогнут.
Да я все ж сделал, осталось обратно забрать в 1с ...
8 AleksL12
 
27.02.16
18:00
(6) Это читал уже, там тема обрывается,как раз на самом интересном месте. (или просто без регистрации не дает смотреть дальше 4 страницы)
9 Garykom
 
гуру
27.02.16
18:12
(8) так напиши на JS функции для забирания то?
которые нужный результат будут возвращать

как понял они там по этому же пути и пошли, свой объект-js наваяли
10 BormanMic
 
27.02.16
18:14
Так getElementsByTagName коллекцию возвращает. Обойди её.
Или получай getelementbyid. Оно вернет единственное значение.
11 AleksL12
 
27.02.16
18:41
согласен Браузер.Document.getElementsByTagName("div") коллекцию возвращает
Но ее не обойти так как длина у ней 0 проверял по
Table=Браузер.Document.getElementsByTagName("div");
    dlina=Table.length;
возвращает 0
Или  я что то не так понимаю?
какие методы можно использовать для обхода коллекции?
есть живые примеры шоб прям вернули по тэгу и обошли и шоб все это в 1с 7.7?
где то писали,что каждый элемент коллекции в случае с 1с 7.7
надо явно задавать, но вот мне б примерчик...
12 AleksL12
 
27.02.16
18:49
(9) Дык я из явы браузеру возвращаю её
            document.getElementById(""send1"").innerHTML       = moveList;
              return send1;
дальше уже можно, просто в
хтмуле в див засунутьи показать пользователю:
  <div id=""send1""/>

а вот как в 1с забрать...
13 AleksL12
 
27.02.16
18:56
(10) GetElementByID не отрабатывает.
Вернее отрабатывает, но со странной ошибкой:

Table=Браузер.Document.getElementById("send1");
{C:\ЯНДЕКСМАП.ERT(435)}: Плохой тип переменной
14 BormanMic
 
27.02.16
18:59
А почему так много ковычек? id=""send1"" Может в этом проблема?
15 AleksL12
 
27.02.16
19:02
(14) нет не в этом, здесь все нормально
В хтмуле все ок. И этот тег ПОКАЗЫВАЕТ send1 мою. Это так текст заполняется шоб с расширением хтмулевым записать потом. Если одинарные кавычеи, то 1с не поймет.
16 BormanMic
 
27.02.16
19:14
хз тогда что это. Table в этот момент ещё не определен? может зарезервированное слово. с 7.7 давно не работал.

в 8-ке это так
HTMLДокумент = Элементы.ПолеHTMLДокумента.Документ;    
Параметр = HTMLДокумент.GetElementById(ПредыдущийРаздел);
Параметр.innerHTML = ТекРазделHTML;

и

СписокОбластей = Элементы.ПолеHTMLДокумента.Документ.getElementsByTagName("*");
        Для Каждого Область Из СписокОбластей Цикл
            Если Область.id <> "" Тогда
                ТекID = НайтиПараметрПоID(Область.id);
                Если ТекID тогда
                    Параметр = ДокHTML.getElementByid(Область.id);
                    Если Параметр <> Неопределено Тогда
                        Область.innerHTML = Параметр.innerHTML;
                    КонецЕсли;
                КонецЕсли;                
            КонецЕсли;
            r = 1;
        КонецЦикла;
17 BormanMic
 
27.02.16
19:17
+(16) Попробуй вообще без кавычек. У меня в 8ке
<DIV id=Diagnosis>
HTMLДокумент.GetElementById("Diagnosis") нормально отрабатывается
18 AleksL12
 
27.02.16
19:19
В 8 я сам пробовал. там не надо явно задавать. Там все ок. в 1с 7.7 по другому
19 AleksL12
 
27.02.16
20:09
апну
20 Garykom
 
гуру
27.02.16
20:44
21 Garykom
 
гуру
27.02.16
20:47
(20)+ http://vbmhwb.sourceforge.net/
но как там насчет поддержки версии html и прочих js не в курсе, оно слегка древнее
22 AleksL12
 
27.02.16
21:56
не ,не, я тут еле разобрался , не уводи.
Буду апать раз в 3 часа , пока не придет Ёпрст или ДенисЧ
и не укажет как ТОЧНО вернуть, теми  средствами что есть.)))
23 Garykom
 
гуру
27.02.16
22:07
(22) если глянуть комменты к (5) то там из приведенного кода можно понять интересную вещь

что не 1С из ie данные тягает, а наоборот ie js'ом данные в 1С засовывает по COM

"Object1C.Msg(list);"
24 AleksL12
 
28.02.16
13:06
апаю
25 ADirks
 
29.02.16
08:28
вот есть такой примерчик:  https://yadi.sk/d/xLalq-ZfphWLf
он правда не работает :) чё-то там у них в АПИ поменялось похоже. Но как организовать обратную связь вполне понятно.  См. Object1C, initObject1C()
26 AleksL12
 
29.02.16
10:30
ок, ща посмотрю
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.