Задать вопрос
Ответы пользователя по тегу 1С-Битрикс
  • Как настроить ЧПУ catalog/символьный_код_товара?

    @tgarl
    Скорее всего не получится так сделать - потому как непонятна разница в этом случае: чем раздел отличается от элемента, поэтому и получается нашел код раздела - показал, не нашел - выдал 404, а тут уже не важно что у элемента такой код.
    Можете попробовать убрать в настройках устанавливать 404, но не уверен что поможет.
    Ответ написан
    Комментировать
  • Bitrix, почему не отображается страница?

    @tgarl
    Вот нет чтобы объяснить нормально, так сразу наймите специалиста...

    В целом, если прочитать комменты, общую проблему все же указали. Проблема в том что содержимое страницы некорректно сохранили. Через визредактор или нет - тут не факт, автор не сказал в какой именно момент появилась ошибка.
    Чтобы поправить нужно открыть страницу в режиме php(через админку сайта - структура файлов) или по фтп(что более правильно) и пройтись по коду, закрыв где нужно теги и поправив ошибки.

    Вообще такая ошибка часто встречается когда на странице идут вперемешку html и php и правки вносят через визредактор - в этом случае при правке через визредактор, происходит некорректный разбор кода и его сохранение. Поэтому обычно все оформляют либо в компоненты и их размещают на странице либо используют включаемые области (в этом случае если вы сломаете то только маленький кусочек во включаемой области, а не всю страницу).
    Ответ написан
    Комментировать
  • Как в SetPropertyValuesEx обращаться не к id значения для свойства типа Список, а к XML_ID?

    @tgarl
    Потому что нету такой возможности, в документации об этом сказано.
    Для этого получаете отдельно все значения списка, там ищите свой xml_id, узнаете у него id и его подставляете
    т.е.
    $db_enum_list = CIBlockProperty::GetPropertyEnum("BREND", Array('sort' => 'asc'), Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"]));
    while($ar_enum_list = $db_enum_list->GetNext())
    {$arrProp[]=$ar_enum_list;}//получили значения списка, если требуется именно по xml_id, то сразу формируйте с ключами нужными
    //$arrProp[$ar_enum_list['XML_ID']]=$ar_enum_list; - лень принтовать проверьте у себя сами правильность написания
    //ну а далее 
    // пусть будет id = 184, xml_id=leto, value=лето
    $PROPERTY_VALUE = $arrProp['leto']['id'];

    примерно так
    Ответ написан
    1 комментарий
  • Как произвести перерасчет заказа после его оплаты?

    @tgarl
    Как вариант изначально не ставить заказ оплачен, а только статус например устанавливать "оплата". А когда приходит из 1сновый статус , к примеру подтвердить оплату, тогда уже сам заказ отмечать как оплачен.
    Ответ написан
    Комментировать
  • Можно ли выдать аккаунту доступ только к редактированию SEO-данных?

    @tgarl
    Нет.
    Но можно используя события запретить изменять поля и свойства для группы пользователя.
    Ответ написан
    Комментировать
  • Каким образом формировать раздельные инфоблоки при многосайтовости?

    @tgarl
    При многосайтовости у вас битрикс один и соответственно ядро тоже одно. А значит с какого бы домена вы не зашли в админку вы увидите и то и другое. Так что никакого дублирования не происходит.
    Ответ написан
    4 комментария
  • Правильно ли начинать путь во фронтенд с битрикса?

    @tgarl
    Самый хороший ответ вам дал no_one_safe

    На самом деле неважно какая будет система управления сайтом. Тут все зависит от ваших знаний и желания разбираться. Каждая cms имеет свои заложенные в нее правила. Ругают битрикс реально те кто привык к другому подходу. Вот у меня сейчас 5 проектов на битриксе и 2 пришли новые не на нем(ларавел и джанго), так я наооборт ругаюсь на них - из серии кто так строит - банально то, что в битриксе из "коробки" кеш сбросить можно нажав одну кнопку, для этих проектов нужно использовать консоль сервера, т.е. верстальщик должен знать консоль, для меня это как-то непривычно. А это говорит о том, что знаний для этих систем нужно больше чем для битрикса.
    Ответ написан
    2 комментария
  • Битрикс комплексный компонент. Как изучать?

    @tgarl
    А вы изучаете для чего, для знаний или для умения копипастить?
    Женщина изначально достаёт свою заготовку из заранее созданной папки

    Правильно, не писать же весь код с нуля, она просто объясняет что зачем нужно. А комплексный компонент может быть достаточно сложным - ведь он по своей сути занимается тем что в зависимости от условий подключает ту или иную страницу на которой в свою очередь находятся другие компоненты
    Ответ написан
  • Как вызвать модальное admin-окно 1C-Bitrix?

    @tgarl
    вот когда-то себе откладывал как это работает(была такая задача)
    подгрузить данные из соседнего окна
    1 окно 
    <div class="small_button" onclick="jsUtils.OpenWindow('<?=$pt?>?n=komy_f', 500, 600);">Кому...</div>
    <input type="text" name="komy_f" id="komy_f" value="" />
    2 окно
    <script type="text/javascript">
    function SetEl(id, name){
    	el = window.opener.document.getElementById('<?=$_REQUEST['n']?>');
    	el.value = id;
    	window.close();
    }
    </script>
    <a href="#"  onclick="javascript:SetEl(\''.$value["EMAIL"].'\')">Select</a>
    Ответ написан
    Комментировать
  • Как из переменной получить значение, а не строку?

    @tgarl Автор вопроса
    Дело в кавычках было

    я передаю
    , '".$arParams['FIELD']."'

    а нужно без кавычек
    , ".$arParams['FIELD']."
    Ответ написан
    Комментировать
  • Почему не появляется Яндекс карта в Битриксе?

    @tgarl
    У вас не прописан на сайте API-key для яндекс карт, в компонент вы тоже не передаете его.
    Вам нужно завести ключ на сайте яндекса, после этого прописать его в настройках модуля управление структурой /bitrix/admin/settings.php?lang=ru&mid=fileman
    Ответ написан
    Комментировать
  • Как применить купон в оформлении заказа?

    @tgarl
    Посмотрите пример добавления https://dev.1c-bitrix.ru/api_d7/bitrix/sale/classe..., думаю как раз под вашу задачу.

    У вас же идет применение купона, без указания где, без пересчета, затем зачем-то получение нового объекта корзины текущего пользователя, которое нигде не используется. И проверьте купон-то рабочий, товар в корзине подходит под условия
    Ответ написан
  • Почему отображаются не все статусы заказов?

    @tgarl
    В mbstring.
    Такая же проблема была после обновления php - если не ошибаюсь mbstring.func_overload 2 решает эту проблему, но в проверке сайта будет ошибка что требуется установить 0, или наоборот. На вскидку не скажу
    Ответ написан
  • Как добавить переменную типа {=this.Name} в обычное поле Битрикс?

    @tgarl
    Переменные на SEO вкладке не обрабатываются в полях других вкладок. Они только для SEO вкладки.
    Если вы хотите их использовать в подробно, то нужно в вашем шаблоне написать самостоятельно обработчик таких переменных.
    Например вы решили использовать {=this.Name} в поле подробно.
    Вам нужно примерно такую подмену сделать
    $arResult['DETAIL_TEXT']=str_replace('{=this.Name}', $arResult['NAME'], $arResult['DETAIL_TEXT']);

    Для цены вам нужно получить нужную цену в нужном вам формате и примерно так же написать замену.
    И так со всеми переменными какие вы хотите использовать
    Ответ написан
  • Как сделать общий вывод страницы редактирования материала?

    @tgarl
    Если вы настраиваете под админом, то там есть галочка Установить данные настройки по умолчанию для всех пользователей, в противном случае только для себя применить настройки возможно
    Ответ написан
    Комментировать
  • Как клонировать элемент если в количестве указанно "2"?

    @tgarl
    Честно не хочется ковыряться в вашем коде, запросов лишних у вас там огого.
    Но смысл решения вашей задачи такой:
    у вас есть код формирующий строку
    <tr>
                <td style="border: 0;opacity: 0;"><?echo $i+1;?></td>
    <td align="center"><?echo $A?></td>
    ...

    так и проверяйте ваше количество $A
    если больше 1 то делайте цикл внутри которого вывод, иначе - выводите как есть.
    if($A>1){
        for(){
               // то что имеете сейчас, но в цикле
               ?><tr><td style="border: 0;opacity: 0;"><?echo $i+1;?></td><td ...<?
           }
    }else{
               //то что имеете сейчас
                ?><tr><td style="border: 0;opacity: 0;"><?echo $i+1;?></td><td ...<?
         }
    }

    только примите к сведению
    Не зря же в компонентах есть разделение на файл result_modifier и template - это по сути помощь в разделении логики. Т.е. Вы сначала делаете все необходимые манипуляции, запросы, формируете конечный массив, а в темплейте работаете с получившимся массивом. Вот и вам нужно сделать рефакторинг вашего кода, разделить его на обработку и шаблон. А у вас все в куче, вот вы и не видите решения. А добавите цикл в который впихнете дублирующие запросы(при вашем коде именно так и получится) и получите, что страница грузится долго.
    Ответ написан
    9 комментариев
  • Как прикреплять картинку к заказу?

    @tgarl
    В корзину добавляется товар, а не картинка.
    Поэтому вариантов решения как я вижу 2:
    1. Вы после нажатия на кнопку в корзину обрабатываете данные, создаете новый товар с ценой и прочим, в том числе и с картинкой и отправляете его в корзину
    2. если это дополнение к существующему товару, то генерите картинку, регистрируете ее в битриксе и идентификатор/путь прикрепляете как свойство товара которое и отправляете в корзину.
    Ответ написан
    3 комментария
  • Можно ли оформлять заказы без авторизации?

    @tgarl
    По умолчанию, нет, нельзя. Заказ должен быть привязан к пользователю.
    Но если вы никуда выгружать не планируете в дальнейшем, то можно завести отдельного пользователя и кастомизировать оформление указав автоматическую регистрацию, но вместо создания пользователя подставлять вашего.
    Еще вариант написать свое оформление заказа, но опять же привязка к пользователю должна быть обязатаельна.

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

    @tgarl
    Судя по логу вы выгружаете 1 товар и он выгрузился. Что именно вы имеете ввиду когда говорите, что не выгружается?

    Нет вашего товара? Проверьте не появился ли новый инфоблок, может не туда выгружается куда вы хотели.
    Не обновляются свойства? Включите сохранение файлов обмена, в dbconn добавьте define("BX_CATALOG_IMPORT_1C_PRESERVE", true); - возможно файлы приходят без свойств.
    Ответ написан
    1 комментарий
  • Как изменить цену при добавлении/изменении элемента торгового каталога?

    @tgarl
    Главная ваша ошибка, это то что вы просто хотите добавить цену, а она может уже у товара есть. Следовательно вам сначала нужно получить идентификатор цены товара. Если его нет, то тогда добавлять, иначе обновлять.

    Если посмотреть в документации, то там есть наглядный пример
    $res = CPrice::GetList(
            array(),
            array(
                    "PRODUCT_ID" => $PRODUCT_ID,
                    "CATALOG_GROUP_ID" => $PRICE_TYPE_ID
                )
        );
    
    if ($arr = $res->Fetch())
    {
        CPrice::Update($arr["ID"], $arFields); //если есть обновляем
    }
    else
    { //иначе добавляем
        CPrice::Add($arFields);
    }
    Ответ написан