Задать вопрос
  • Битрикс, пропал пункт каталога "элементы"?

    @tgarl
    В настройках инфоблока выберите "Режим просмотра разделов и элементов" нужный вам
    Ответ написан
    Комментировать
  • Как получить файл выгрузки заказов в xml формате в Bitrix 1c?

    @tgarl
    есть такая таблица b_option, в ней хранится время последнего запроса заказов
    поле NAME, значение last_export_time_committed_/bitrix/admin/1c_excha

    установите в VALUE время с какого хотите получить файл и будет вам счастье))
    можно даже через админку /bitrix/admin/perfmon_table.php?PAGEN_1=1&SIZEN_1=20&lang=ru&set_filter=Y&adm_filter_applied=0&table_name=b_option&find=last_export_time_committed_%2Fbitrix%2Fadmin%2F1c_excha&find_type=NAME
    Ответ написан
    Комментировать
  • Как отправить письмо с вложением (файл csv)?

    @tgarl
    возможно.
    Скорее всего у вас ошибка в коде, приведите код отправки

    вот мой пример:
    $sertik="/upload/new_sert.pdf";
    $ob = \Bitrix\Main\Mail\Event::send(array(
    	"EVENT_NAME" => "sendGiftSertificat",
    	"LID" => "s1",
    	"C_FIELDS" => $fil,
    	'FILE' => array ($sertik),
    ));
    Ответ написан
    Комментировать
  • Как добавить элемент в инфоблок через агента?

    @tgarl
    Что-то вы мудрите.
    Идете в админку создаете агента с функцией testAgent();

    в init.php создаете вашу функцию

    function testAgent()
    {
    
        if(CModule::IncludeModule("iblock")){
    
          $el = new \CIBlockElement;
          $IBLOCK_ID_CATALOG = 53; 
      
          $arLoadProductArray = Array( 
            "IBLOCK_ID" => $IBLOCK_ID_CATALOG,
            "NAME" => "тест1", 
            "ACTIVE" => "Y",
            "PREVIEW_TEXT" => "Позиция успешно добавлена",
          ); 
          $newElement = $el->Add($arLoadProductArray);
        }
    return "testAgent();";
    }


    все
    Ответ написан
  • Как настроить ЧПУ 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 комментариев