Skip to content

Instantly share code, notes, and snippets.

@nalgeon
Last active Sep 9, 2022
Embed
What would you like to do?
Пример работы с подсказками DaData в Google Taблицах

Как подключить скрипт к Гугл-таблице:

  1. Открыть таблицу.
  2. В меню выбрать Расширения > Apps Script
  3. Вставить код из файла suggest-google-sheets.js
  4. Вместо ВАШ_API_КЛЮЧ указать API-ключ из личного кабинета (https://dadata.ru/profile/#info)
  5. Сохранить.
  6. В тулбаре выбрать функцию guessParty и нажать на кнопку Выполнить.
  7. Гугл запросит «разрешения на доступ к вашим данным». Нажать «проверить разрешения», выбрать ваш гугл-аккаунт.
  8. Если появится окно «Эксперты Google не проверяли это приложение» — нажать на «Дополнительные настройки», затем «Перейти на страницу... (небезопасно)».
  9. Нажать на «Разрешить».
  10. Убедиться, что в журнале выполнения написано «Выполнение завершено» и нет ошибок.
  11. Вернуться к таблице.
  12. Указать в ячейке ИНН компании. Например, в ячейке A1 указать 7719402047.
  13. В другой ячейке вызвать функцию guessParty. Например, в ячейчке A2 указать =guessParty(A1)
  14. Увидите результат: название, ОГРН, ИНН, КПП, ОКВЭД и адрес компании.
// Замените на свой API-ключ из личного кабинета (https://dadata.ru/profile/#info)
var API_KEY = "ВАШ_API_КЛЮЧ";
/***
/* Не меняйте код ниже этой строчки
***/
var FORMATTERS = {
party: formatParty,
bank: formatBank
}
function formatParty(suggestion) {
var party = suggestion.data;
return [
["Название", party.name.short_with_opf],
["ОГРН", party.ogrn],
["ИНН", party.inn],
["КПП", party.kpp],
["ОКВЭД", party.okved],
["Дата регистрации", party.state.registration_date],
["Адрес", party.address.value]
];
}
function formatBank(suggestion) {
var bank = suggestion.data;
return [
["Название", bank.name.payment],
["БИК", bank.bic],
["SWIFT", bank.swift],
["Адрес", bank.address.value]
];
}
function guessParty(query) {
return guess("party", query);
}
function guessBank(query) {
return guess("bank", query);
}
function guess(type, query) {
if (API_KEY === "ВАШ_API_КЛЮЧ") {
return "Укажите ваш API-ключ в переменной API_KEY";
}
var response = suggest(type, query);
if (response.suggestions.length > 0) {
return FORMATTERS[type](response.suggestions[0]);
} else {
return "Ничего не найдено";
}
}
function suggest(type, query) {
var url = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/" + type;
var payload = '{"query": "' + query + '"}'
var headers = {
"Authorization": "Token " + API_KEY
};
var fetchArgs = {
method: "POST",
contentType: "application/json",
payload: payload,
headers: headers,
muteHttpExceptions: false
};
return JSON.parse(UrlFetchApp.fetch(url, fetchArgs));
}
@Shock922
Copy link

Shock922 commented Feb 27, 2020

Добрый день!
Не могли бы по шагам обьяснить(как с VBA excel), как запустить данный скрипт?
Имеется список ИНН в гугл таблице, нужно получить данные
Заранее спасибо

@Elpomena
Copy link

Elpomena commented May 29, 2020

присоединяюсь к предыдущему вопросу...
помогите пожалуйста!

@Olga-Lis
Copy link

Olga-Lis commented Aug 24, 2020

Добрый день! Подскажите, пожалуйста, как работает данный код?

@alex2347t3y5nd
Copy link

alex2347t3y5nd commented Aug 30, 2021

Всё работает. Спасибо за инструкцию. Пришлось повозится 5 минут из-за того что в гугл таблицах сменились описания, но всё понятно)))

@ReiKatari
Copy link

ReiKatari commented Feb 12, 2022

Не работает. Скрипт выполняется, пишется "Loading", но информация не появляется.

@st0rmy29
Copy link

st0rmy29 commented Feb 21, 2022

Проверено работает. Спасибо.

@ivanshlaev
Copy link

ivanshlaev commented Sep 9, 2022

Добрый день! Подскажите, а если я хочу вернуть не данные организации, а просто данные по неточно введенному адресу, например такие: Город, нас.пункт, и их ФИАС-id, что меняется в коде? Попробовал вот эту часть поменять так (не помогло - возвращает пустые значения):

function formatParty(suggestion) {
var party = suggestion.data;
return [
["Название", party.name.short_with_opf],
["Город", party.city],
["Нас.Пункт", party.settlement],
["ФИАС-id Города", party.city_fias_id],
["ФИАС-id нас.пункта", party.settlement_fias_id]
];
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment