• 1C-Битрикс как сделать скидку только для НЕ авторизированных пользователей?

    @sergioderban
    Можно применить скидку с помощью правил корзины.
    В дополнительных условиях указать Пользователь состоит в группе(ах) Все пользователи (в том числе неавторизованные).
    И Пользователь не состоит в группе(ах) Зарегистрированные пользователи
  • Как в 1С привязать товары к нескольким разделам?

    @sergioderban
    Владимир Кай, УТ кастомизировали ещё до создания магазинов, из-за чего установка типового модуля выгрузки портила работу по кастомизации базы, пришлось кастомизировать встроенный модуль обмена...

    нет, перемещение кода во вторую строку после открытия <? ни к чему не привело....
  • Как в 1С привязать товары к нескольким разделам?

    @sergioderban
    Владимир Кай, все сделал как вы написали. Не заработало :( Поскольку на одной лицензии несколько магазинов, то путь к файлу выглядит /bitrix/php_interface/s1/init.php

    Сам файл со взятым с этой страницы кодом теперь выглядит вот так:

    <?

    AddEventHandler("main", "OnAfterUserRegister", "OnBeforeUserRegisterHandler2");
    AddEventHandler("main", "OnAfterUserRegister", "OnBeforeUserRegisterHandler");

    function OnBeforeUserRegisterHandler2(&$arFields)
    {
    //создаём профиль
    //PERSON_TYPE_ID - идентификатор типа плательщика, для которого создаётся профиль

    $arProfileFields2 = array(
    "NAME" => "Профиль покупателя (".$arFields['LOGIN'].')',
    "USER_ID" => $arFields['USER_ID'],
    "PERSON_TYPE_ID" => 1

    );
    $PROFILE_ID2 = CSaleOrderUserProps::Add($arProfileFields2);

    //если профиль создан
    if ($PROFILE_ID2)
    {
    //формируем массив свойств
    $PROPS=Array(
    array(
    "USER_PROPS_ID" => $PROFILE_ID,
    "ORDER_PROPS_ID" => 3,
    "NAME" => "Телефон",
    "VALUE" => $arFields['WORK_PHONE']
    ),
    array(
    "USER_PROPS_ID" => $PROFILE_ID,
    "ORDER_PROPS_ID" => 10,
    "NAME" => "УНП",
    "VALUE" => $arFields['UF_UNP']
    ),
    array(
    "USER_PROPS_ID" => $PROFILE_ID,
    "ORDER_PROPS_ID" => 8,
    "NAME" => "Название компании",
    "VALUE" => $arFields['WORK_COMPANY']
    ),

    array(
    "USER_PROPS_ID" => $PROFILE_ID,
    "ORDER_PROPS_ID" => 1,
    "NAME" => "Ф.И.О.",
    "VALUE" => $arFields['LAST_NAME'].' '.$arFields['NAME'].' '.$arFields['SECOND_NAME']
    )
    );
    //добавляем значения свойств к созданному ранее профилю
    foreach ($PROPS as $prop)
    CSaleOrderUserPropsValue::Add($prop);
    }
    }

    function OnBeforeUserRegisterHandler(&$arFields)
    {
    //создаём профиль
    //PERSON_TYPE_ID - идентификатор типа плательщика, для которого создаётся профиль
    $arProfileFields = array(
    "NAME" => "Профиль покупателя (".$arFields['LOGIN'].')',
    "USER_ID" => $arFields['USER_ID'],
    "PERSON_TYPE_ID" => 2

    );
    $PROFILE_ID = CSaleOrderUserProps::Add($arProfileFields);

    //если профиль создан
    if ($PROFILE_ID)
    {
    //формируем массив свойств
    $PROPS=Array(
    array(
    "USER_PROPS_ID" => $PROFILE_ID,
    "ORDER_PROPS_ID" => 3,
    "NAME" => "Телефон",
    "VALUE" => $arFields['WORK_PHONE']
    ),
    array(
    "USER_PROPS_ID" => $PROFILE_ID,
    "ORDER_PROPS_ID" => 10,
    "NAME" => "УНП",
    "VALUE" => $arFields['UF_UNP']
    ),
    array(
    "USER_PROPS_ID" => $PROFILE_ID,
    "ORDER_PROPS_ID" => 8,
    "NAME" => "Название компании",
    "VALUE" => $arFields['WORK_COMPANY']
    ),

    array(
    "USER_PROPS_ID" => $PROFILE_ID,
    "ORDER_PROPS_ID" => 12,
    "NAME" => "Ф.И.О.",
    "VALUE" => $arFields['LAST_NAME'].' '.$arFields['NAME'].' '.$arFields['SECOND_NAME']
    )
    );
    //добавляем значения свойств к созданному ранее профилю
    foreach ($PROPS as $prop)
    CSaleOrderUserPropsValue::Add($prop);
    }
    }
    AddEventHandler("iblock", "OnBeforeIBlockElementUpdate","SaveMySection");
    function SaveMySection(&$arFields)
    {
    if (@$_REQUEST['mode']=='import')//импорт из 1с?
    {
    $db_old_groups = CIBlockElement::GetElementGroups($arFields['ID'], true);
    while($ar_group = $db_old_groups->Fetch())
    {
    if(!in_array($ar_group['ID'],$arFields['IBLOCK_SECTION']))
    $arFields['IBLOCK_SECTION'][]=$ar_group['ID'];
    }
    }
    }


    ?>
    В чем может быть ошибка?