Ситуация, когда данные из 1С успешно передаются на сайт, но покупатели видят надпись «нет в наличии» вместо заветной цены, является одной из самых распространенных при настройке интеграции. Мы можем видеть остатки в административной панели Битрикс, наблюдать актуальные цифры в карточке товара, но публичная часть сайта упорно отказывается их выводить. В рамках данной статьи мы подробно разберем, почему это происходит, и пройдем по всем шагам настройки — от проверки прав доступа до нюансов фасетного индекса.
Проанализируем наиболее вероятную причину, которая часто ускользает от внимания разработчиков. Даже если цена физически присутствует в базе данных сайта, система Bitrix Framework не покажет ее пользователю, если у его группы прав нет разрешения на просмотр этого типа цены. Разберем, как это исправить по шагам:
Важно: если права не расшарены, компонент каталога просто игнорирует данные о цене при формировании страницы, что часто приводит к автоматическому срабатыванию статуса «нет в наличии», так как система считает товар невозможным к покупке без установленной стоимости.
Выясним вторую по популярности причину — неверную настройку самого компонента bitrix:catalog или bitrix:catalog.section. Даже если в системе настроено несколько типов цен, компонент выводит только те, что явно указаны в его параметрах.
Рассмотрим порядок действий в режиме редактирования сайта:
Проанализируем ситуацию: часто после выгрузки из 1С создается новый тип цены с внешним кодом (XML_ID), а в компоненте остается выбранным старый тип цены (например, созданный вручную «Base»). В итоге компонент ищет цену, которой нет у новых товаров, и логично скрывает кнопку «Купить».
Рассмотрим техническую сторону обмена. При интеграции 1С и Bitrix связующим звеном является XML_ID (внешний код). Если в 1С тип цены называется «Розничная», а в Bitrix уже существует созданный вручную тип «Розничная», при импорте может возникнуть дублирование.
Посмотрим на структуру файла prices.xml, который генерирует 1С при обмене. В нем содержится идентификатор типа цены:
<ТипЦены>
<Ид>60d1b32a-1c5d-11e2-9426-0015e9666f91</Ид>
<Наименование>Розничная</Наименование>
<Валюта>RUB</Валюта>
</ТипЦены>
Если этот Ид не совпадает с полем «Внешний код» в настройках типа цены в Битриксе, система создаст вторую «Розничную» цену. Вы будете менять настройки у одной, а данные будут лежать в другой. Всегда проверяйте соответствие XML_ID в административной панели сайта в разделе типов цен.
Бывают ситуации, когда данные в карточке товара верные, права настроены, но в списке товаров (в листинге) цена не отображается или фильтр по цене не работает. Выясним причину: в современных версиях Bitrix за вывод цен и работу фильтров отвечает фасетный индекс.
Разберем, как его пересоздать:
Без актуального индекса система может считать, что товаров с ценой выше нуля не существует, и скрывать их из выдачи или показывать статус «отсутствует».
Проанализируем настройки модуля «Торговый каталог». В Битриксе есть жесткая логика: если включен количественный учет, и остаток товара равен нулю, система по умолчанию считает, что товара нет в наличии, даже если цена заполнена. Однако иногда 1С выгружает остатки на конкретные склады, а общий остаток (поле QUANTITY) не обновляется корректно.
Проверим следующие настройки:
Посмотрим на частую ошибку с валютами. 1С может передавать валюту как руб., в то время как в Bitrix базовой валютой является RUB. Если в справочнике валют Битрикса (Настройки -> Валюты) не настроен соответствующий псевдоним или номинал, цена просто не сможет быть сконвертирована и выведена на экран.
Рекомендуется проверить:
Если ни один из вышеперечисленных методов не помог, проанализируем лог-файлы обмена. В папке /bitrix/admin/1c_exchange.php (через журнал событий) можно увидеть ошибки, возникающие в момент импорта. Иногда 1С пытается обновить цену, но из-за кастомных обработчиков (события OnBeforePriceUpdate или OnPriceUpdate) операция блокируется.
Помните, что комплексная проверка всегда начинается с прав доступа к типу цены и заканчивается сбросом кеша и перегенерацией фасетного индекса. Совместная работа этих инструментов обеспечит корректное отображение товаров для ваших покупателей.