Перейти к содержимому

Интеграция DaData в Odoo: автозаполнение по ИНН, адресу и БИК без нового интерфейса

Модуль перехватывает штатный механизм автодополнения Odoo, а не добавляет отдельное поле поиска
30 июня 2026 г. от
Интеграция DaData в Odoo: автозаполнение по ИНН, адресу и БИК без нового интерфейса

Интеграция DaData.ru в Odoo: автозаполнение контрагента по ИНН, адреса по подсказкам, банка по БИК

Модуль l10n_ru_inn подключает к Odoo сервис DaData.ru — автозаполнение реквизитов контрагента по ИНН, банка по БИК и подсказки при вводе адреса. Интересна тут не сама идея (она очевидна), а то, как она реализована: без единого нового поля ввода для поиска.

Не новый виджет, а подмена источника данных

В Odoo уже есть штатный механизм автодополнения контрагента — то самое поле, где можно начать вводить ИНН или название компании и получить подсказки. По умолчанию оно обращается к платному сервису Odoo IAP (Enrichment/Autocomplete), который не заточен под российские реквизиты. Модуль перехватывает ровно этот же механизм — методы autocomplete_by_vat, autocomplete_by_name и enrich_by_duns в res.partner — и для российского ИНН (10 или 12 цифр) отправляет запрос в DaData вместо IAP. Для пользователя ничего не меняется: то же поле, тот же интерфейс, просто подсказки теперь настоящие и бесплатные (в рамках лимита DaData), а не «нет данных».

Что заполняется по ИНН

Из ответа DaData вытаскиваются не только имя и ИНН, а полный набор реквизитов юрлица: краткое и полное наименование, КПП, ОГРН, ОКПО, код ОКВЭД (сопоставляется с записью в справочнике l10n_ru.okved), организационно-правовая форма ОКОПФ (аналогично сопоставляется со справочником), статус организации — действует ли она или уже ликвидирована — и отдельно адрес по ЕГРЮЛ, который для юрлица часто не совпадает с фактическим адресом доставки.

Адрес — отдельный виджет

Для поля «Улица» на форме партнёра с российской компанией модуль подключает собственный виджет dadata_address, который на лету запрашивает у DaData подсказки по адресам (`suggest/address`) и разбирает структурированный ответ на улицу с домом, город, регион и индекс — включая сопоставление региона и страны с соответствующими записями в Odoo, чтобы поля выбора страны/региона заполнялись сами, а не оставались пустыми.

Банк — по кнопке «Заполнить по БИК»

На карточке банка похожая логика: ввёл БИК, нажал «Заполнить по БИК» — и подтягиваются платёжное наименование банка, сам БИК, корреспондентский счёт, SWIFT, адрес, телефон и статус банка по данным ЦБ РФ (действующий/ликвидирован). Отдельная модель хранит эти специфичные для российской банковской системы поля, которых нет в стандартном res.bank.

И ещё: статусы не протухают молча

Данные о контрагенте, полученные один раз при создании карточки, со временем могут устареть — организация может быть ликвидирована уже после того, как с ней начали работать. Для этого в модуле есть отдельное (по умолчанию выключенное) еженедельное крон-задание, которое проходит по существующим контрагентам и обновляет их статус в ЦБ/ЕГРЮЛ через тот же API DaData.

Итог

Один API-ключ DaData на компанию (Настройки → Компания → DaData), обёрнутый в аккуратный HTTP-клиент с таймаутом и понятными сообщениями об ошибке вместо голого стектрейса — и весь стандартный процесс ввода контрагента в Odoo начинает работать по российским реквизитам так, как будто это было заложено в системе изначально.

Телефония в CRM: перенос voip и crm_voip с Odoo 8 на Odoo 10
Новый API, новая система JS-модулей и фикс автовоспроизведения звука звонка под политику автоплея Chrome

Похожая задача в вашей компании?

Напишите намСмотреть услуги