#0
by Elizir
Доброго дня. Возникла такая проблема, а точнее вопросы. На форме есть поле HTML документа, в котором присутствуют пара JavaScript функций. Пытаюсь наладить связь между ними и 1С, форум уже прошелестил, осталось следующей непонятное: 1) Вызвать функцию JS можно двумя способами, так: и так: Элементы.ПолеHTMLДокумента.Документ.parentWindow.eval("testJS"); Вызываемая функция должна возвращать массив, например. Так вот, второй вариант возвращает массив в виде COM-объекта (правда ключи строковые), а первый возвращает просто COM-объект без элементов (есть подозрение, что он ничего не возвращает, а в переменную записывается сама функция). Собственно, отсюда вопрос, где подробней можно узнать о разнице в вызовах? Ведь первый вариант предпочтителен, т.к. позволяет передавать не только строковой параметр в функцию. 2) Из предыдущего вытекает еще любопытство. Обратная ситуация, передаем массив в функцию JS (прямым вызовом, разумеется). Предполагал, что ошибка будет (откуда JS знать тип массива 1С), но нет, передалось, более того, в JS с ним можно работать, используя функции 1С, т.е. Добавить, Получить и т.д., не работает только индексация. Как так? 3) И, наконец, самое загадочное - вызов функций 1С из JS. Для обычных форм советовали использовать в JS fireEvent, вызвав им событие, которое может поймать 1С. Но на управляемых формах есть только "ПриИзменении", "ПриНажатии" и "ДокументСформирован". Как тут быть? Не очень надеюсь, но, конечно, хотелось бы узнать литературу, в которой это было хоть как-то затронуто. :)
#1
by Asmody
почитать это, пожалуй, только в msdn, про компонент WebBrowser, да и то не всё. Ибо то, как в 1ске внутре реализована работа с ним знают только в 1С,а остальные догадывается. Методом тыка
#3
by Elizir
Нда, обидно. Для передачи данных туда-сюда еще глобальные переменные могут сгодиться, но некрасиво... В любом случае, третий вопрос остается открытым, не понимаю, почему из управляемых форм вырезали обработчики событий html?
#6
by Elizir
Видимо, никак. :) Выход, получается, один. Поскольку управляемая форма может отлавливать нажатие, т.е. onclick, это событие, вызываемое fireEvent'ом - единственная обратная связь от JS к 1С. Остается только узнать, кто, собственно, нажимал, пользователь или JS. Всем спасибо!
#7
by vde69
надо в 1с вызвать ПодключитьОбработчик(обработчикВМодуле1с) будет работать в толстом клиенте, в веб и тонком - не проверял
#8
by orefkov
Скорее всего первый вызов тебе возвращает javascript'овский массив, который Array. И с ним одинэсина (да и не только она) не может работать. Я делал так: А в самом скрипте: function testJS(res) { res.Add res.Add }
#9
by orefkov
По второму вопросу. Так как с 1Ской можно работать через COM, ее движок умеет при передаче объектов 1С через COM "оборачивать" их в COM-объект. И обратно соответственно. Даже функции такая торчат наружу из core82.dll: valueToVariant и variantToValue. В скриптах к снегопату очень активно используются 1Сные объекты - от ТаблицЗначений до Метаданные.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- В 8.0 при вводе в поле ввода неправильн. значения фокус не остается в этом поле
- Как загрузить html страничку в поле html документа на форме?
- 8.2 поле HTML документа и поле Форматированный текст
- Как в табличном поле программно добавить колонку вида Поле выбора
- СКД. Вычисляемое поле в вычисляемом поле
- 82 Самописная. Как в поле построителя отчета поместить вычисляемое поле
- Поле HTML документа в УП, как получить html код странички
- v8: javascript в поле html-документа срабатывает 2 раза
- Поле отбора СКД вывести в отдельное поле формы
- Передать управление из JavaScript в 1С (с передачей параметра) в поле HTML
- Как подгрузить javascript после добавления ссылки на него AJAX-ом
- javascript в Поле HTML документа. Видимость функций javascript.
В этой группе 1С
- Вопрос по СКД. Объединяются колонки
- Кто сколько по времени обновлял рабочую базу
- Знатоки УНФ, Номенклатурные группы, их роль в данной конфе?
- Выбор нескольких элементов справочника
- OFF CryptoPro - можно использовать на нескольких ПК одновременно? Как установить
- Контроль БУ-(НУ+ПР+ВР) в БП 2.0 по счету 90
- v7: Можно ли из арх.копии восстановить только 1 справочник
- Право вывода информации в УТ 10.3
- в консоле работает а в коде нет
- Конструктор не обнаружен (ХранилищеЗначения)
- фильтрация в дереве значений, управляемая форма. вопрос оптимизации
- После загрузки из БП2.0 в УТ11 Реализаций в документах не проставляется договор.
- Вопрос по УПП (начисление заработной платы)
- УПП Закрытие 20 счета по разным субсчетам
- Excel -> xml данные обрезались, почему?
- Не печатаются колонтитулы
- Выгрузка из 1С в csv формат
- Ошибка в операторе препроцессора или #Если Клиент Тогда . Что-то не понимаю...
- Скопировать файл сервером в нужном месте из временного хранилища?
- Подскажите. Перенос остатков по ПФР из БП в ЗУП (по сотрудникам).