Синхронизация данных между 1С:Управление торговлей 10.3 и конструктором сайтов Tilda часто преподносит сюрпризы, особенно когда речь заходит о выгрузке дополнительных типов цен. Распространенная ситуация: в программе 1С настроена выгрузка двух типов цен (например, «Розничная» и «Старая цена»), в формируемом XML-файле offers.xml оба типа присутствуют, но на самом сайте отображается только одна цена. Проанализируем, почему так происходит и как заставить Tilda корректно обрабатывать эти данные.
Первым делом нам необходимо убедиться, что проблема не на стороне 1С. Разберем структуру узла цен в стандарте CommerceML 2.05, который используется при обмене. Мы должны открыть файл offers.xml (обычно он находится во временной папке обмена или выгружается локально для теста) и найти блок Цены внутри каждого предложения Предложение.
Рассмотрим пример того, как должен выглядеть корректный блок с двумя типами цен:
<Цены>
<Цена>
<Представление> 500 руб. за шт</Представление>
<ИдТипаЦены>fa873330-192a-11e1-9e20-0015e9b8c48d</ИдТипаЦены>
<ЦенаЗаЕдиницу>500</ЦенаЗаЕдиницу>
<Валюта>руб</Валюта>
<Единица>шт</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
<Цена>
<Представление> 700 руб. за шт</Представление>
<ИдТипаЦены>40d7c718-283d-11e2-8924-0015e9b8c48d</ИдТипаЦены>
<ЦенаЗаЕдиницу>700</ЦенаЗаЕдиницу>
<Валюта>руб</Валюта>
<Единица>шт</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
</Цены>
Если в вашем файле присутствуют оба блока Цена с разными ИдТипаЦены, значит, 1С:УТ 10.3 отрабатывает штатно. Обратите внимание, что в сообщении форума №9 ошибочно упоминается Enterprise Data — на самом деле типовой обмен с сайтом в УТ 10.3 базируется исключительно на CommerceML.
Выясним причину, по которой Tilda игнорирует второй блок. В отличие от CMS Bitrix, которая часто умеет автоматически подтягивать типы цен, Tilda требует жесткого ручного сопоставления. Даже если выгрузка настроена идеально, сайт «не узнает» вашу старую цену, пока вы не укажете её идентификатор в настройках.
Разберем по шагам, что нужно сделать в панели управления Tilda:
ИдТипаЦены из XML-файла, соответствующий вашей розничной цене.ИдТипаЦены для типа «Старая цена».Важный нюанс: часто разработчики пытаются вписать в эти поля текстовое название («Розничная», «Старая цена»). Однако Tilda лучше всего работает именно с уникальными идентификаторами (GUID). Возьмите значение из тега ИдТипаЦены в вашем offers.xml и вставьте его в настройки Tilda. Это гарантирует однозначную связь.
Проанализируем ситуацию, когда идентификаторы прописаны верно, но цена все равно не отображается. У Tilda есть встроенная логика обработки данных, которую нельзя игнорировать:
Типы цен номенклатуры в 1С для обоих типов установлена идентичная валюта (например, «руб.»). Если одна цена в рублях, а другая — в «USD», парсер может проигнорировать несоответствие.Посмотрим на настройки самой 1С. В типовой торговле 10.3 настройка обмена с сайтом находится в меню Сервис — Обмен данными с WEB-сайтом — Настройка обмена данными с WEB-сайтом.
Рассмотрим шаги для правильной подготовки выгрузки:
Установка цен номенклатуры.Если данные успешно попали в базу данных Tilda, но «Старая цена» все еще не видна в карточке товара, проблема может заключаться в настройках самого компонента каталога. Разберем, что нужно проверить в редакторе страниц:
Перейдите в настройки блока «Список товаров» или «Корзина». Убедитесь, что там включена опция «Показывать старую цену». Часто бывает так, что импорт проходит успешно, данные в системе есть, но шаблон вывода просто скрывает поле со старой ценой по умолчанию.
Также имейте в виду фактор кэширования. Tilda может не обновлять данные мгновенно для всех товаров. После изменения настроек сопоставления GUID рекомендуется выполнить полную выгрузку из 1С (сняв флаг «Выгружать только изменения»), чтобы принудительно обновить все карточки товаров на стороне сайта.
Подводя итог, можно сказать: связка 1С:УТ 10.3 и Tilda вполне работоспособна в плане передачи нескольких цен, если отказаться от сопоставления по именам в пользу GUID и внимательно проверить настройки импорта в личном кабинете магазина на стороне Tilda.