Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Практика

Транслитерация при выгрузке каталога из 1С

Каталог интернет-магазина обычно наполняется не вручную, а автоматическим обменом с учётной системой. Разбираем, где в этой цепочке теряется контроль над качеством адресов.

Где именно происходит транслитерация

В типовой связке 1С и сайта транслитерация может выполняться в трёх разных местах, и от этого зависит, что можно контролировать.

Место транслитерацииКто контролирует
Внутри 1С перед выгрузкойНастройки обработки обмена, редко используется
На стороне сайта при получении данныхРазработчик сайта, модуль CMS
Вручную после выгрузкиКонтент-менеджер, самый медленный вариант

Чаще всего транслитерация выполняется на стороне сайта — 1С передаёт только название и характеристики товара, а CMS формирует адрес автоматически при сохранении карточки. Это тот же процесс, что разобран в статьях про ЧПУ в 1С-Битрикс и ЧПУ в OpenCart — 1С в этой цепочке лишь поставщик исходного текста.

Типичные проблемы обмена

Пустое поле адреса после первого обмена. Модуль обмена передаёт наименование, но забывает вызвать генерацию адреса для новых элементов — карточка сохраняется с техническим идентификатором вместо читаемого URL.

Пересоздание адреса при каждом обмене. Если наименование в 1С меняется — например, поставщик уточнил формулировку, — а логика генерирует адрес заново при каждой синхронизации, URL уже проиндексированной страницы меняется без ведома контент-менеджера.

Это самая опасная проблема обмена. Она незаметна на старте: страница выглядит нормально, но её адрес плавает от синхронизации к синхронизации. Проверить наличие проблемы просто — сравните адрес карточки товара сегодня и после следующего планового обмена.

Дублирование при совпадении наименований. Два товара с одинаковым названием от разных поставщиков получают одинаковый предполагаемый адрес, и система вынуждена добавлять числовой суффикс — divan-2 вместо осмысленного варианта.

Правильная схема обмена

  1. 1С передаёт название, артикул и характеристики товара — но не пытается формировать адрес самостоятельно.
  2. При первом появлении товара на сайте генерируется адрес и сохраняется в базе как отдельное неизменяемое поле.
  3. При повторных обменах система проверяет, есть ли товар уже на сайте по внутреннему идентификатору 1С, и обновляет только характеристики, не трогая адрес.
  4. Изменение адреса происходит только вручную, осознанным действием контент-менеджера, и сопровождается настройкой 301-редиректа.

Ключевой момент — привязка не по названию товара, а по внутреннему идентификатору 1С, который не меняется, даже если наименование корректируется.

Массовая подготовка адресов до первого обмена

Если сайт запускается впервые и каталог ещё не связан с 1С автоматическим обменом, адреса удобно подготовить заранее вручную, а не полагаться на автоматику с первого дня.

  1. Выгрузите список наименований товаров из 1С в таблицу.
  2. Вставьте столбец с названиями в пакетный режим генератора.
  3. Получите готовый список адресов, сохраняющий порядок строк.
  4. Загрузите адреса на сайт вместе с первым обменом, чтобы каждая карточка сразу получила осмысленный URL.

Проверка после настройки

  • Создайте тестовый товар с названием, содержащим спорные буквы — «щ», «х», «й» — и проверьте результат обмена.
  • Измените наименование существующего товара в 1С и убедитесь, что адрес карточки на сайте не изменился.
  • Проверьте товары с одинаковыми или очень похожими названиями на отсутствие случайных дублей адресов.

Чек-лист

  1. Адрес привязан к внутреннему идентификатору товара, а не к его текущему наименованию.
  2. Адрес формируется один раз при первом появлении товара, а не пересчитывается при каждом обмене.
  3. Модуль генерации адресов на стороне сайта использует таблицу Яндекса, а не произвольную схему.
  4. Изменение адреса — осознанное ручное действие с последующим редиректом, а не побочный эффект обмена.

Формат CommerceML и его роль

Стандартный обмен между 1С и сайтом использует формат CommerceML — набор XML-файлов с описанием товаров, категорий и остатков. Сам формат не содержит понятия «адрес страницы»: это чисто товарные данные, и решение о генерации URL всегда принимается на стороне принимающей системы — сайта, а не 1С.

Отличия между конфигурациями 1С

«Управление торговлей», «Розница» и другие типовые конфигурации 1С формируют выгрузку по-разному в деталях, но общий принцип обмена одинаков для всех: она передаёт справочник товаров, а модуль обмена на сайте решает, как из названия получить адрес. Проблемы с транслитерацией не зависят от конкретной конфигурации 1С — они всегда находятся в логике приёма данных на сайте.

Частые вопросы

Почему адрес карточки товара меняется сам по себе после обмена с 1С?

Потому что логика генерации адреса пересчитывает URL при каждой синхронизации на основе текущего наименования вместо того, чтобы хранить адрес как отдельное неизменяемое поле, привязанное к внутреннему идентификатору товара.

Где лучше выполнять транслитерацию — в 1С или на сайте?

На стороне сайта, в модуле CMS. 1С в этой связке обычно выступает только источником исходного текста — названия и характеристик, а формирование адреса остаётся задачей сайта.

Что делать, если после первого обмена у товаров пустые адреса?

Проверить, вызывается ли функция генерации адреса для новых элементов при их создании через обмен — часто эта настройка отдельная от базовой синхронизации данных и её нужно включить явно.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также