Добрый день. Пытаемся сделать локальное приложение в облаке. Внутри приложения должен быть кастомный тип поля, которое надо добавить в сделку. Поле вроде как добавляется. Но непонятно, как подключается обработчик поля - вместо срабатывания его кода в карточке сделки появляется фрейм с текстом кода обработчика.
Подскажите, каким образом нужно сделать, чтобы кастомный тип поля выводил нужный нам инпут, причем это должен быть инпут с кастомным кодом, потому что мы хотим сделать поле с автозаполнением из внешнего источника. Поэтому нам и нужен кастомный тип поля, потому что простые типы стандартные этого сделать не могут.
Текст файла index.html приложения:
В самом обработчике пока что простой html, мы еще не писали там ничего, так как хотели посмотреть, что получится. И получилось, что вывелся текст кода обработчика. А ведь мы хотели, чтобы в карточку попадал инпут, в котором мы потом своим кодом JS добавили автозаполнение данными - адресами со стороннего сервиса. Вот так это выглядит сейчас
Приложение полностью в облаке, то есть обработчик мы тоже загружаем в приложение и потом указываем к нему путь.
Что мы делаем не так, и как сделать правильно?
Подскажите, каким образом нужно сделать, чтобы кастомный тип поля выводил нужный нам инпут, причем это должен быть инпут с кастомным кодом, потому что мы хотим сделать поле с автозаполнением из внешнего источника. Поэтому нам и нужен кастомный тип поля, потому что простые типы стандартные этого сделать не могут.
Текст файла index.html приложения:
Код |
---|
<!DO CTYPE html> <ht ml> <head> <met a http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <li nk rel="stylesheet" href="style.css"/> <sc ript type="text/javascript" src="//api.bitrix24.com/api/v1/"></sc ript> <sc ript> function installHandler() { BX24.callMethod( 'userfieldtype.add', { USER_TYPE_ID: 'ddata_list', HANDLER:'https://мой_адрес_в_облаке/handler.php', TITLE: 'Ddata autofilled type', DESCRIPTION:'List with autofilling from ddata' } ); } function installField() { BX24.callMethod( "crm.deal.userfield.add", { fields: { "FIELD_NAME": "address_ddata", "EDIT_FORM_LABEL": "Адрес_ddata", "LIST_COLUMN_LABEL": "Адрес_ddata", "USER_TYPE_ID": "ddata_list", "XML_ID": "DDATA_LIST", "SETTINGS": { "DEFAULT_VALUE": "Начните заполнять!" } } }, function(result) { if(result.error()) console.error(result.error()); else console.dir(result.data()); } ); } function deleteHandler() { BX24.callMethod( 'userfieldtype.delete', { USER_TYPE_ID: 'ddata_list' } ); BX24.callMethod( 'userfieldtype.list', {}, function(result) { console.log(result.data()); } ); } </sc ript> </head> <body> <div class="main-wrap"> <a href="jav * ascript:void(0)" oncl ick="installHandler();">Установить обработчик кастомного типа поля</a> <br> <a href="jav * ascript:void(0)" oncl ick="installField();">Добавить кастомное поле для сделки</a> <br> <a href="jav * ascript:void(0)" oncl ick="deleteHandler();">Удалить обработчик кастомного поля сделки</a> </div> </body> </html> |
Приложение полностью в облаке, то есть обработчик мы тоже загружаем в приложение и потом указываем к нему путь.
Что мы делаем не так, и как сделать правильно?