Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) АктивИкс ie (число прочтений - 9560 )
TeNTeN
Junior Member
**
Отсутствует


:)

Сообщений: 27
Зарегистрирован: 23. Ноября 2006
АктивИкс ie
24. Ноября 2006 :: 20:48
Печать  
1cv7s.exe 7.70.0.20, 1Cpp.dll 2.0.3.2, ie 6.0.2900.2180, ось ХРень.
Хочу ловить ссылки в 1С из ослика (Internet Explorer) не получается.

Код:

Перем Браузер,АктивИкс;

Процедура АктивИксИЕ_BeforeNavigate2(объект,урл,флаги,фрейм,пост,заголовки,отмена)
КонецПроцедуры    // АктивИксИЕ_BeforeNavigate2

Процедура ПослеОткрытия()
     АтрибутФормы=СоздатьОбъект("АтрибутФормы");
     АтрибутФормы.УстановитьАтрибут(Форма,"АктивИксИЕ");
     АктивИкс=СоздатьОбъект("АктивИкс");
     АтрибутФормы.СоздатьЭлементУправления(АктивИкс);
     АктивИкс.СоздатьЭУ("Shell.Explorer.2");
     Браузер=АктивИкс.Объект;
     АктивИкс.УстановитьФокус();
     Браузер.Navigate("http://www.mail.ru");
КонецПроцедуры // ПослеОткрытия

где АктивИксИЕ это элемент диалога, тип текст.

В процедуре АктивИксИЕ_BeforeNavigate2() не могу отловить урл, все параметры процедуры пустые, окромя Объект. Флаг стандартной обработки работает, то бишь ежели задать в данной процедуре
отмена=-1;
тады осик не переходит по ссылке, значит что-то все-таки работает Улыбка
Суть вопроса как отловить урл.
Мельком глаза видел что вроде через ява скрипты ловят, но особо не разбирался.
  
Наверх
 
IP записан
 
TeNTeN
Junior Member
**
Отсутствует


:)

Сообщений: 27
Зарегистрирован: 23. Ноября 2006
Re: АктивИкс ie
Ответ #1 - 29. Ноября 2006 :: 15:09
Печать  
Даже странно.
Не делал никто перехват ссылок?
  
Наверх
 
IP записан
 
Shurik71
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 33
Зарегистрирован: 20. Мая 2006
Re: АктивИкс ie
Ответ #2 - 30. Ноября 2006 :: 22:05
Печать  
TeNTeN писал(а) 24. Ноября 2006 :: 20:48:
1cv7s.exe 7.70.0.20, 1Cpp.dll 2.0.3.2, ie 6.0.2900.2180, ось ХРень.
Хочу ловить ссылки в 1С из ослика (Internet Explorer) не получается.


Если я правильно понял вопрос, то у меня работает так (справка к конфе)

Код
Выбрать все
    
Процедура ие_BeforeNavigate2(пара1="",пара2="",пара3="",пара4="",пара5="",пара6="",пара7 = "*",пара8="*")
    Если Лев(пара2,6)="epo://" Тогда
        //это  псевдо-ссылка на объект конфигурации
        Действие = Сред(пара2,7,СтрДлина(пара2)-7);
        ОткрытьФорму(Действие);
        ФлагНазад=1;
    КонецЕсли;
КонецПроцедуры

//------------------------------------------

Процедура ие_NavigateComplete2()
    Если ФлагНазад=1 Тогда
        ФлагНазад=0;
        www_GoBack();
    КонецЕсли;
КонецПроцедуры

//-----------------------------------------

Процедура ПослеОткрытия()

     АтрФормы = СоздатьОбъект("АтрибутФормы");
     АтрФормы.УстановитьАтрибут(Форма,"ие");
     Активх=СоздатьОбъект("АктивИкс");
     АтрФормы.СоздатьЭлементУправления(Активх);
     Активх.СоздатьЭУ("Shell.Explorer.2");  
     Активх.УстановитьФокус();  
     SetBrowserWindow() ;
     ие = Активх.Объект;
     www_GoURL();

