Импорт закрывает 95% потребностей, но рано или поздно приходится добавить или поправить местоположение руками — новый район, посёлок, микрорайон или исправить название. Разберём, как это устроено в 1С-Битрикс и на что смотреть, чтобы не сломать иерархию и привязки к доставке.
Где создаются местоположения
Справочник живёт в разделе Магазин → Настройки → Местоположения → Список местоположений (компонент нового API, модуль sale). Здесь же — вкладки для типов, групп, внешних сервисов и настроек. Раздел появляется, когда установлен модуль «Интернет-магазин» и включена работа с местоположениями.
Кнопка «Добавить местоположение» открывает карточку с полями: родитель, тип, названия на языках интерфейса, код, внешние коды, привязка к сайтам. В отличие от импорта, где данные заливаются пачкой, ручное создание — это точечная операция для одной записи, которую вы полностью контролируете.
b_sale_location напрямую) в актуальных версиях скрыт. Работайте через новый API местоположений — он ведёт единый индекс поиска и связи parent-child автоматически.Иерархия: страна — регион — город
Местоположения в Битрикс — это дерево, а не плоский список. Каждая запись, кроме страны, имеет родителя. Классическая цепочка выглядит так:
- Страна (Россия) — корень ветки;
- Регион / область (Московская область) — потомок страны;
- Город (Химки) — потомок региона;
- Район / микрорайон (Левобережный) — потомок города, если нужна детализация.
При создании записи первым делом выбирается родитель — от него наследуется положение в дереве. Если добавить город без родителя-региона, он «повиснет» и не найдётся в стандартном поле выбора на оформлении заказа. Технически иерархия хранится через вложенные множества (LEFT_MARGIN, RIGHT_MARGIN, DEPTH_LEVEL), поэтому Битрикс сам пересчитывает границы при добавлении узла — вручную эти поля трогать не нужно.
Привязка к типам местоположений
Каждое местоположение обязательно относится к типу: страна, регион, область, город, село, район города и т.д. Тип задаётся полем в карточке и берётся из справочника Настройки → Местоположения → Типы местоположений.
Тип — не косметика. От него зависит:
- сортировка (поле
SORTу типа) — в каком порядке уровни отображаются в подсказках; - отображаемая цепочка в поле выбора города (показывать ли область рядом с городом);
- логика внешних сервисов подсказок адреса, которые сопоставляют свои уровни с вашими типами.
При ручном создании выбирайте тип, соответствующий реальному уровню записи. Город с типом «регион» будет некорректно отображаться и ломать фильтрацию по группам. Если нужного типа нет — сначала заведите его во вкладке типов, затем возвращайтесь к местоположению.
Языковые названия
Название местоположения хранится отдельно для каждого языка интерфейса, установленного в системе (таблица переводов b_sale_loc_name). В карточке вы увидите поле названия для русского, английского и любого другого активного языка.
Минимально нужно заполнить название на языке(ах), которыми реально пользуется витрина. Русское название — обязательно; английское полезно, если магазин мультиязычный или вы отдаёте данные во внешние системы латиницей. Пустое название на языке приведёт к тому, что в этой локали местоположение отобразится как пустая строка или код.
Код и внешние коды
У записи есть два разных идентификатора, и их легко перепутать:
| Поле | Назначение |
|---|---|
CODE (символьный код) | Уникальный строковый идентификатор внутри Битрикс. Задаётся при создании, участвует в URL и связках. Менять после запуска нежелательно. |
Внешний код (EXTERNAL_ID / сервис) | Соответствие записи во внешней системе: КЛАДР/ФИАС, служба доставки, 1С. Привязывается к конкретному сервису во вкладке внешних кодов. |
Внешние коды — ключевой механизм интеграции доставки. Например, СДЭК, Boxberry или Почта России сопоставляют город по своему коду. Если у вручную созданного города нет внешнего кода нужной службы, расчёт доставки для него не сработает — курьерский модуль просто не найдёт соответствие. Поэтому при добавлении города, которого не было в импорте, сразу проставьте его коды в системах доставки, которыми вы пользуетесь.
Редактирование и привязка к сайтам
Карточка существующей записи открывается по клику в списке. Здесь же — привязка к сайтам: в многосайтовой конфигурации местоположение можно ограничить конкретной витриной, если географии магазинов не совпадают. По умолчанию запись доступна всем сайтам.
Практические правила редактирования:
- Название правьте свободно — это перевод, он не ломает связи; после правки переиндексируйте поиск.
- Родителя и тип меняйте осознанно — они влияют на всё дерево и на группы.
- Код после запуска лучше не трогать, чтобы не порвать ссылки в заказах и настройках доставки.
- Удаление города, который уже фигурирует в оформленных заказах, оставит исторические данные без корректной привязки — вместо удаления часто разумнее просто убрать его из активных групп.
Отдельно стоит помнить про группы местоположений: вновь созданный город не попадёт в зоны доставки автоматически — его нужно добавить в соответствующую группу вручную.
Итог
Ручное управление местоположениями в 1С-Битрикс держится на четырёх вещах: правильном родителе в дереве, корректном типе, заполненных языковых названиях и проставленных внешних кодах служб доставки. Ошибка в любом из них тихо ломает либо подсказку города, либо расчёт доставки. После любой правки не забывайте про переиндексацию поиска и про добавление записи в нужные группы.
Если справочник большой, доставок несколько, а города приходится заводить регулярно — мы в B2Bsite настраиваем местоположения, зоны доставки и интеграции служб под ключ, чтобы каталог и корзина работали предсказуемо. Поможем с разработкой, обменом с 1С и сопровождением магазина.
Частые вопросы
Чем ручное создание отличается от импорта?
Импорт заливает большую базу городов и регионов пачкой, а ручное создание — это добавление или правка одной конкретной записи. Руками обычно заводят то, чего нет в стандартной базе: новый район, посёлок или микрорайон.
Почему новый город не появляется в выборе при оформлении заказа?
Чаще всего у записи нет корректного родителя в дереве или не заполнено название на языке витрины. Также после добавления нужно выполнить переиндексацию поиска местоположений, иначе запись не попадёт в подсказку.
Обязательно ли выбирать тип местоположения?
Да, тип обязателен. От него зависит сортировка уровней, отображение цепочки в поле выбора и сопоставление с внешними сервисами подсказок адреса.
Что будет, если оставить название только на русском?
На русской витрине всё отобразится нормально. Но в других активных языках интерфейса местоположение покажется пустым или кодом, поэтому для мультиязычного магазина заполняйте все нужные локали.
Зачем городу внешний код?
Внешний код связывает запись с внешней системой — службой доставки, КЛАДР/ФИАС или 1С. Без кода нужной службы расчёт доставки для этого города не сработает, так как модуль не найдёт соответствие.
Можно ли менять символьный код после запуска?
Технически можно, но нежелательно. Код участвует в связках и ссылках, и его смена может порвать привязки в заказах и настройках доставки.
Как добавить новый город в зону доставки?
Создание местоположения не помещает его в зоны автоматически. Нужно вручную добавить город в соответствующую группу местоположений, на которой построена зона доставки.
Стоит ли удалять устаревший город?
Если город уже встречается в оформленных заказах, удаление оставит исторические данные без корректной привязки. Безопаснее убрать его из активных групп, оставив саму запись в справочнике.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.