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

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Вы не до конца понимаете принцип работы накопительной скидки.
    Я и сам плохо понимаю, но судя по всему:
    1. Отключаем для теста другие правила
    2. Создаем обычные скидки
    3. Создаем накопительные скидки, которые должны перебивать правила обычных скидок, используем Приоритеты и Сортировки. Я могу сильно ошибаться, но Накопительные скидки это не "самостоятельное" правило. Накопительное правило должно иметь сортировку выше остальных (другие 10 например, а накопительное 110).
    -
    Если у вас ничего не получилось, то сделайте накопительные скидки обычным способом через правила корзины.
    5f9b33a937169563646529.jpeg
    Ответ написан
  • Как отсортировать товары в 1Сбитрикс по значению свойства?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    /bitrix/admin/iblock_type_admin.php?lang=ru
    5f9b2cb52215a882744510.jpeg
    Ответ написан
    Комментировать
  • Получить свойство товара из заказа bitrix?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Если свойство попадает в заказ, то
    // получение списка свойств для заказа с ID 123
    $dbRes = \Bitrix\Sale\PropertyValueCollection::getList([
        'select' => ['*'],
        'filter' => [
            '=ORDER_ID' => 123, 
        ]
    ]);
    
    while ($item = $dbRes->fetch())
    {
        var_dump($item);
    }

    Иначе
    Ответ написан
  • Как исправить сортировку разделов в Битриксе в админке?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Поле SORT влияет на сортировку разделов одного уровня вложенности относительно единого родителя.
    Для разделов/подразделов крайне желательно использовать уникальный CODE.
    Как вариант, убедившись, что первые пункты вы учли, пересохранить проблемные разделы (особенно если создавали их с помощью выгрузок из сторонних систем)
    Ответ написан
    Комментировать
  • 1С-Битрикс. Как поменять путь к папке авторизации?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    spoiler
    Мне достался тут сайт

    А у вас был опыт работы? А если нет, то зачем вы за это беретесь?

    Страница регистрации может быть где угодно, где создадите там и будет.
    Если какие то ссылки ссылаются на страницу, где не должен быть компонент регистрации, то отредактируйте шаблон.
    Когда вы читали эти страницы, что вам стало не понятно?
    https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    https://dev.1c-bitrix.ru/user_help/components/sluz...
    Ответ написан
  • Как сделать интеграцию сайта на Битрикс с 1С?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Если Вы задаете такой вопрос, да ещё так неконкретно, то не думаю, что кто-то тут будет писать многотомные инструкции.
    Реальный совет: отвалить от 100т.р и сильно выше специалистам, тем более, если у вас нет знаний и каталоги с обоих сторон имеются с большим кол-вом товаров.
    Если нет денег и специалистов и не важен soap, то можете делать как я через winhttp, либо через обмен xml - и писать с обоих сторон обработки.
    spoiler
    //Онлайн интеграция заказов с сайтом	 - отправка из 1С
    ПараметрыОбмена = "";
    ПараметрыОбмена = ПараметрыОбмена + "KEY="+"DN9MBPQP7680";
    ПараметрыОбмена = ПараметрыОбмена + "&NUMBER="+Номер;
    ПараметрыОбмена = ПараметрыОбмена + "&DATE="+Дата;
    ПараметрыОбмена = ПараметрыОбмена + "&KLIENT="+Контрагент;
    ПараметрыОбмена = ПараметрыОбмена + "&PHONE="+ТелефонКлиента;
    ПараметрыОбмена = ПараметрыОбмена + "&EMAIL="+Контрагент.Email;
    ПараметрыОбмена = ПараметрыОбмена + "&STATUS="+Статус;
    ПараметрыОбмена = ПараметрыОбмена + "&STATUSORDER="+СтатусОбработки;
    ПараметрыОбмена = ПараметрыОбмена + "&STORES="+Подразделение;
    ПараметрыОбмена = ПараметрыОбмена + "&TOTAL="+СтрЗаменить(СуммаДокументаПолная, Символы.НПП, "");
    Массив = 0;
    Для Каждого ТекСтрокаЗаказТЧ Из ЗаказТЧ Цикл
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][id]="+ТекСтрокаЗаказТЧ.Товар.КодУТ;
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][sections]="+ТекСтрокаЗаказТЧ.Товар.Родитель;
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][item]="+ТекСтрокаЗаказТЧ.Товар;
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][quantity]="+ТекСтрокаЗаказТЧ.Количество;
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][price]="+СтрЗаменить(ТекСтрокаЗаказТЧ.Цена, Символы.НПП, "");
    Массив = Массив+1;	
    КонецЦикла;
    
    WinHttp=Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    WinHttp.Option(2,"Windows-1251");                  
    WinHttp.Open("GET","https://mysite.com/api/1c.php?"+ПараметрыОбмена,0);    
    WinHttp.SetRequestHeader("Accept-Language", "ru");
    WinHttp.SetRequestHeader("Accept-Charset","Windows-1251");
    WinHttp.setRequestHeader("Content-Language", "ru");
    WinHttp.setRequestHeader("Content-Charset", "Windows-1251");
    WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251"); 
    WinHttp.Send();
    Сообщить(WinHttp.ResponseText());


    Еще есть обмен из коробки, он не полнофункциональный, скачать можно с сайта 1с
    https://www.1c-bitrix.by/products/cms/features/rea...
    Больше инструкций и исполнителей можно найти на форуме 1с-ников
    https://forum.infostart.ru/
    Ответ написан
    Комментировать
  • Как вывести количество товаров на складе в Bitrix?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    phpneguru, если где-то, то
    <? $ar_res = CCatalogProduct::GetByID($arResult[ID]); 
    echo "<br>На складе: "; 
    print_r($ar_res['QUANTITY']); 
    echo " шт."; ?>

    А если комплексный компонент Каталог, то USE_STORE установить Y, это вы найдете в режиме правки страницы в корне вашего каталога, например /catalog/
    Ответ написан
    Комментировать
  • Как в готовому блюду добавить стоимость упаковки в корзине Битрикса?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Готовых плагинов нет в открытом доступе.
    Ваша задача решается двумя путями:
    1. Если клиент должен видеть упаковку, то заводим новый раздел с упаковками. В корзине проверяем какой товар находится и методом api добавляем в корзину соответствующую упаковку. В шаблоне корзины нужно проверять есть ли упаковка. Если есть, то скрыть для неё кнопки увеличения кол-ва и удаления., раздел упаковки и будет признаком для скрытия. Также надо добавить событие на удаление товара, которое при удалении товара удалит упаковку.

    2. Можно модифицировать заказ (не корзину), добавляя упаковку (по сути это тоже товар) по api. В публичной части (в корзине) использовать правила наценок. Скорее подойдёт, если вам нужно это для внутреннего учёта.

    Если упаковку рассматривать не как товар, а как опция к доставке, то можно и к доставке применить наценку. А в шаблоне оформления заказа не составит особого труда настроить нужный визуальный вывод.

    В некоторых случаях можно использовать Наборы и Комплекты, если у вас относительно новые обновления Битрикса.
    https://dev.1c-bitrix.ru/community/blogs/product_f...
    Ответ написан
    Комментировать
  • Пропала кнопка "Сохранить" редактирования элемента инфоблока, как исправить?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Настройки -> Настройки модулей -> Главный модуль -> Настройки, на пункте "Переместить весь Javascript в конец страницы" установить галочку.
    Не факт, но бывает связано с js.
    Ответ написан
  • Как сделать простую страницу оформления заказа в один шаг с выбором способа оплаты и доставки?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Можно и самому написать, но это будет велосипед, наверняка данная задача решалась неоднократно.

    Да, решалась. Тем самым велосипедом, называется api+html+js, примеры.
    spoiler
    use Bitrix\Main\Context,
        Bitrix\Currency\CurrencyManager,
        Bitrix\Sale\Order,
        Bitrix\Sale\Basket,
        Bitrix\Sale\Delivery,
        Bitrix\Sale\PaySystem;
    
    global $USER;
    
    Bitrix\Main\Loader::includeModule("sale");
    Bitrix\Main\Loader::includeModule("catalog");
    
    // Допустим некоторые поля приходит в запросе
    $request = Context::getCurrent()->getRequest();
    $productId = $request["PRODUCT_ID"];
    $phone = $request["PHONE"];
    $name = $request["NAME"];
    $comment = $request["COMMENT"];
    
    $siteId = Context::getCurrent()->getSite();
    $currencyCode = CurrencyManager::getBaseCurrency();
    
    // Создаёт новый заказ
    $order = Order::create($siteId, $USER->isAuthorized() ? $USER->GetID() : 539);
    $order->setPersonTypeId(1);
    $order->setField('CURRENCY', $currencyCode);
    if ($comment) {
        $order->setField('USER_DESCRIPTION', $comment); // Устанавливаем поля комментария покупателя
    }
    
    // Создаём корзину с одним товаром
    $basket = Basket::create($siteId);
    $item = $basket->createItem('catalog', $productId);
    $item->setFields(array(
        'QUANTITY' => 1,
        'CURRENCY' => $currencyCode,
        'LID' => $siteId,
        'PRODUCT_PROVIDER_CLASS' => '\CCatalogProductProvider',
    ));
    $order->setBasket($basket);
    
    // Создаём одну отгрузку и устанавливаем способ доставки - "Без доставки" (он служебный)
    $shipmentCollection = $order->getShipmentCollection();
    $shipment = $shipmentCollection->createItem();
    $service = Delivery\Services\Manager::getById(Delivery\Services\EmptyDeliveryService::getEmptyDeliveryServiceId());
    $shipment->setFields(array(
        'DELIVERY_ID' => $service['ID'],
        'DELIVERY_NAME' => $service['NAME'],
    ));
    $shipmentItemCollection = $shipment->getShipmentItemCollection();
    $shipmentItem = $shipmentItemCollection->createItem($item);
    $shipmentItem->setQuantity($item->getQuantity());
    
    // Создаём оплату со способом #1
    $paymentCollection = $order->getPaymentCollection();
    $payment = $paymentCollection->createItem();
    $paySystemService = PaySystem\Manager::getObjectById(1);
    $payment->setFields(array(
        'PAY_SYSTEM_ID' => $paySystemService->getField("PAY_SYSTEM_ID"),
        'PAY_SYSTEM_NAME' => $paySystemService->getField("NAME"),
    ));
    
    // Устанавливаем свойства
    $propertyCollection = $order->getPropertyCollection();
    $phoneProp = $propertyCollection->getPhone();
    $phoneProp->setValue($phone);
    $nameProp = $propertyCollection->getPayerName();
    $nameProp->setValue($name);
    
    // Сохраняем
    $order->doFinalAction(true);
    $result = $order->save();
    $orderId = $order->getId();
    Ответ написан
    Комментировать
  • Как скопировать раздел в 1C Bitrix?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    2 комментария
  • Как добавить свои поля, например телефон, в форму регистрации на странице оформления заказа?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Если для заказа, то тут bitrix/admin/sale_order_props.php?lang=ru
    5f8ec6751bfec000479326.jpeg
    Как сделать регистрацию по номеру телефона тут
    Ответ написан
  • Как вывести каталог для определенной группы пользователей?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    if( in_array(5,CUser::GetUserGroup(CUser::GetID())))
    {
    //Твой компонент будет показан для группы 5
    }
    Ответ написан
    Комментировать
  • Как настроить сортировку на вывод картинок в bitrix?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Подскажите, пожалуйста, может где-то нужно что-то настроить?

    Видимо в компоненте настроить сортировку надо! В админке лишь указывается значение!
    Ответ написан
  • Как сделать сортировку по времени года битрикс?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Задать товару новое свойство Сезон типа список.
    Сортировать: propertysort_<PROPERTY_CODE> - по индексу сортировки варианта значения свойства. Только для свойств типа Список.
    Затем написать update, который у свойства в инфоблоке у этих 4 значений изменит сортировку. Привязать к условию - значение текущего месяца date.
    https://dev.1c-bitrix.ru/api_help/iblock/classes/c...
    Этот вариант будет делать всего 4 запроса 4 раза в год)
    Ответ написан
    Комментировать
  • Ckeditor, Битрикс как сделать, чтобы при переходе на ссылку открывалась середина сайт?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    <a name="top">
    <a href="#top">Клик</a>

    Первая ссылка вставляется где то в середине сайта
    Вторая в твоё меню, говоря вашим языком.
    А вообще это 1 класс школы html
    Ответ написан
  • Где ошибка в коде при записи в переменную?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Вы получаете данные из инфоблока, вам нужно это в виде json отправить куда то кому то, но у вас синтаксические ошибки при формировании json.
    Вам нужно использовать валидатор для проверки
    Очень помогает выявлять лишние или отсутствующие символы, результат сравнивать с примерами из документации.

    Это совсем некрасиво:
    spoiler
    $data_for_write ='
      {
        "type": "FeatureCollection",
        "metadata": {
          "name": "Карта торгового центра",
          "creator": "SWP",
          "description": ""
        },
      '.
        while($ob = $res->GetNextElement()){
          $arFields = $ob->GetFields();
          $arProps = $ob->GetProperties();
      .'
          "features": [{

    Сначала соберите всё в массив:
    Пример
    spoiler
    $data = array('items' =>array(
    array(
    'description' => $description, 
    'category_id' => $category_id, 
    'name' => 'Карта торгового центра',
    'offer_id' => $offer_id,
    'price' => $price,
    'old_price' => $old_price,
    Ответ написан
    6 комментариев
  • Почему некоторые заказы могут не менять статус оплаты в битрикс (платежная система Яндекс)?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    У боксберри - если я ничего не путаю в личном кабинете есть опция округлять тариф. Из-за несоответствия сумм статус не менялся (не полная оплата).
    spoiler
    Вынесено как ответ из комментариев
    Ответ написан
    Комментировать
  • Почему битрикс не отправляет письмо на mail.ru через крон?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    в чем может быть проблема?

    Есть сервисы для проверки корректности отправки писем, настройки серверов, увы не могу найти ссылку на один прекрасный сайт, впрочем он всё равно стал платным. Попробуйте этот: https://www.mail-tester.com/
    Эта проблема давняя, из коробки не всегда письма доставляются, и чаще всего это был именно мэйлру.
    Для писем с сайта нужно вносить дополнительные настройки здесь /bitrix/admin/settings.php?lang=ru&mid=main&mid_menu=1 вкладка Почта.
    Поищите блог Антона Долганина на Битрикс Блогах/Форумах. Помнится у него была такая статья.

    Что касается вышеназванного сервиса по настройкам, он вам выдаст, что нужно сделать и какие записи внести в днс домена.

    Устанете бороться, используйте smtp яндекса или мэйл ру, подключив почту на их сервера, либо отправляйте письма через сендпульс, например, подключив его api.

    С вашим кодом всё нормально.
    Ответ написан
    1 комментарий
  • Как лучше вывести список заказов с фильтром по дате?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Как лучше вывести список заказов с фильтром по дате?

    https://dev.1c-bitrix.ru/api_d7/bitrix/sale/techni...
    Вывести всё, лишнее показать/скрыть с помощью верстки, отсортировать по дате.
    У меня идея взять компонент bitrix:sale.personal.order и кастомизировать его

    Быстрее напишите
    Ответ написан
    Комментировать