КонецПроцедуры          


 




Явно через одно место, но в отличие от прочих вариантов работает.
  
Наверх
 
IP записан
 
TeNTeN
Junior Member
**
Отсутствует


:)

Сообщений: 27
Зарегистрирован: 23. Ноября 2006
Re: АктивИкс ie
Ответ #3 - 04. Декабря 2006 :: 08:02
Печать  
2Shurik71 Так ты именно через то и делаешь.
Я так понимаю, что при вызове процедуры  ие_BeforeNavigate2() ты "образмериваешь" (пара1="") параметры этой самой процедуры и оно после этого работает.
Хм... интересно. Доберусь до 1С проверю.
« Последняя редакция: 04. Декабря 2006 :: 11:10 - TeNTeN »  
Наверх
 
IP записан
 
TeNTeN
Junior Member
**
Отсутствует


:)

Сообщений: 27
Зарегистрирован: 23. Ноября 2006
Re: АктивИкс ie
Ответ #4 - 04. Декабря 2006 :: 11:18
Печать  
Не получилось.
Ежели не трудно, скинь рабочую обработку/конфигурацию.
  
Наверх
 
IP записан
 
Shurik71
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 33
Зарегистрирован: 20. Мая 2006
Re: АктивИкс ie
Ответ #5 - 04. Декабря 2006 :: 18:10
Печать  
Цитата:
Ежели не трудно, скинь рабочую обработку/конфигурацию.

Куда отправлять - не ясно...
Попробую прикрепить сюда.
Только она жутко непричесанная...

Да, работает у меня на версии 2.0.2.2.
На более поздней вроде бы тоже работает, но точно не помню, а сейчас проверить не могу.
  

GetHelp.zip ( 8 KB | Загрузки )
Наверх
 
IP записан
 
TeNTeN
Junior Member
**
Отсутствует


:)

Сообщений: 27
Зарегистрирован: 23. Ноября 2006
Re: АктивИкс ie
Ответ #6 - 05. Декабря 2006 :: 08:57
Печать  
Shurik71 писал(а) 04. Декабря 2006 :: 18:10:
Да, работает у меня на версии 2.0.2.2.
На более поздней вроде бы тоже работает, но точно не помню, а сейчас проверить не могу.

Старанно, запустил твою обработку, все равно не работает.
В процедуре ие_BeforeNavigate2() параметр пара2 (урл) пустое значение.

Попробовал на ХРени, на винтукее (w2k server, sp4). На трех версиях 1cpp.dll: 2.0.2.2, 2.0.3.1, 2.0.3.2.

Может дело в самом ослике (ie 6.0.2900.2180), у тебя какая версия?
  
Наверх
 
IP записан
 
Shurik71
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 33
Зарегистрирован: 20. Мая 2006
Re: АктивИкс ie
Ответ #7 - 05. Декабря 2006 :: 09:19
Печать  
Сейчас работает у меня на ИЕ 7.0.5730.11;
до этого работала на ИЕ 6, с последними обновлениями на разных машинах (везде хр sp2)
  
Наверх
 
IP записан
 
Shurik71
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 33
Зарегистрирован: 20. Мая 2006
Re: АктивИкс ie
Ответ #8 - 05. Декабря 2006 :: 09:27
Печать  
Только что проверил на другой машине на ИЕ 6.0.2900.2180 - работает.
  
Наверх
 
IP записан
 
Shurik71
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 33
Зарегистрирован: 20. Мая 2006
Re: АктивИкс ie
Ответ #9 - 05. Декабря 2006 :: 09:32
Печать  
Хтмл-ки вообще вордом делались..

Кусок кода help.htm:

