Разработка сайтов и интернет-магазинов на 1С-битрикс, порталы Битрикс24, seo продвижение, реклама, поддержка проектов
Как предотвратить потерю описаний товаров при синхронизации 1С УТ с вашим сайтом

Как предотвратить потерю описаний товаров при синхронизации 1С УТ с вашим сайтом

Логотип Liberty
Константин Либерман
Константин Либерман
Основатель компании «LIBERTY»
2 просмотра
Синхронизация каталога между учетной системой 1С "Управление торговлей" и вашим интернет-магазином – необходимый процесс для поддержания актуальной информации о товарах. Однако многие владельцы сайтов сталкиваются с неприятной проблемой: кропотливо добавленные на сайте описания товаров и загруженные изображения внезапно исчезают после очередной выгрузки из 1С.

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

При стандартной настройке обмена данными происходит следующее: 1С проверяет наличие описания товара в своей базе и, не обнаружив его там, но видя, что на сайте оно есть, считает это несоответствием. В результате – система перезаписывает данные, удаляя описания и другой контент, который вы добавили непосредственно через административную панель сайта.

Элегантное решение проблемы

Для защиты вашего контента от непреднамеренного удаления мы предлагаем использовать встроенные в Bitrix события OnBeforeIBlockElementUpdate и OnBeforeIBlockElementAdd. Эти события позволяют перехватить процесс обновления данных и внести свои корректировки.

Найдите или создайте файл инициализации:
Код необходимо добавить в файл /bitrix/php_interface/init.php. Если такого файла не существует, создайте его.


<? 
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate","DoNotUpdateDesc");
function DoNotUpdateDesc(&$arFields)
{
    if ($_REQUEST['mode'] == 'import') {
        unset($arFields['PREVIEW_TEXT_TYPE']);
        unset($arFields['DETAIL_TEXT_TYPE']);
        unset($arFields['PREVIEW_TEXT']);
        unset($arFields['DETAIL_TEXT']);
    }
}

AddEventHandler("iblock", "OnBeforeIBlockElementAdd","DoNotAddDesc");
function DoNotAddDesc(&$arFields)
{
    if ($_REQUEST['mode'] == 'import') {
        unset($arFields['PREVIEW_TEXT_TYPE']);
        unset($arFields['DETAIL_TEXT_TYPE']);
        unset($arFields['PREVIEW_TEXT']);
        unset($arFields['DETAIL_TEXT']);
    }
}
 ?>


Как это работает

Наше решение отслеживает процесс обновления данных и проверяет:

  • Происходит ли обмен данными с 1С
  • Есть ли у товара на сайте описание, которое 1С пытается заменить пустым значением

Если все условия выполняются, система сохраняет текущие описания товара  вместо их удаления. Это касается как полного, так и краткого описания, а также формата описаний (text, html).

Преимущества данного подхода

  • Сохранность данных: Вы больше не потеряете важную информацию о товарах
  • Экономия времени: Не придется повторно добавлять описания после каждой синхронизации
  • Гибкость: Легко настраивается под особенности вашего каталога
  • Минимальное вмешательство: Не требует изменений в настройках 1С или модулях обмена


Данное решение позволит вам совместить удобство автоматической синхронизации данных из 1С с возможностью управлять контентом непосредственно на сайте, не опасаясь его потери. В компании LIBERTY мы помогаем клиентам эффективно решать подобные технические задачи, обеспечивая стабильную работу интернет-магазинов и корпоративных сайтов на базе 1С-Битрикс.