Ответы пользователя по тегу 1С-Битрикс
  • Почему при обмене картинки не добавляются в товар?

    @itauditmedia
    уточните
    1) есть ли ошибки при тестировании сайта средствами Битрикс?
    2) правильно ли указан корень сайта в настройках сайта и указан ли вообще?
    3) нет ли ошибок в логах 1с
    4) какого размера картинки?
    5) не включена ли обработка картинок в настройках инфоблока и/или настройках обмена с 1с на стороне сайта?
    6) сайт на хостинге или сервере?
    7) Есть ли свойство MORE_PHOTO в инфоблоке товаров?
    Ответ написан
    Комментировать
  • Как узнать в какой каталог была выгрузка OnCompleteCatalogImport1C?

    @itauditmedia
    если обмен идет штатно через xml
    то очень просто проверить для какого каталога был запущен последний обмен
    делаем запрос во временную таблицу b_xml_tree_import_1c

    function getOneCCatalog()
    {
        \Bitrix\Main\Loader::includeModule('iblock');
        $connection = \Bitrix\Main\Application::getConnection();
        $xmlID = $connection->queryScalar("SELECT `VALUE` FROM `b_xml_tree_import_1c` WHERE `NAME`='ИдКаталога'");
        $arIBlock=\Bitrix\Iblock\IblockTable::getList(['filter'=>['=XML_ID'=>$xmlID],'select'=>['ID']])->fetch();
        return $arIBlock['ID'];
    }


    на выходе ID торгового каталога
    Ответ написан
  • (функция LocalRedirect) Ошибка! Не работает. В чем может быть проблема?

    @itauditmedia
    Тут дело в настройках cloudflare
    Добавьте в список исключений
    1. все официальные IP-адреса сервисов Битрикс.
    2. ip адрес самого сайта/сервера

    LocalRedirect - это малая часть того что может произойти без должной настройки cloudflare
    также могут возникнуть сбои в проактивной защите, резервном копировании и др.
    Ответ написан
    Комментировать
  • Как при создание заказа в битрикс 1с выводить покупателя в заказах?

    @itauditmedia
    странный код конечно по работе с заказом
    но вот как-то так
    //Пользовательские поля из POST-запроса
    //допустим у вас есть имя и телефон и есть в заказе 2 свойства
    // Устанавливаем свойства
    $propertyCollection = $order->getPropertyCollection();
    $phoneProp = $propertyCollection->getPhone();
    $phoneProp->setValue($_POST'phone']);
    $nameProp = $propertyCollection->getPayerName();
    $nameProp->setValue($_POST'[name']);

    предварительно в админке надо завести все нужные свойства для заказа для нужного типа плательщика
    вот тут
    66e357ed66898882652665.png
    и отметить в "имени" или ФИО что
    66e358e3bcdcd286961885.png
    ну и в телефоне соответсвенно
    66e359547ca88768128684.png

    вот тут замечательное описание по работе с заказом
    https://mrcappuccino.ru/blog/post/work-with-order-...
    Ответ написан
    Комментировать
  • Как получить избражение корзины в битрикс 1с?

    @itauditmedia
    CSaleBasket::GetList - не отдает изображение
    вам надо самостоятельно "добрать" его по PRODUCT_ID
    примерно так

    while($elem = $basket->getNext()){
    $el = CIBlockElement::GetList( [], ["ID"=>$elem['PRODUCT_ID']], false, false, ["ID","DETAIL_PICTURE"])->fetch(); 
    if($el['DETAIL_PICTURE']>0) $file = CFile::ResizeImageGet($el['DETAIL_PICTURE'], array('width'=>150, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, true); 
    }

    в $file['src'] - будет путь к файлу
    Ответ написан
    1 комментарий
  • Деактивация если нет в файле выгрузке при интеграции с 1с в init.php делал кто то?

    @itauditmedia
    mills какая у вас конфигурация 1С и модуль обмена?
    в новых версиях обмена которые на расширении этот параметр настраивается из 1С

    если сильно нужно из init.php
    нужно сначала передать в глобальную переменную время начала обмена $startTime = $_GET["timestamp"];

    $rsImportedIBlocks = \Bitrix\IBlock\IblockFieldTable::getList(array(
                "select" => array("IBLOCK_ID", "DEFAULT_VALUE"),
                "filter" => array(
                    "=FIELD_ID" => "XML_IMPORT_START_TIME",
                    ">=DEFAULT_VALUE" => date("Y-m-d H:i:s", $startTime),
                ),
            ));
            $timeStamp = ConvertTimeStamp($startTime"FULL");
    
            while ($arField = $rsImportedIBlocks->fetch())
            {
                $element = new CIBlockElement;
                $rsElements = CIBlockElement::GetList(array(), array(
                    "IBLOCK_ID" => $arField["IBLOCK_ID"],
                    "ACTIVE" => "Y",
                    "<TIMESTAMP_X" =>  $timeStamp,
                ), false, false, array("ID"));
                while ($arElement = $rsElements->Fetch())
                {
                    $element->Update($arElement["ID"], array("ACTIVE" => "N"));
                }
    
                $section = new CIBlockSection();
                $rsSections = CIBlockSection::GetList(array(), array(
                    "IBLOCK_ID" => $arField["IBLOCK_ID"],
                    "ACTIVE" => "Y",
                    "<TIMESTAMP_X" =>  $timeStamp,
                ), false, array("ID"));
                while ($arSection = $rsSections->Fetch())
                {
                    $section->Update($arSection["ID"], array("ACTIVE" => "N"));
                }
            }
    Ответ написан
  • Как защититься от создания пустых заказов ботами?

    @itauditmedia
    photosho какое именно решение Аспро используется?
    создается "заказ" или "быстрый заказ" из карточки товара?
    скорее всего "быстрый" - тогда искомый вам компонент быстрого заказа вызывается тут www/ajax/one_click_buy.php
    проверяйте $_REQUEST['ELEMENT_ID'] - что его значение - действительно элемент ИБ
    Ответ написан
    Комментировать