Добрый день. Пытаемся сделать локальное приложение в облаке. Внутри приложения должен быть кастомный тип поля, которое надо добавить в сделку. Поле вроде как добавляется. Но непонятно, как подключается обработчик поля - вместо срабатывания его кода в карточке сделки появляется фрейм с текстом кода обработчика.
Подскажите, каким образом нужно сделать, чтобы кастомный тип поля выводил нужный нам инпут, причем это должен быть инпут с кастомным кодом, потому что мы хотим сделать поле с автозаполнением из внешнего источника. Поэтому нам и нужен кастомный тип поля, потому что простые типы стандартные этого сделать не могут.
Текст файла 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>
|

Приложение полностью в облаке, то есть обработчик мы тоже загружаем в приложение и потом указываем к нему путь.
Что мы делаем не так, и как сделать правильно?