Інтеграція 1С-Бітрікс з ФІАС
Клієнт скаржиться, що в половині замовлень кур'єр не може знайти адресу. Або покупець вводить «Київ, вул. Шевченка, 1», а доставка намагається відправити в інше місто. Причина одна — адреса не прив'язана до офіційного реєстру ФІАС. Ми вирішуємо це інтеграцією, яка автоматично підставляє правильну адресу з державної бази. Розповідаю, як саме.
Як ФІАС спрощує інтеграцію з транспортними компаніями?
ФІАС (Федеральна інформаційна адресна система) — єдиний реєстр адрес Росії. Якщо ваш інтернет-магазин працює з СДЭК, Boxberry або Почтою Росії, їхні API приймають AOGUID (глобальний ідентифікатор ФІАС). Передаючи його, ви гарантуєте, що посилка піде у вірне відділення. Без ФІАС доводиться розбирати текстові адреси вручну — це помилки, повернення та втрачені клієнти.
Варіанти підключення ФІАС
Варіант 1. Локальна база ФІАС — завантажуємо повний дамп (~10 ГБ у XML, ~5 ГБ після імпорту в PostgreSQL), розгортаємо у власній БД. Плюс: немає залежності від зовнішніх сервісів, повний контроль, швидкість запитів у мілісекундах. Мінус: база оновлюється щотижня, потрібен процес синхронізації. Саме цей варіант ми рекомендуємо для проектів з великим трафіком — повернення на 30% нижчі, ніж при API-сервісах.
Варіант 2. API сторонніх сервісів — DaData, Fias.nalog.ru API, GeoSuggest. Простіше в інтеграції, але ліміти запитів (до 5000/добу у безкоштовних тарифів) та зовнішня залежність. При падінні сервісу адресні підказки перестають працювати — це втрата конверсії.
Варіант 3. Готові модулі Бітрікса — на маркетплейсі є кілька модулів адресних підказок з ФІАС. Вартість розраховується індивідуально. Підходить для стандартних форм, але доопрацювання під конкретні вимоги (наприклад, інтеграція з 1С) часто потребує правок коду.
Структура бази ФІАС
Ключові таблиці (після імпорту XML в PostgreSQL або MySQL):
| Таблиця ФІАС | Зміст |
|---|---|
ADDROBJ |
Адресні об'єкти: регіони, міста, вулиці |
HOUSE |
Будинки з прив'язкою до вулиці |
SOCRBASE |
Словник скорочень (вул., пр., пров.) |
NORDOC |
Нормативні документи (для юридичних завдань) |
Поле AOGUID — глобальний унікальний ідентифікатор адресного об'єкта (ФІАС ID). Саме його потрібно зберігати в замовленнях і передавати в транспортні компанії. Наша практика показує, що єдина зв'язка AOGUID в замовленні та API перевізника усуває до 95% проблем з доставкою.
Запит до локальної бази ФІАС
// Поиск улиц по названию в указанном городе function searchFiasStreets(string $cityGuid, string $streetName): array { $connection = \Bitrix\Main\Application::getConnection(); $streetName = $connection->getSqlHelper()->forSql($streetName); $sql = " SELECT ao.AOGUID, ao.FORMALNAME, ao.SHORTNAME FROM fias_ADDROBJ ao WHERE ao.PARENTGUID = '{$cityGuid}' AND ao.AOLEVEL = 7 -- уровень: улица AND ao.LIVESTATUS = 1 -- только актуальные AND LOWER(ao.FORMALNAME) LIKE LOWER('%{$streetName}%') LIMIT 20 "; $result = $connection->query($sql); $rows = []; while ($row = $result->fetch()) { $rows[] = [ 'guid' => $row['AOGUID'], 'name' => $row['FORMALNAME'] . ' ' . $row['SHORTNAME'] . '.', ]; } return $rows; } Автодоповнення у формі замовлення
На сервері піднімаємо простий Ajax-обробник (компонент або контролер):
// ajax_handler.php в папке компонента if ($_SERVER['REQUEST_METHOD'] === 'POST') { $type = $_POST['type']; // 'region', 'city', 'street', 'house' $query = trim($_POST['query']); $parent= $_POST['parent_guid'] ?? null; $results = FiasSearch::search($type, $query, $parent); header('Content-Type: application/json'); echo json_encode(['suggestions' => $results]); die(); } На frontend — jQuery Autocomplete або власна реалізація, послідовний вибір: регіон → місто/населений пункт → вулиця → будинок. Кожен вибір передає AOGUID обраного об'єкта як parent_guid для наступного рівня. Важливо: не забуваємо про кешування — щоб не довбати базу на кожен символ.
Чому оновлення ФІАС краще автоматизувати?
ФІАС оновлюється щотижня. Якщо оновлювати вручну, можна пропустити перейменування вулиці або новий мікрорайон — це помилки доставки та злі відгуки. Ми автоматизуємо Delta-оновлення (не повний дамп):
- Завантажуємо Delta-файл із сайту ФІАС (fias.nalog.ru/updates).
- Парсимо XML і оновлюємо таблиці через
INSERT ... ON DUPLICATE KEY UPDATEабоUPSERTу PostgreSQL. - Процес автоматизуємо агентом Бітрікса або cron-завданням раз на тиждень.
Час обробки Delta-оновлення на сервері середнього класу — 15–30 хвилин. Повний імпорт з нуля — 2–4 години.
Зберігання ФІАС ID у замовленнях
У властивостях замовлення створюємо поля:
-
FIAS_REGION_GUID— GUID регіону. -
FIAS_CITY_GUID— GUID міста/населеного пункту. -
FIAS_STREET_GUID— GUID вулиці. -
FIAS_HOUSE_GUID— GUID будинку (якщо є в базі ФІАС).
Ці GUID передаємо безпосередньо в API СДЭК, Boxberry, Почти Росії — вони приймають ФІАС ID для точного визначення відділення доставки. У нашій практиці ця зв'язка скорочує час обробки замовлення на 40% і виключає ручну перевірку адрес.
Що входить у роботу
- Аудит поточних адресних полів і форм.
- Розгортання локальної бази ФІАС (або налаштування API).
- Розробка Ajax-ендпоінтів для автодоповнення.
- Інтеграція з транспортними API.
- Автоматизація Delta-оновлень.
- Документація, навчання адміністраторів, підтримка 2 тижні.
| Завдання | Трудозатрати |
|---|---|
| Розгортання локальної бази ФІАС | 8–12 год |
| API-ендпоінти для автодоповнення | 6–8 год |
| Форма послідовного вибору адреси | 6–10 год |
| Автоматичне оновлення бази | 4–6 год |
Терміни — від 5 до 10 робочих днів залежно від складності інтеграцій. Точну вартість оцінимо після аналізу ТЗ — зв'яжіться, щоб обговорити деталі.







