Чистка данных в ФИО через dadata. Подключение к Dadata API. Коррекция ввода данных человека
Впишите ФИО в первое поле и смените фокус - остальные поля подгрузятся автоматически на основе данных dadata
Dadata накладывает лимит (возможно форма не будет выдавать результата из-за превышения лимита API)
Как реализовать
1. Создаем исходящий метод API dadataFIO (формат JSON, метод POST).
Request процедура:
CREATE PROCEDURE [dbo].[api_dadataFIO_request]
@parameters ExtendedDictionaryParameter READONLY, -- входящие параметры для внутренней обработки (используйте Key, Value2)
@username nvarchar(32) -- текущий пользователь.
AS
BEGIN
declare @val nvarchar(max) = ''
select @val = Value2 from @parameters where [Key]='val'
-- SELECT 1 Msg, Result, Url (адрес, куда будет идти запрос)
select '' Msg, 1 Result, 'https://cleaner.dadata.ru/api/v1/clean/name' Url --, 'application/json' ContentType
-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
select 'Authorization' name, 'Token '+ '__________API TOKEN ________________' value, 'header' [type] -- form (в форме передается), header (в http headers), get запросы передавайте прямо в URL
union
select 'X-Secret' name, '____________SECRET KEY _________________' value, 'header' [type] -- form (в форме передается), header (в http headers), get запросы передавайте прямо в URL
union
select 'json' name, '["'+@val+'"]' value, 'json' [type] -- form (в форме передается), header (в http headers), get запросы передавайте прямо в URL
END
Response процедура без изменений:
CREATE PROCEDURE [dbo].[api_dadataFIO_response]
@response nvarchar(max),
@parameters ExtendedDictionaryParameter READONLY,
@username nvarchar(32)
AS
BEGIN
-- SELECT 1
select '' Msg, 1 Result, @response Response
END
2. Размещаем на странице элементы:
<input type="text" class="form-control as-dadataFio" value="Сергей Иванович Маховико">
<input type="text" class="form-control genitiveFIO" value="" placeholder="Кого">
<input type="text" class="form-control dativeFIO" value="" placeholder="Кому">
<input type="text" class="form-control ablativeFIO" value="Кем">
<input type="text" class="form-control surnameFIO" value="" placeholder="Фамилия">
<input type="text" class="form-control nameFIO" value="" placeholder="Имя">
<input type="text" class="form-control patronymicFIO" value="" placeholder="Отчество">
<input type="text" class="form-control genderFIO" value="" placeholder="Пол">
3. Создаем JS с Request JS:
<script>
$(function(){
$(document).on('change', '.as-dadataFio', function (e) {
var el = $(this);
var val = $(this).val();
if(!val) return;
as.sys.request("dadata", "fio", {
data: { val: val },
onSuccess: function (data) {
try{
console.log("Data from RequestJS", data)
var s = JSON.parse(data.additionalData);
var items = s[0].items;
console.log("items", items);
for(var i = 0; i<items.length;i++){
console.log("items[i]", items[i])
if(items[i].key =='response'){
var apiInfo = JSON.parse(items[i].value2)[0];
console.log("apiInfo", apiInfo)
$('.genitiveFIO').val(apiInfo.result_genitive);
$('.dativeFIO').val(apiInfo.result_dative);
$('.ablativeFIO').val(apiInfo.result_ablative);
$('.surnameFIO').val(apiInfo.surname);
$('.nameFIO').val(apiInfo.name);
$('.patronymicFIO').val(apiInfo.patronymic);
$('.genderFIO').val(apiInfo.gender);
}
}
}catch(ex){
}
}
});
});
});
</script>
4. Создаем процедуру-обработчик для RequestJS:
create or alter PROCEDURE [dbo].[request_dadata_fio]
@parameters ExtendedDictionaryParameter READONLY, -- or ExtendedDictionaryParameter
@username nvarchar(32)
AS
BEGIN
declare @val nvarchar(max) = ''
select @val = isnull(Value2, Value) from @parameters where [Key]='val'
-- SELECT 1 Msg, Result
select 'OK' Msg, 1 Result
-- SELECT 2 Основные данные в виде произвольной таблицы
select 1 t1
-- SELECT 3 Внешние действия
select 'apirequest' type,
'dadataFIO' code,
'val' p1_name, @val p1_value
END
Другие демостенды
— Всплывающее окно на сайте (popover форма на сайте)— Получение данных юридического лица по БИК
— Поиск компании через Dadata Подсказки. Получение информации о компании через API
— Dadata suggestions - примеры подсказок через поле формы типа dadata
Что есть в базе знаний по этой теме
— Получение данных контрагента по ИНН— Страницы. Как сделать мастер описания функционала страницы
— Как сделать сортировку в таблице
— Как увеличить размер подгружаемых файлов (как загружать большие файлы)
— Внедрение подсказок dadata на сайт
— Получение данных о контрагенте - интеграция ЗаЧестныйБизнес
Последние обновления
Интеграции 24.11.2025
Разное 24.11.2025
Форма 15.11.2025
Визуализация 02.11.2025
Таблица 08.10.2025
Форма 26.09.2025
Таблица 23.09.2025
Разное 23.08.2025
Таблица 21.08.2025
Форма 20.08.2025
Таблица 18.08.2025
Таблица 21.06.2025
Форма 07.06.2025
Форма 29.03.2025
Форма 17.02.2025
Файлы и документы 10.01.2025
Форма 01.11.2024
Форма 23.10.2024
SQL-инструмент для создания личных кабинетов на сайте
Платформа Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки
Это быстрое внесение изменений
по ходу эксплуатации программы
Это современный интерфейс
полная адаптация под мобильные устройства