Имя: Пароль:
1C
1С v8
Передать управление из JavaScript в 1С (с передачей параметра) в поле HTML
,
0 artist
 
09.09.13
14:16
Дано: Управляемая форма, на ней поле HTML-документа.
Имеем простенький скрипт на jQuery (в макете):

<script>
  $(function() {
    $("#draggable" ).draggable({
          stop: function( event, ui ) {
              alert("Блок был перетащен");
          }
    });
  });
</script>
<div id="draggable" class="ui-widget-content">
  <p>Блок перетаскивания</p>
</div>

Собственно вопрос, как вместо яваскриптовского алерта передать управление в 1С, желательно с передачей каких-нибудь параметров.

Попробовал написать
document.fireEvent("onClick");

и отловить это событие в ПолеХТМЛПриНажатии(...).
Впринципе, пока мы только перетаскиваем - всё работает, но непонятно как передать какой-нибудь параметр.

При этом если тот же скрипт запустить в фаерфоксе он ругается, что fireEvent не является функцией...
1 Asmody
 
09.09.13
14:26
вот тебе основа для размышлений:

Процедура ПриОткрытии()
    html="<button onclick=""document.cookie='';"">ТЫЦ</button>";
    ЭлементыФормы.ПолеHTMLДокумента1.УстановитьТекст(html);
КонецПроцедуры

Процедура ПолеHTMLДокумента1onpropertychange(Элемент, pEvtObj)
    Сообщить("> "+pEvtObj.propertyName);    
КонецПроцедуры
2 ИС-2
 
naïve
09.09.13
14:28
посмотри на инфостаре обработки для работы с яндекс-картами
3 artist
 
09.09.13
14:28
А как вызывается ПолеHTMLДокумента1onpropertychange?
4 ИС-2
 
naïve
09.09.13
14:28
идет работа с JS
5 artist
 
09.09.13
14:28
(2)Нету у меня возможности качать с инфостарта :(
6 artist
 
09.09.13
14:31
(1)Это наверно событие поля HTML для обычных форм?
в управляемых формах такого не наблюдаю, есть только:
ПриИзменении
ДокументСформирован
ПриНажатии

При этом, ни одно событие на срабатывает при перетаскивании блока.
7 artist
 
09.09.13
14:44
Попробовал так:

stop: function( event, ui ) {
              document.cookie = "";
              document.cookie = "userName=Vasya";
          }

Событие ПолеХТМЛПриИзменении() НЕ вызывается :(
8 artist
 
09.09.13
15:00
Как-нибудь кроме dockument.fireEvent("onClick") можно 1Ску заставить отловить событие из JS в управляемых формах?
9 artist
 
09.09.13
15:06
Странно... resizable() само вызывает 1Совское событие ПриНажатии(), а вот draggable() нет...
То-ли привет мелкомягким, то-ли разработчикам jquery
10 sikuda
 
09.09.13
15:08
(8) К сожалению пока не нашел.

Если <div id='paper'> - контейнер
var paper = document.getElementById("paper");
paper.IDtypeEvent = new Object();
paper.IDtypeEvent.type = 'up';
paper.click();
11 sikuda
 
09.09.13
15:09
Со стoроны 1С ДанныеСобытия.Element.IDtypeEvent.type = 'up';
12 artist
 
09.09.13
15:40
(10)Ага, похоже то что нужно:

$("#draggable" ).draggable({
        stop: function( event, ui ) {            
            this.myParams = new Object();
            this.myParams.param1 = 1;
            this.click();
        }
    });

И потом в 1С в ПриНажатии вытаскиваем это через ДанныеСобытия.Element.myParams.param1

Ну а дальше дело техники :)))