Выполняю интеграцию автозаполнения с внешнего сервиса dadata кастомного поля, созданного мной. В приложении заполняется поле, из него забирается значение и записывается стандартным способом в форму сделки для последующего сохранения
//автозаполнение
$("#ddata").suggestions({
token: "my_token",
type: "ADDRESS",
/* Вызывается, когда пользователь выбирает одну из подсказок */
onSelect: function(suggestion) {
var newSuggestion = suggestion.value + '\n' + suggestion.data.region_with_type + '\n' +
suggestion.data.city + '\n' + suggestion.data.street_with_type + '\n' + suggestion.data.metro + '\n'
+ suggestion.data.geo_lat + '\n' + suggestion.data.geo_lon;
$("#ddata").val(newSuggestion);
BX24.placement.call('setValue', $("#ddata").val().split('\n'));
},
}); |
Этот метод позволяет заполнить только одно кастомное поле, то, которое и вызывает данный фрейм.
Но из сервиса dadata я получаю объект со многими данными, и хотелось быть заполнить ими сразу несколько полей, например, адрес - в адрес, метро - в метро и так далее.
Автозаполнение и получение данных из dadata происходит в данном конкретном случае именно при выборе города, то есть во фрейме кастомного поля "город". И хотелось бы прямо из этого фрейма заполнить не только вызвавшее этот фрейм поле сделки "город", но и другие поля. Нужен какой-нибудь метод, аналогичный BX24.placement.call, но заполняющий сразу несколько разных полей в карточке сделки!
Можно, конечно, вызывать в приложении crm.deal.update, но тогда, чтобы увидеть новые данные в заполненных полях, придется перезагрузить карточку crm.