Код
Выбрать все
<p class=MsoNormal><b>Отчеты:</b></p>
<p class=MsoNormal> <span lang=EN-US><a href="epo://Отчет.ОтчетПоДискамИТС"><span lang=RU>Отчет по дискам ИТС</span></a></span></p>
</div>
</br>
<h3>Описание:</h3>
<p class=MsoNormal><span lang=EN-US><a href="epo-its.htm"><span lang=RU> Работа с дисками ИТС</span></a></span></p>
 

  
Наверх
 
IP записан
 
TeNTeN
Junior Member
**
Отсутствует


:)

Сообщений: 27
Зарегистрирован: 23. Ноября 2006
Re: АктивИкс ie
Ответ #10 - 05. Декабря 2006 :: 09:47
Печать  
Shurik71 писал(а) 05. Декабря 2006 :: 09:32:
Хтмл-ки вообще вордом делались..

Я как свой хтмл код писал, так и с майл.ру к примеру брал.
Щас руки дойдут твой код попробую Улыбка
Ежели не сложно скинь весь хтмл код начиная с тега <body>
  
Наверх
 
IP записан
 
Shurik71
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 33
Зарегистрирован: 20. Мая 2006
Re: АктивИкс ie
Ответ #11 - 05. Декабря 2006 :: 10:00
Печать  
Вот весь файл
  

help.zip ( 0 KB | Загрузки )
Наверх
 
IP записан
 
TeNTeN
Junior Member
**
Отсутствует


:)

Сообщений: 27
Зарегистрирован: 23. Ноября 2006
Re: АктивИкс ie
Ответ #12 - 05. Декабря 2006 :: 10:04
Печать  
Shurik71 писал(а) 05. Декабря 2006 :: 10:00:
Вот весь файл

Не работает...
Будем думать дальше, где рыть.
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: АктивИкс ie
Ответ #13 - 06. Декабря 2006 :: 06:49
Печать  
У меня работает на WinXP SP2, ie 6.0.2900.2180, 1C r25 SQL.
Корректно работает следующий
Код
Выбрать все
Перем гФорма,Браузер;

Процедура ПриОткрытии()
	Попытка
		гФорма=СоздатьОбъект("СервисРасшФормы");
		гФорма.ЗагрузитьМодуль(); //ПослеОткрытия
	Исключение
	    гФорма=СоздатьОбъект("Форма");
	    гФорма.УстановитьФорму(Форма); //ФормаПриСоздании
	КонецПопытки;
КонецПроцедуры	// ПриОткрытии

Процедура ПослеОткрытия()
	Браузер=СоздатьОбъект("АктивИкс");
	Браузер.УстановитьАтрибут(Форма,"ФБраузер");
	Браузер.СоздатьЭУ("Shell.Explorer.2");
	Браузер.Объект.Navigate("http://www.1cpp.ru");
КонецПроцедуры

Процедура ФормаПриСоздании()
	ПослеОткрытия();
КонецПроцедуры	// ФормаПриСоздании

Процедура ФБраузер_BeforeNavigate2(объект,урл,флаги,фрейм,пост,заголовки,отмена)
	Сообщить(урл);
	отмена=-1;
КонецПроцедуры	// ФБраузер_BeforeNavigate2 


т.е. урл честно сообщается и навигация отменяется.
Работает на ночных сборках 2.0.3.2 и 2.5.0.0.

Может дело в том, что у тебя 20-й релиз движка.
  

ienavigatetest.ert ( 7 KB | Загрузки )

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
TeNTeN
Junior Member
**
Отсутствует


:)

Сообщений: 27
Зарегистрирован: 23. Ноября 2006
Re: АктивИкс ie
Ответ #14 - 06. Декабря 2006 :: 06:53
Печать  
steban писал(а) 06. Декабря 2006 :: 06:49:
Может дело в том, что у тебя 20-й релиз движка.

Весьма вероятно. Уже просто не на что грешить кроме релиза 1С.

2Shurik71 У тебя какой релиз 1Cv77?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать