ПолеHTMLДокумента обращение к 1С #625748


#0 by Gsoom2010
Добрый день! Вопрос: как из кода HTMLДокумента вызвать процедуру 1С? Нашёл только как из 1С вызвать функцию JavaScript: , но ещё бы понять как из скажем того же JavaScript вызвать процедуру 1С передав в неё данные.
#1 by mikecool
может как то через владельца документа
#2 by Юрий Лазаренко
У поля HTML есть событие ПриНажатии. Отлавливай его, смотри кто и с какими параметрами вызвал и запускай соответствующие процедуры. Если процедура 1С должна вызываться не при нажатии на поле HTML, а при других условиях, то попробуй генерить событие onClick яваскриптом (сам так делать не пробовал, но по идее должно сработать).
#3 by Stim
можно нескромный вопрос - почему функцию 1С нельзя выполнить в той среде, все обычно выполняются все функции 1С? из яваскрипт получить параметры и выполнить функцию в модуле?
#4 by Юрий Лазаренко
Кто сказал что нельзя?
#5 by Stim
автору видимо нельзя это сделать, раз он хочет одеть штаны через голову
#6 by Юрий Лазаренко
Да нормально он все делает вроде. Из ХТМЛ дергает базу, получает данные из нее и помещает обратно.
#7 by Юрий Лазаренко
Или я что-то не понял?
#8 by Stim
нет. насколько я понял, "HTMLДокумент" - это термин и объект 1С, следовательно автор хочет в какой-то обработке, в которой есть поле HTMLДокумента  - выполнить код
#9 by Dimasik2007
Я делал так - получал событие onClick (его можно вызвать из js), и парсил ссылку (в которую можно запихать любые свои данные например в base-64 виде) В примере в ссылке есть номер документа, по клику ищу подобные номера в базе и открываю на экран. [/code]
#10 by Юрий Лазаренко
Ну да. А что плохого в таком подходе?
#11 by Dimasik2007
Далее, если нужно чтобы процедура что-то получила и отрисовала на страничке, можно сделать следующее. 1. Сформировать требуемые параметры (например массив цифр). 2. Дергать функцию eval, в которой можно, например, добавлять в массив переменной js добавлять данные. 3. Дергать функцию eval, в которой будет вызваться соответствующая функция скрипта, выполняющая отрисовку или что-то там еще.
#12 by Dimasik2007
Так делал место логиста, когда по клику в карте на метке из 1с подгружались данные о заказе, формировался баллун с описанием и дополнительным функционалом (открыть заказ, перенести заказ, указать водителя и тп).
#13 by Gsoom2010
Я как раз и связываю самописную транспортную базу с Яндексом, мне нужно чтобы при работе с картой вносились изменения в базу (дёргались из JS процедуры 1С с соответствующими параметрами). Вывести точки на карту не вызвало проблем, вызывать из 1С JS процедуры тоже не проблема, а вот из JS вызывать 1С процедуры оказалось люто бешеным делом...
#14 by Gsoom2010
а покажи пример JS кода где вызывается onclick
#15 by Gsoom2010
Возможно будет проще понять если опишу конкретную задачу: 1. В обработке получаю адреса по доставкам. 2. Генерится код HTML с точками на Яндекс карте по этим адресам. 3. Из самой обработки можно управлять отображением точек вызывая функции JS. 4. А вот дальше никак: пользователь жмёт на карте на точку, балун открывается и пользователь видит кнопочку "Отменить заявку" и мне нужно по нажатии на эту кнопочку изменить данные в 1С соответственно (вызвать процедуру удаления заявки из 1С).
#16 by Asmody
в JavaScript можно вызвать document.fireEvent, в котором вызвать одно из событий, которое умеет отлавливать 1Ска. данные можно передавать в любом элементе DOM или создавать свой, специально для этого
#17 by Dimasik2007
Да пожалуйста,
#18 by Dimasik2007
Это вариант с онкликом, вариант более предпочителен, так как получается нативными средствами вызов разнообразных событий. В моем решение используется фэйковая невидимая гиперссылка, в которую JS скрит записывет текст вызываемого обработчика, потом вызывает ее свойство Клик, обработчик срабатывает в 1С, далее зная текст (в примере генерируется вызов функции), далее "Выполнить" и все, дело в шляпе.
#19 by Dimasik2007
Не видел текста, такое решение предлагаю. Адреса запихиваете в массив, в баллуне на кнопке вешаете обработчик наподобие примере, который будет передавать данные например УДАЛИТЬ, 1023), т.е. удалить заявку № 1023, далее по указанный методе обрабатываете, потом вызываете функцию JS которая найдет и удалит баллун.
#20 by Dimasik2007
не забудьте только числа преобразовывать в формат без группировок
#21 by Dimasik2007
Самые ранние демки выглядели так
#22 by Юрий Лазаренко
Туплю наверное. Чем твой вариант с онкликом по невидимой ссылке хуже fireevent'а, вызванного для этой же ссылки или другого элемента?
#23 by Asmody
да ничем, особо. только онклик будет ловиться при каждом клике на док и надо разруливать то оно или нет, а через fireEvent можно разные события (типа ondataset…) задействовать под разные дела
#24 by Юрий Лазаренко
Ферштейн
#25 by Dimasik2007
Тем более, когда клепал, не знал про эту функцию. Велосипеды они такие велосипеды.
#26 by Dimasik2007
А пример про создание DOM кинуть можете?
#27 by Gsoom2010
Идею в принципе понял, у вас нет примера реализации с созданием DOM?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С