Где именно происходит транслитерация
В типовой связке 1С и сайта транслитерация может выполняться в трёх разных местах, и от этого зависит, что можно контролировать.
| Место транслитерации | Кто контролирует |
|---|---|
| Внутри 1С перед выгрузкой | Настройки обработки обмена, редко используется |
| На стороне сайта при получении данных | Разработчик сайта, модуль CMS |
| Вручную после выгрузки | Контент-менеджер, самый медленный вариант |
Чаще всего транслитерация выполняется на стороне сайта — 1С передаёт только название и характеристики товара, а CMS формирует адрес автоматически при сохранении карточки. Это тот же процесс, что разобран в статьях про ЧПУ в 1С-Битрикс и ЧПУ в OpenCart — 1С в этой цепочке лишь поставщик исходного текста.
Типичные проблемы обмена
Пустое поле адреса после первого обмена. Модуль обмена передаёт наименование, но забывает вызвать генерацию адреса для новых элементов — карточка сохраняется с техническим идентификатором вместо читаемого URL.
Пересоздание адреса при каждом обмене. Если наименование в 1С меняется — например, поставщик уточнил формулировку, — а логика генерирует адрес заново при каждой синхронизации, URL уже проиндексированной страницы меняется без ведома контент-менеджера.
Это самая опасная проблема обмена. Она незаметна на старте: страница выглядит нормально, но её адрес плавает от синхронизации к синхронизации. Проверить наличие проблемы просто — сравните адрес карточки товара сегодня и после следующего планового обмена.
Дублирование при совпадении наименований. Два товара с одинаковым названием от разных поставщиков получают одинаковый предполагаемый адрес, и система вынуждена добавлять числовой суффикс — divan-2 вместо осмысленного варианта.
Правильная схема обмена
- 1С передаёт название, артикул и характеристики товара — но не пытается формировать адрес самостоятельно.
- При первом появлении товара на сайте генерируется адрес и сохраняется в базе как отдельное неизменяемое поле.
- При повторных обменах система проверяет, есть ли товар уже на сайте по внутреннему идентификатору 1С, и обновляет только характеристики, не трогая адрес.
- Изменение адреса происходит только вручную, осознанным действием контент-менеджера, и сопровождается настройкой 301-редиректа.
Ключевой момент — привязка не по названию товара, а по внутреннему идентификатору 1С, который не меняется, даже если наименование корректируется.
Массовая подготовка адресов до первого обмена
Если сайт запускается впервые и каталог ещё не связан с 1С автоматическим обменом, адреса удобно подготовить заранее вручную, а не полагаться на автоматику с первого дня.
- Выгрузите список наименований товаров из 1С в таблицу.
- Вставьте столбец с названиями в пакетный режим генератора.
- Получите готовый список адресов, сохраняющий порядок строк.
- Загрузите адреса на сайт вместе с первым обменом, чтобы каждая карточка сразу получила осмысленный URL.
Проверка после настройки
- Создайте тестовый товар с названием, содержащим спорные буквы — «щ», «х», «й» — и проверьте результат обмена.
- Измените наименование существующего товара в 1С и убедитесь, что адрес карточки на сайте не изменился.
- Проверьте товары с одинаковыми или очень похожими названиями на отсутствие случайных дублей адресов.
Чек-лист
- Адрес привязан к внутреннему идентификатору товара, а не к его текущему наименованию.
- Адрес формируется один раз при первом появлении товара, а не пересчитывается при каждом обмене.
- Модуль генерации адресов на стороне сайта использует таблицу Яндекса, а не произвольную схему.
- Изменение адреса — осознанное ручное действие с последующим редиректом, а не побочный эффект обмена.
Формат CommerceML и его роль
Стандартный обмен между 1С и сайтом использует формат CommerceML — набор XML-файлов с описанием товаров, категорий и остатков. Сам формат не содержит понятия «адрес страницы»: это чисто товарные данные, и решение о генерации URL всегда принимается на стороне принимающей системы — сайта, а не 1С.
Отличия между конфигурациями 1С
«Управление торговлей», «Розница» и другие типовые конфигурации 1С формируют выгрузку по-разному в деталях, но общий принцип обмена одинаков для всех: она передаёт справочник товаров, а модуль обмена на сайте решает, как из названия получить адрес. Проблемы с транслитерацией не зависят от конкретной конфигурации 1С — они всегда находятся в логике приёма данных на сайте.
Частые вопросы
Почему адрес карточки товара меняется сам по себе после обмена с 1С?
Потому что логика генерации адреса пересчитывает URL при каждой синхронизации на основе текущего наименования вместо того, чтобы хранить адрес как отдельное неизменяемое поле, привязанное к внутреннему идентификатору товара.
Где лучше выполнять транслитерацию — в 1С или на сайте?
На стороне сайта, в модуле CMS. 1С в этой связке обычно выступает только источником исходного текста — названия и характеристик, а формирование адреса остаётся задачей сайта.
Что делать, если после первого обмена у товаров пустые адреса?
Проверить, вызывается ли функция генерации адреса для новых элементов при их создании через обмен — часто эта настройка отдельная от базовой синхронизации данных и её нужно включить явно.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.