• Как запретить изменение типа свойства при выгрузке из 1С?

    askunash
    @askunash
    Тренер Битрикс
    Если вас не устраивает импорт из 1С есть 3 варианта (по возрастанию сложности):
    1. Привести в соответствие данные в 1С.
    2. Привязаться к событию OnBeforeCatalogImport1C и переопределить/перезаписать данные.
    3. Кастомить компоненты обмена - есть стандартный скрипт обмена, его адрес в настройках магазина в админке, проследите пару шагов подключаемых файлов - там все компоненты подключаемые.
    Всё.
    Ответ написан
    1 комментарий
  • Как запретить изменение типа свойства при выгрузке из 1С?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    1С отдает xml файл, где всё строки (нет чисел)
    У свойства бывают следующие возможные значения: S - строка, N - число, F - файл, L - список, E - привязка к элементам, G - привязка к группам.
    --
    Этот API-код меняет тип Строка на Число:
    <?
    require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
    CModule::IncludeModule("iblock");
    
    $arFields = Array(
      "PROPERTY_TYPE" => "N", //ставим N если нужно число
      "IBLOCK_ID" => 2 //номер инфоблока
      );
    
    $ibp = new CIBlockProperty;
    if(!$ibp->Update(7, $arFields)) // где 7 это номер свойства (ID) в инфоблоке
        echo $ibp->LAST_ERROR; //выведем ошибку если ничего не получилось
    ?>


    По сути, после выгрузки вы можете запустить этот код и нужное свойство поменяет тип.
    spoiler
    PS: Хотя, почему меняется тип свойства - не понятно. Не должно быть так.
    Ответ написан
    2 комментария