Задать вопрос
  • Как вывести миниатюру фото в списках CRM Битрикс 24 (Коробочная версия)?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Как в представлении списка, в разделах CRM системы вывести миниатюры изображений (фотографий)?


    Какой-то волшебной кнопки-настройки нет.
    Все по-старинке:
    - Копируем цепочку шаблонов к себе (чтобы шаблоны компонентов прямо в bitrix24 шаблоне сайта не править)
    - Определяем что поле типа файл, определяем что файл - изображение, выводим превью.

    Увы, но в реальности эта работа не на ответ на Q&A, а даже на целую статью или задачу тянет.
    Ответ написан
    Комментировать
  • Почему метод crm.item.update не обновляет поле?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Вы запутались в терминологии: пытаетесь обновить элемент, смотрите список доступных полей.

    Давайте попробую обьяснить:
    - Есть смарт-процесс. Это верхнеуровневая сущность подсистемы смарт-процессов. За работу с ними отвечают crm.type.* методы.
    - У каждого смарт-процесса есть элементы, которые состоят из фиксированных полей и пользовательских полей.
    - Когда вы создаете элемент сп вы заполняется фиксированные поля + пользовательские поля элемента.

    Таким образом, метод crm.item.update обновляет значения полей у элементов смарт-процесса.
    И на вход вы должны подавать ID элемента смарт-процесса, а не ID самого смарт-процесса.
    Ответ написан
    Комментировать
  • Как поправить карточку в CRM после восстановления?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Для начала нужно понять что именно вызывает проблему.

    1. Проверка доступности и мониторингом в админке портала. Что она сообщает?
    2. Понять были ли кастомизации? Может быть существует папка local и переопределенные шаблоны/компоненты.
    3. Какие кастомные модули установлены. Возможно через marketplace.1c-bitrix.ru что-то ставили.
    4. Возможно собрали кривой бекап и часть файлов не загрузилось.
    5. Рекомендую так же проверить логи php и коносль браузера.

    Причин как видите может быть много и с наскока такие вещи отгадать будет очень сложно.
    Если вы собирали бекап стандартными средствами, не проводили кастомизаций портала и разворачиваетесь в чистом окружении Bitrix Env, то можете сэкономить себе кучу времени и обратиться в техподдержку, либо попробовать диагностировать проблему самостоятельно.
    Ответ написан
    1 комментарий
  • Как правильно кастомизировать файл header.php шаблона Битрикс?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Как можно внести изменения в header не копируя весь шаблон в local?

    Как правильно кастомизировать файл header.php шаблона Битрикс?


    Вы задали 2 противоречивых вопроса потому что "чтобы работало" не есть "правильно".

    Способ "Правильно": копируете весь шаблон в папку local.
    На каждом обновлении смотрите dif'ы и обновляете так же local.

    Способ "чтобы работало": можете обьявить папку положить туда файл, а дальше - симлинки.
    Но в таком случае вам придется проверять симлинки что очень не хорошо.

    Рекомендую не заниматься ерундой и копировать шаблон as is, а сравнивать уже diff инструментами
    Ответ написан
  • Возможно ли создание девелоперского сайта в Bitrix24 коробка?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Скорее всего вы не выполнили начальные требования к девелоперскому сайту:

    Либо у вас не активный лицензионный ключ (или он редакции CRM)
    Либо вы не развернули многосайтовость
    Ответ написан
  • Как в bitrix24 с помощью входящего вебухка получать из задачи только определённые поля?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Но проблема в том, что в таком случае возвращаются абсолютно все поля у задачи, даже те, которые мне не нужны.


    Метод task.item.getdata устарел и не имеет параметров фильтрации полей. Возвращаются ВСЕ поля задачи.

    Используйте метод tasks.task.get который и вернет необходимые вам поля.
    Ответ написан
    Комментировать
  • Bitrix24 перенос на ubuntu?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Кто сталкивался переноса сетевого окружения и cms bitrix24 c centos7 на убунту?


    Если вы обладаете достаточными знаниями в Битрикс24 и в системном администририровании то можно поднять на чем угодно.
    Если хотя бы один из этих пунктов отсутствует (например вы разработчик, но никогда не трогали linux-сервер ИЛИ вы системный администратор но в php и битриксе ни бум-бум), то лучше сразу оставить это дело и перейти на Fedora-based дистрибутивы в качестве сервера.

    С технической точки зрения Битрикс24 представляет собой целый комплекс программного обеспечения: помимо рутинной базы данных с картинками сюда же входит достаточно сильная зависимость от серверного ПО. Можно ли пользоваться Битрикс24 на голом Apache или PHP-FPM? Конечно можно, однако из-за некачественной настройки будет страдать конечный пользователь. Системному администратору все равно, а вот пользователю явно не будет комфортно, если вдруг какие-то из заявленных возможностей (например скачивание файлов в архиве, загрузка больших файлов или быстрая отдача файлов) работать не будут.

    Bitrix Env это подготовленное окружения для платформы Битрикс (вне зависимости БУС это или Б24). Уже "из коробки" будут произведены настройки некоторого системного программного обеспечения (SElinux), установлены необходимое ПО (nginx, apache, percona, php и другие) и поготовлены ansible playbook'и для установки/изменения сопутствующего ПО. Ну и конечно обертка в виде bash-меню для их запуска.

    В целом из чего состоит bitrix env не секрет, это явно описано в документации. Не смотря на то что вся документация пишется по Fedora-based дистрибутивы, при наличии должных знаний и опыта не составит труда перенести все это на Ubuntu или любой другой дистрибутив.
    Ответ написан
  • Как внедрить фотогалерею в карточку клиента в CRM Bitrix24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Подскажите пожалуйста решение.


    Стандартного способо (активировал и поехали) нет, т.е. слишком узкая потребность.
    Есть несколько способов штатно добиться чего-то подобного:
    1. Использовать в качестве файлов и папок элементы универсального списка, привязанные к компании
    2. Сделать БП, который при создании компании на общем диске будет создавать папку под клиента и сохранять ссылку в пользовательское поле.

    Есть другой вариант: написать свое rest приложение с встройкой в карточу компании вкладкой - там можно будет делать все что вам угодно, но без навыков и знаний программирования вы просто не сможете это сделать.
    Ответ написан
    Комментировать
  • Почему \Bitrix\Crm\FieldMultiTable::getList не находит компанию с номером телефона +7, а с 7 видит?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Дело в том что у вас номер телефона хранится в международном формате, т.е. "+7...", а вы в первой регулярке указываете что он должен начинаться строго с цифры.

    Надо сказать что искать по сырым значениям телефонного номера это то еще занятие и так лучше не делать.

    Лучше воспользоваться методом поиска дубликатов:

    \Bitrix\Main\Loader::requireModule('crm');
    
    /**
     * Телефон который будем искать
     * @var string
     */
    $phone = '2131164';
    
    /**
     * Список всех ID лидов с этим телефонным номером
     * @var int[]
     */
    $leadIds = [];
    
    
    $adapter = \Bitrix\Crm\EntityAdapterFactory::create([
            'FM' => [
                'PHONE' => [
                    ['VALUE' => $phone]
                ]
            ]
        ],
        \CCrmOwnerType::Lead
    );
    
    $dups = (new \Bitrix\Crm\Integrity\ContactDuplicateChecker())
        ->findDuplicates(
            $adapter,
            new \Bitrix\Crm\Integrity\DuplicateSearchParams([
                'FM.PHONE'
            ])
        );
    
    foreach($dups as &$dup)
    {
        if(!($dup instanceof \Bitrix\Crm\Integrity\Duplicate))
        {
            continue;
        }
    
        $entities = $dup->getEntities();
        if(!(is_array($entities) && !empty($entities)))
        {
            continue;
        }
    
        //Each entity type limited by 50 items
        foreach($entities as &$entity)
        {
            if(!($entity instanceof \Bitrix\Crm\Integrity\DuplicateEntity))
            {
                continue;
            }
    
            if ( $entity->getEntityTypeID() != \CCrmOwnerType::Lead)
            {
                continue;
            }
    
            $leadIds[] = $entity->getEntityID();
        }
    }
    Ответ написан
    Комментировать
  • Как вы делаете бекап портала большого объема?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Это сильно зависит от целевой потребности, от архитектуры используемого Битрикс24, от навыков системного администратора. Надо сказать что 500ГБ это не большой портал.

    Если предположить что у вас один сервер, на котором находится и файлы и базы данных и сама система то мы обычно поступаем так:

    1. Бекап базы данных снимать через Percona XtraBackup.
    Можно использовать mysqldump с разными опциями производительности, но тут уже зависит от разных обстоятельств.

    2. Файловая часть.
    Тут зависит от способа ведения разработки и других требований.
    В самом простом случае: просто tar'ом в архив и отправка на сервер бекапов
    Если места не очень много: rsync на удаленный сервер as is

    Если есть разработка то снимается 2 бекапа: ядро (все кроме папки upload) и файлы (только upload).
    Методы те же.

    Т.е. по факту разработчикам отдается дамп базы и ядро, а пользовательские файлы не передаются.
    Если есть git с внешним репозиторием, то можно снимать вообще 2 бекапа: ядро (только папка bitrix) и файлы (только папка upload)

    Иногда используется сокращенный бекап: средствами системы формируется бекап без поискового индекса и папки upload и хранится он в облаке б24, а файлы в файловом хранилище (AWS S3-совместимое хранилище, например Yandex.Object Storage).

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

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Нужно больше контекста.

    Я сейчас поставил вот такой код в PHP консоль:
    AddEventHandler("crm", "OnBeforeCrmLeadAdd", "CheckOnBeforeCrmLeadAdd");
    AddEventHandler("crm", "OnAfterCrmLeadAdd", "CheckOnBeforeCrmLeadAdd");
    AddEventHandler("crm", "OnAfterExternalCrmLeadAdd", "CheckOnBeforeCrmLeadAdd");
    
    function CheckOnBeforeCrmLeadAdd(&$arFields) {
    file_put_contents($_SERVER["DOCUMENT_ROOT"]."/log_lead.log",print_r($arFields,true)."\n",FILE_APPEND);
    }
    
    \Bitrix\Main\Loader::IncludeModule('crm');
    
    $obLead = new \CCrmLead(false);
    $ID = $obLead->Add(
    	$leadfields = ['TITLE'=>'test'],
    	true,
    	array("REGISTER_SONET_EVENT" => true, "DISABLE_USER_FIELD_CHECK" => true)
    );


    Файл создался.

    Проверь права на папку куда записываешь файл и проверь подключен ли модуль crm на странице.
    Ответ написан
    Комментировать
  • Как добиться отображения Чатов в мобильном приложении Битрикс аналогично приложению Битрикс24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Вам нужно не открывать iframe в чаты, а разработать код, который будет делать то же самое.
    Т.е. это не какая-то галочка или другой шаблон компонента, а уже более нативная разработка.
    Ответ написан
    Комментировать
  • Как получить id лида созданного через плагин WooCommerce(Интеграция wooCommerce с bitrix)?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    вопрос в том, как можно получить id созданного лида


    Замените вызов архаичного метода с логином и паролем на вебхук crm.lead.add
    В результате вызова он вернет вам идентификатор созданного лида, который вы сможете использовать для заполнения товарных позиций
    Ответ написан
    1 комментарий
  • Как отобразить файлы на физическом диске в диске Битрикс24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Подскажите, пожалуйста, можно ли создать на диске Битрикс24 папку, в котором отобразятся физические файлы с подключенного диска?


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

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Как вариант, пытался от system:now отнять дату рождения с помощью datediff с параметром '%y' чтобы вычислить разницу в годах, а потом прибавить к дате рождения и сравнить с датами заселения и выселения.


    Создаете 2 переменные:
    - День рождения (дата)
    - Разница в годах (число)

    Первым делом вычисляете разницу (datediff с параметром y) между текущей датой и датой рождения и записываете результат в "Разница в годах". Именно в числовое поле, а не в дату - иначе будет результат 1970 год.
    Вторым - устанавливаете "День рождения" как результат dateadd между "Дата рождения" и разницей в годах.
    Третьим - сравниваете :)

    Можно ли использовать substr с переменной типа "дата"?


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

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Добавляется пустой лид, как сделать, чтобы данные добавлялись в соответствующие поля?


    В документации (https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_l...) сказано что метод crm.lead.add принимает 2 параметра: fields и params.
    Вы НЕ передаете эти параметры, но передаете параметры NAME и PHONE.

    Отсюда можно сказать что ваш запрос должен выглядеть так:

    bitrix.site.ru/rest/107/dklsaubnbfsdfsfanh3a/crm.lead.add.json?fields[NAME]=111111&fields[PHONE]=1111111111111

    Однако я не рекомендую передавать параметры напрямую в query string, а использовать вместо этого payload часть вашего запроса.

    Как ее использовать?
    1. Выполняете не GET, а POST запросы
    2. В Content-type заголовке передаете application/json
    3. В payload-части передаете json.
    Ответ написан
    Комментировать
  • Даст ли освоение Битрикс24 преимущества Laravel фрилансеру?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    TLDR: Если вы рассматриваете Битрикс24 (облако) и свои приложения - флаг вам в руки. Если хотите взять коробку и отпилить у нее фронтент - лучше откажитесь от этой затеи.

    давать возмоность клиенту интегрировать свой портал с Б24 и использовать Б24 в качестве даже админки.


    Когда вы говорите про использование Б24 в качестве админки вы очень сильно заблуждаетесь. Битрикс24 это не 1С-Битрикс: Управление сайтом, а ваше утверждение растет из архаичных "Возьмем БУС, оставим админку, публичку напишем на ХХХ" (которые были довольно распространены чисто относительно БУСа лет эдак 5-10 назад), однако в Б24 публичка играет не менее важную роль чем админка (например классической админки для модуля СРМ просто нет). Сама по себе идея использовать Laravel не для отдельный частей а для "фронта в целом" довольно утопична.
    Это не будет легкой прогулкой по документации, с примерами и понятным маршрутом.

    То есть появится возможность зарабатывать и на настройке Битрикс 24, и на продаже коробок, и на настройке интеграции с сайтом и на разработке самого сайта.


    А вот это уже довольно хороший контекст.
    Если вы изучите REST API Битрикс24, научитесь писать приложения для самого Битрикс24, то ваша ценность как компании только вырастет.
    Вы действительно получите возможность И заработать на создании сайта И заработать на интеграции с Битри24 И продаже облачных/коробочных лицензий И на настройке Битрикс24.
    Но вот точно не стоит связываться с разработкой сложных и нестандартных механик коробки, которые невозможно выполнить без кастомизации кода. Там опыт Laravel будет только мешать.
    Ответ написан
  • Как вызывать методы rest api Bitrix24 коробки из блока php-кода в бизнес-процессе?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Как вызывать методы rest api Bitrix24 коробки из блока php-кода в бизнес-процессе?


    Методы REST API изложены в https://dev.1c-bitrix.ru/rest_help/
    Через REST вы не можете вызвать нативное API.

    Или как например выполните те же действия через методы классов https://dev.1c-bitrix.ru/api_help/crm/index.php

    Основы разработки вы можете начать постигать здесь: https://dev.1c-bitrix.ru/learning/course/index.php...
    Ответ написан
    Комментировать
  • Как сделать адаптивную темную тему на сайте?

    gromdron
    @gromdron
    Работаю с Bitrix24
    1. Разрабатываете сайт
    1.1 Делаете светлую тему
    1.2 Делаете темную тему

    2. Делайте таким образом, чтобы авторизованный пользователь в настройках пользователь мог выбрать тему.
    2.1 Делаете селектор
    2.2 Модифицируете код вашего сайта чтобы он на основании авторизации пользователя подменял тему.

    3. Если хотите чтобы и у неавторизированных пользователей была такая возможность, то сохраняйте тему в cookie и при заходе на сайт в код п. 2.2 добавляете проверку cookie.

    Какой пункт осветить подробнее?
    Ответ написан
    3 комментария
  • PHP Fatal error: Uncaught TypeError: array_rand(): Argument #1 ($array) must be of type array, string given in?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Метод array_rand принимает первым аргументом массив, а вы передаете в него строку.

    Возможно вам бы смогли подсказать как именно модифицировать код, если бы вы сказали что он должен делать.
    Ответ написан