• Как обработать Hex код, чтобы создать pdf файл?

    @alexalexes
    Скорее всего так:
    $content = hex2bin(str_replace(" ","", "25 50 44 46 2D 31 2E 35 0D 0A 25 B5 B5 B5 B5 0D 0A 31 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 65 2F 43 61 74 61 6C 6F 67 2F 50 61 67 65 73 20 32 20 30 20 52 2F 4C 61 6E 67 28 72 75 2D 52 55 29 20 2F 53 74 72 75 63 74 54 72 65 65 52 6F 6F 74 20 32 32 20 30 20 52 2F 4D 61 72 6B 49 6E 66 6F 3C 3C 2F 4D 61 72 6B 65 64 20 74 72 75 65 3E 3E 3E 3E 0D 0A 65 6E 64 6F 62 6A 0D 0A 32 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 65 2F 50 61 67 65 73 2F 43 6F 75 6E 74 20 31 2F 4B 69 64 73 5B 20 33 20 30 20 52 5D 20 3E 3E 0D 0A 65 6E 64 6F 62 6A 0D 0A 33 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 65 2F 50 61 67 65 2F 50 61 72 65 6E 74 20 32 20 30 20 52 2F 52 65 73 6F 75 72 63 65 73 3C 3C 2F 45 78 74 47 53 74 61 74 65 3C 3C 2F 47 53 35 20 35 20 30 20 52 2F 47 53 36 20 36 20"));
    // если записать в каталог сервера, то так:
    file_put_contents("file.pdf", $content);
    // если отдать контент браузеру, то так:
    header("Content-type:application/pdf");
    header("Content-Disposition:inline;filename='file.pdf");
    echo $content;
    Ответ написан
    1 комментарий
  • Как отфильтровать реквизиты по дате?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    В целом у меня получился такой же код за исключением пары небольших дополнений:
    1. EntityRequisite довольно объемный класс (хранит достаточное количество переменных) и гонять его туда-сюда смысла особого нет, проще использовать существующий инстанс если он есть. Например если на странице не обращались к нему, то он и так будет создан, а если какая-то работа с ним велась то будет использован существующий экземпляр.
    2. В select поле звезда означает не "все" поля, а "все явные поля", т.е. если нужно выбрать действительно все поля то нужно дополнять поиск еще и "UF_*" чтобы выбрать действительно все.
    3. Лучше воспользоваться статической функцией createFromTimestamp на DateTime классе и передать туда strtotime - таким образом вы не будете зависеть от формата даты портала/пользователя.

    use \Bitrix\Main,
    	\Bitrix\Crm;
    
    Main\Loader::requireModule('crm');
    
    $entityRequisite = Crm\EntityRequisite::getSingleInstance();
    
    $requisiteList = $entityRequisite->getList([
    	'select' => ['*', 'UF_*'],
    	'filter' => [
    		'=CREATED_BY_ID' => 1,
    		'><DATE_CREATE'  => [
    			Main\Type\DateTime::createFromTimestamp( strtotime("28.09.2022 00:00:00") ),
    			Main\Type\DateTime::createFromTimestamp( strtotime("01.10.2022 00:00:00") )
    		]
    	],
    ]);
    
    foreach ($requisiteList as $requisite)
    {
    	var_dump($requisite);
    }


    P.S. Если вы делаете функцию под удаление, то смысла в самой функции нет, т.е. вы спокойно можете в этом же цикле определить нужен ли вам этот реквизит и удалить его если хотите.
    Ответ написан
    Комментировать
  • Как в компоненте bitrix "Список заказов" (bitrix.sale.personal.order.list) выводить сразу и активные заказы и заказы, которые уже выполнены?

    @po4emu4ka2020 Автор вопроса
    Айнур Валиев, Il'ia Kartovitskii, как оказалось, кастомизировать компонент для моей задачи НЕ нужно.

    У него уже все зашито: и показ всех заказов сразу, и навигация.
    Оставалось только правильно это использовать.

    Если кратко, то для вывода сразу всех заказов нужно использовать перед вызовом компонента указания параметра запроса:
    $_REQUEST['show_all'] = "Y";

    С навигацией тоже все относительно просто. Можно указать шаблон навигации в параметрах вызова, только указывается параметр "NAV_TEMPLATE", а не "PAGER_TEMPLATE", как у других компонентов.

    И в самом шаблоне навигация выводится не с помощью объекта $arResult['NAV_RESULT'], а с помощью обычного вывода переменной, содержащей пагинацию echo($arResult['NAV_STRING']);
    Ответ написан
    Комментировать
  • Как продлить тестовый период Битрикс?

    Ivseti
    @Ivseti Автор вопроса
    Фронтенд HTML, CSS и немного JS с PHP
    Сам нашел ответ, на свой вопрос. Переходим сюда и через 1-2 минуты ключ на почте.

    https://www.1c-bitrix.ru/bsm_register.php
    Ответ написан
    3 комментария
  • Узнать купоны введенные пользователем в Bitrix?

    @tgarl
    Я список купонов перед заказом получаю так:
    $basket  = \Bitrix\Sale\Basket::loadItemsForFUser(
       \CSaleBasket::GetBasketUserID(),
        "s1" 
    );
     $order  = Bitrix\Sale\Order::create( "s1" , \Bitrix\Sale\Fuser::getId());
     $order ->setPersonTypeId( 1 );
     $order ->setBasket( $basket );
     $discounts  =  $order ->getDiscount();
     $res  =  $discounts ->getApplyResult();
     foreach($res['COUPON_LIST'] as $cupo_n=>$ar_r){
    ...
    тут проводим манипуляцую с купоном
    ...
    }

    Примерно как нужно я показал, дальше отталкивайтесь от своей задачи.
    Ответ написан
    4 комментария
  • Почему не работает событие change?

    VIKINGVyksa
    @VIKINGVyksa Автор вопроса
    front-end developer
    оооооууу всем сорян я просто опечатался) У селекта прописал класс .js-fcontol вместо .js-fcontrol. Ну как всегда...
    Ответ написан
    Комментировать
  • С чем связана ошибка?

    @alexprowars
    У вас в момент загрузки скрипта этого элемента нет на странице, оберните код в функцию

    document.addEventListener('DOMContentLoaded', function() {
    });
    Ответ написан
    Комментировать
  • Как в коробочной версии bitrix24 получить комментарий к лиду?

    Для того, чтобы найти комментарий:
    \Bitrix\Main\Loader::includeModule('crm');
    
    $rs = Bitrix\Crm\Timeline\Entity\TimelineTable::getList(array(
      'order' => array("ID" => "DESC"), 
      'filter' => array('=TYPE_ID' => 7),
    'select'=>array("ID", "BINDINGS")
    ));
    while($ar = $rs->Fetch()) 
    {
       echo '<pre>';
       print_r($ar);
       echo '</pre>';
    }

    Array
    (
       [ID] => 1537
       [CRM_TIMELINE_ENTITY_TIMELINE_BINDINGS_OWNER_ID] => 1537
       [CRM_TIMELINE_ENTITY_TIMELINE_BINDINGS_ENTITY_TYPE_ID] => 1
       [CRM_TIMELINE_ENTITY_TIMELINE_BINDINGS_ENTITY_ID] => 134
       [CRM_TIMELINE_ENTITY_TIMELINE_BINDINGS_IS_FIXED] => 
    )

    ENTITY_TYPE_ID берётся из CCrmOwnerType, например, \CCrmOwnerType::Lead
    ENTITY_ID - собственно ID лида/сделки/где-там-ещё можно комментарии оставлять
    OWNER_ID - это ID который нам нужен для следующего запроса

    $rs = Bitrix\Crm\Timeline\Entity\TimelineTable::getList(array(
       'order' => array("ID" => "DESC"), 
       'filter' => array('=TYPE_ID' => 7)
    ));
    while($ar = $rs->Fetch()) 
    {
       echo '<pre>';
       print_r($ar);
       echo '</pre>';
    }

    Array
    (
        [ID] => 263472
        [TYPE_ID] => 7
        [TYPE_CATEGORY_ID] => 0
        [CREATED] => Bitrix\Main\Type\DateTime Object
            (
                [value:protected] => DateTime Object
                    (
                        [date] => 2019-03-18 15:26:16.000000
                        [timezone_type] => 3
                        [timezone] => Europe/Moscow
                    )
    
            )
    
        [AUTHOR_ID] => 14
        [ASSOCIATED_ENTITY_ID] => 0
        [ASSOCIATED_ENTITY_TYPE_ID] => 0
        [COMMENT] => повторное обращение
        [SETTINGS] => Array
            (
                [HAS_FILES] => N
            )
    
    )
    Ответ написан
    2 комментария
  • Как составить правильно резюме начинающему front-end разработчику?

    opium
    @opium
    Просто люблю качественно работать
    Украсить у конкурентов
    Ответ написан
    Комментировать