Інтеграція 1С-Бітрікс з КЛАДР
При розробці інтернет-магазину на 1С-Бітрікс рано чи пізно виникає задача автодоповнення адреси. Клієнти вводять місто та вулицю вручну — помилки, дублі, відмови доставки. Ми регулярно стикаємося з ситуацією, коли облікова система 1С:Підприємство використовує КЛАДР, а на сайті підключено ФІАС через DaData. Адреси не сходяться, замовлення зависають. У цій статті розберемо, як правильно вбудувати КЛАДР у Бітрікс та забезпечити безшовний обмін з 1С.
Чому КЛАДР досі актуальний?
КЛАДР — класифікатор адрес РФ, що підтримується ФНС. Раніше він був основним стандартом. Зараз більшість нових систем перейшли на ФІАС, але legacy-інфраструктура в 1С та звітність у ФНС досі вимагають КЛАДР-код. Якщо у вас інтернет-магазин на Бітріксі, інтегрований з 1С, ігнорувати КЛАДР не можна.
Коли потрібна інтеграція з КЛАДР, а не з ФІАС?
- Облікова система клієнта — 1С:Підприємство версії 8.3.14 і нижче, що оперує КЛАДР-кодами.
- Обмін з ФНС у форматах, що вимагають код КЛАДР.
- Транспортні компанії (СДЕК, Пошта Росії), які ще не перейшли на ФІАС.
- Імпорт старої бази адрес, де всі записи — у КЛАДР-форматі.
Якщо таких обмежень немає — сміливо використовуйте ФІАС, він підтримується офіційно та точніше. Але для гібридних сценаріїв потрібен маппінг КЛАДР ↔ ФІАС.
| Характеристика | КЛАДР | ФІАС |
|---|---|---|
| Глибина | 5 рівнів (регіон, район, місто, н.п., вулиця) | 7+ рівнів (додано будинки, квартири) |
| Код | 11-13 знаків | GUID (AOGUID) + КЛАДР-код у полі CODE |
| Оновлення | Щокварталу | Щодня |
| Підтримка ФНС | Так, legacy | Так, актуальний |
Структура КЛАДР
КЛАДР-код — 11-значне число або 13-значне (з ознакою актуальності). Структура:
ПП РРРРР ГГГ РРР УЛИЧУ 2 5 3 3 4 = 17 символів (з доповненнями) -
ПП— код суб'єкта РФ (регіон). -
РРРРР— код району. -
ГГГ— код міста. -
РРР— код населеного пункту. -
УЛИЧУ— код вулиці.
Файли бази КЛАДР завантажуються з сайту ФНС (fias.nalog.ru, розділ КЛАДР). Формат — DBF-файли.
Імпорт КЛАДР в MySQL/PostgreSQL
# Конвертація DBF → SQL через утиліту dbf2sql або Python python3 -c " import dbf, csv table = dbf.Table('KLADR.DBF') table.open() for record in table: print(','.join([str(f) for f in record])) table.close() " > kladr.csv Після імпорту в таблицю kladr_objects створюємо індекси за кодом та батьківським кодом для швидкого пошуку.
Пошук за КЛАДР у Бітріксі
function searchKladrCities(string $regionCode, string $cityName): array { $connection = \Bitrix\Main\Application::getConnection(); $name = $connection->getSqlHelper()->forSql(mb_strtolower($cityName)); $sql = " SELECT CODE, NAME, SOCR FROM kladr_objects WHERE CODE LIKE '{$regionCode}%' AND LENGTH(CODE) = 13 -- рівень міста AND LOWER(NAME) LIKE '%{$name}%' AND STATUS = '1' -- актуальні записи LIMIT 20 "; // ... } Цей метод повертає список міст, чий код починається з коду регіону. Використовуємо в компоненті автодоповнення.
Маппінг КЛАДР ↔ ФІАС
Оскільки сучасні системи використовують ФІАС, а legacy — КЛАДР, часто потрібна таблиця відповідності. У базі ФІАС є поле CODE — це і є КЛАДР-код. Таблиця ADDROBJ містить обидва ідентифікатори: AOGUID (ФІАС) та CODE (КЛАДР).
// Отримати КЛАДР-код за ФІАС GUID $sql = "SELECT CODE FROM fias_ADDROBJ WHERE AOGUID = '" . $fiasGuid . "'"; Таблиця відповідності вирішує проблему розбіжності адрес при обміні з 1С.
Автодоповнення адреси через DaData з КЛАДР-кодом
DaData у відповіді підказки повертає і kladr_id, і fias_id. Якщо потрібен саме КЛАДР:
$("#address").suggestions({ token: dadataToken, type: "ADDRESS", onSelect: function(suggestion) { const d = suggestion.data; $("#kladr-id").val(d.kladr_id); $("#fias-id").val(d.fias_id); // Зберігаємо обидва — для різних downstream-систем } }); Зберігати обидва ідентифікатори — правильна практика при міграції з КЛАДР на ФІАС.
Передача в 1С:Підприємство
При синхронізації замовлень з 1С:Підприємство через CommerceML або прямий REST-обмін адреса передається у форматі, який 1С розпізнає. Якщо версія 1С стара (до 8.3.14) — вона приймає КЛАДР-коди. Передаємо kladr_id з поля замовлення разом з рядковою адресою.
Як ми реалізуємо інтеграцію КЛАДР у Бітрікс
- Аналіз поточної схеми адрес: які поля зберігаються, які ідентифікатори використовує 1С.
- Імпорт бази КЛАДР (остання версія з сайту ФНС) в окрему таблицю
kladr_objects. - Створення REST-ендпоінтів для пошуку за ієрархією: регіони → міста → вулиці.
- Маппінг існуючих адрес (якщо є) на КЛАДР-коди через відкриті дані ФІАС.
- Інтеграція з DaData або іншим сервісом автодоповнення зі збереженням КЛАДР-кода в замовленні.
- Налаштування обміну з 1С: у CommerceML додаємо поле
kladr_id. - Тестування на бойових даних — перевірка, що всі адреси з 1С коректно мапляться.
На одному з проектів ми робили інтеграцію для мережі магазинів з 50 000 адрес. База КЛАДР зайняла близько 2 ГБ після індексації. Пошук міста за першими символами виконувався за 0.02 секунди.
Що входить у нашу роботу
- Імпорт та налаштування бази КЛАДР на вашому сервері.
- REST API пошуку за адресою з фільтрацією за батьківським кодом.
- Таблиця відповідності КЛАДР ↔ ФІАС для безшовної роботи з сучасними сервісами.
- Інтеграція з 1С: налаштування обміну адресними реквізитами.
- Документація по використанню API та підтримка після впровадження.
Строки та вартість
Трудозатрати залежать від обсягу legacy-даних:
| Задача | Оцінка (год.) |
|---|---|
| Імпорт бази КЛАДР | 4–6 |
| Створення ендпоінтів пошуку | 6–8 |
| Маппінг КЛАДР ↔ ФІАС | 3–4 |
| Інтеграція з 1С | 4–8 |
Вартість розраховується індивідуально після аудиту вашої системи. Оцінимо проект за один день — зв'яжіться з нами.
Зв'язатися — напишіть у Telegram або залиште заявку на сайті. Ми відповімо протягом години.







