Интеграция 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-файлы. Источник: fias.nalog.ru
Импорт КЛАДР в 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 или оставьте заявку на сайте. Мы ответим в течение часа.







