Ручное заполнение справочника местоположений в интернет-магазине бессмысленно: в России тысячи городов и десятки тысяч населённых пунктов. Битрикс позволяет импортировать готовую базу — целиком или выборочно — и получить корректное дерево «страна → регион → район → город» без ручного ввода.
Зачем импортировать готовую базу
Справочник местоположений — это фундамент, на который опираются доставка, налоги, зоны доставки, ограничение служб доставки по регионам и автоопределение города покупателя. Пока справочник пуст, менеджер не сможет выбрать город в заказе, а покупатель — увидеть корректную стоимость доставки.
Заполнять его вручную нереально: только городов в РФ несколько тысяч, а с сёлами и посёлками — десятки тысяч записей, и все они должны быть связаны в правильное дерево вложенности. Поэтому Битрикс поставляет готовую базу местоположений, которую достаточно один раз импортировать и при необходимости обновлять.
- корректная иерархия: страна, регион/область, район, город, село;
- внешние коды (нормативные коды, привязка к сервисам подсказок адреса);
- единые ID, на которые ссылаются зоны доставки и налоговые правила.
Две системы местоположений и версия 2.0
Исторически в модуле sale существовало две реализации местоположений. Старая (условно «1.0») хранила данные в плоских таблицах и импортировалась из CSV-файла. Новая версия 2.0 перевела справочник на D7-сущность Bitrix\Sale\Location\LocationTable с моделью вложенных множеств (nested sets, поля LEFT_MARGIN/RIGHT_MARGIN) и отдельной таблицей названий для мультиязычности.
Проверить и переключить версию можно в Магазин → Настройки → Местоположения. Если магазин ещё на старой системе, Битрикс предложит мастер миграции на странице /bitrix/admin/sale_location_migrate.php.
Дальнейший импорт готовой базы городов и регионов рассчитан именно на версию 2.0 — она мастеров-ориентирована и умеет докачивать данные из сервиса Битрикс.
Источники и формат данных
В версии 2.0 базу местоположений можно получить двумя путями:
- Из сервиса Битрикс. Мастер импорта скачивает актуальный набор данных с серверов «1С-Битрикс» — это основной способ получить свежую базу городов и регионов РФ без поиска файлов вручную.
- Из файла. Импорт из подготовленного архива/CSV — применяется, когда нужен офлайн-сценарий, кастомный набор населённых пунктов или данные внешнего поставщика (например, выгрузка из КЛАДР/ФИАС, приведённая к формату Битрикс).
Данные организованы по типам местоположений (страна, регион, район, город, село и т. д.) с внешними кодами. Внешние коды критичны: по ним работают связки с сервисами подсказок адреса и повторная синхронизация без дублей. При импорте из файла соблюдайте кодировку UTF-8 и структуру колонок, которую ожидает парсер, иначе дерево соберётся с ошибками вложенности.
Как запустить импорт (пошагово)
Импорт выполняется в мастере на странице /bitrix/admin/sale_location_import.php (пункт «Импорт местоположений» в разделе настроек магазина). Общий порядок:
- Откройте
Магазин → Настройки → Местоположения → Импорт. - Выберите источник — сервис Битрикс или загрузка файла.
- Отметьте страны и типы местоположений, которые нужно загрузить (см. раздел про выборочный импорт).
- Выберите режим: полная замена справочника или дополнение существующих данных.
- Запустите импорт — он идёт пошагово, порциями, чтобы не упереться в таймаут PHP.
Для больших объёмов увеличьте лимиты окружения: max_execution_time, memory_limit, а на стороне MySQL — таймауты и размер пакета. Импорт создаёт много записей и пересчитывает границы дерева, поэтому чувствителен к настройкам БД.
Частичный (выборочный) импорт
Загружать всю мировую базу почти никогда не нужно. Мастер позволяет ограничить импорт по странам и типам — это и есть частичный импорт. Для магазина, работающего только по России, достаточно выбрать РФ и нужную глубину справочника.
| Сценарий магазина | Что импортировать |
|---|---|
| Доставка только по крупным городам | Страна + регионы + города |
| Полное адресное покрытие РФ | Регионы + районы + города + сёла |
| Несколько стран СНГ | Выбранные страны, до уровня городов |
Чем меньше типов вы включаете, тем компактнее база и быстрее работает выбор местоположения в заказе и на витрине. Недостающие уровни всегда можно догрузить позже отдельным импортом в режиме дополнения — благодаря внешним кодам повторная загрузка не создаёт дублей.
Размер базы и производительность
Полная база населённых пунктов России — это десятки тысяч записей, а с учётом таблицы названий и связей нагрузка на витрину растёт. Модель nested sets быстра на чтение поддерева, но тяжела на массовую вставку: при каждом добавлении пересчитываются границы LEFT_MARGIN и RIGHT_MARGIN.
- Импортируйте только нужные типы — лишние уровни раздувают справочник без пользы.
- Для выбора города в заказе и на витрине включайте поиск местоположений (индекс), а не полное дерево.
- После крупного импорта проверьте кэш и композит: списки местоположений кэшируются, и старый кэш нужно сбросить.
После импорта: индексация и проверка
Импорт наполняет справочник, но не делает базу сразу «рабочей» для витрины. Финальные шаги:
- Переиндексация поиска местоположений. Запустите пересборку поискового индекса — без неё компонент выбора города покупателя не найдёт новые записи.
- Проверка дерева. Откройте список местоположений и убедитесь, что вложенность корректна: города находятся внутри своих регионов.
- Привязки доставки и налогов. Если вы мигрировали с версии 1.0 или заменяли базу целиком, сверьте зоны доставки и налоговые правила — они ссылаются на ID местоположений.
- Сброс кэша. Очистите кэш компонентов и композитный кэш, чтобы витрина увидела обновлённый справочник.
Только после переиндексации и проверки привязок можно считать импорт завершённым и переходить к настройке зон доставки и автоопределения города.
Итог
Импорт готовой базы местоположений — самый быстрый способ наполнить справочник городов и регионов РФ в 1С-Битрикс. Ключевое: работать на версии 2.0, брать данные из сервиса Битрикс или проверенного файла, импортировать выборочно только нужные страны и типы, а после загрузки обязательно перестроить поисковый индекс и сверить привязки доставки и налогов.
Если магазин ещё на старой системе, предстоит миграция на 2.0 с перестройкой структуры, а при больших объёмах — тонкая настройка окружения под массовую вставку. Мы помогаем провести миграцию и импорт местоположений без потери привязок доставки, ускоряем работу каталога и берём магазин на сопровождение, чтобы обновления базы проходили предсказуемо.
Частые вопросы
Откуда Битрикс берёт готовую базу городов и регионов?
В версии 2.0 мастер импорта скачивает актуальный набор данных напрямую из сервиса «1С-Битрикс». Как альтернатива доступна загрузка из подготовленного файла для офлайн-сценариев или кастомных наборов.
Нужно ли импортировать всю мировую базу?
Нет. Мастер позволяет выбрать конкретные страны и типы местоположений. Для магазина по РФ достаточно загрузить Россию и нужную глубину — регионы, районы, города.
Чем версия 2.0 отличается от старой системы местоположений?
Версия 2.0 хранит справочник в D7-сущности LocationTable по модели вложенных множеств с отдельной таблицей названий. Это быстрее на чтение поддерева и поддерживает мультиязычность и внешние коды.
Как перейти на версию 2.0, если магазин старый?
Через мастер миграции на странице sale_location_migrate.php в настройках магазина. Перед запуском сделайте резервную копию БД и проверьте результат на копии, так как перестраиваются привязки доставки и налогов.
Почему после импорта поиск не находит города?
Почти всегда причина — неперестроенный поисковый индекс местоположений. Компонент выбора города работает через собственный индекс, который нужно пересобрать после импорта.
Импорт прервался на середине, что делать?
Прерывание оставляет дерево вложенности в несогласованном состоянии. Запустите импорт заново в режиме полной замены либо перестройте границы дерева, затем переиндексируйте поиск.
Можно ли догрузить недостающие уровни позже?
Да. Запустите отдельный импорт в режиме дополнения. Благодаря внешним кодам повторная загрузка не создаёт дублей уже существующих записей.
Почему импорт большой базы идёт медленно?
Модель nested sets пересчитывает границы дерева при массовой вставке, а полная база РФ — это десятки тысяч записей. Помогает выборочный импорт и увеличение лимитов PHP и MySQL.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.