Ответы пользователя по тегу Битрикс24
  • Как реализовать выбор пользователя по должности в битрикс24?

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

    Предположим, что у нас есть некоторая переменная "UsersWithTargetPosition", имеющая тип - Пользователь, множественная.

    2. Т.е. набор типов ограничен, то и набор значений ограничен.
    Например, если это множественная переменная, то она должна принимать массив.
    CUser::GetList - вернет объект, который нужно обработать.

    3. Внимательнее читайте документацию к методу: https://dev.1c-bitrix.ru/api_help/main/reference/c...
    У вас несовпадение входящих переменных.
    Для вашего случая, я бы воспользовать более лаконичным UserTable

    4. Не забывайте обрабатывать ошибки. Вы работаете с блоком php кода.

    Для приведенного случая, код получиться примерно таким:

    $usersWithPosition = [];
    
    try
    {
    	$position = "Кладовщик";
    
    	$users = \Bitrix\Main\UserTable::getList([
    		'select' => ['ID'],
    		'filter' => [
    			'=WORK_POSITION' => $position
    		]
    	]);
    
    	foreach( $users as $user )
    	{
    		$usersWithPosition[] = "user_".$user['ID'];
    	}
    }
    catch( \Throwable $e )
    {
    	$this->WriteToTrackingService($e->getMessage(), 0, \CBPTrackingType::Error);
    }
    
    $this->SetVariable('UsersWithTargetPosition', $usersWithPosition);


    Проверьте код, возможно там есть ошибки.
    Ответ написан
    Комментировать
  • Бизнес-процесс в битрикс24 - как проверить год работы сотрудника?

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


    Штатно - никак.

    В Битрикс24 бизнес-процесс это последовательность действий запускающася над определенной сущностью, поддерживающей БП.
    Пользователи - не являются сущностью для которой доступны бизнес-процессы.
    Соответственно - нужно либо прийти к дублирующему механизму использующему БП, либо отказаться от того чтобы делать это на БП в пользу, например REST-приложения.

    REST-приложение в данном случае является наиболее предпочтительной системой, т.к. создает меньше нагрузки на ваш портал.
    Можно попробовать через дублирующую сущность: нужно всего лишь создать универсальный список, куда заносить Пользователя и Дату его первого дня, а потом в цикле с ожиданием проверять необходимую дату.
    Ответ написан
    Комментировать
  • Как можно сделать на битриксе англоязычную версию и казахскую?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Касательно Битрикс24:
    - Если мы говорим про облачную версию: то только полной копией Интернет-Магазина24.
    - Если мы говорим про коробочную Битрикс24 с девелоперским сайтом, то точно так же как и в БУС.

    Что касается БУС, то кто во что горазд:
    - Создавать дополнительный сайт
    - Создавать дополнительные свойства и ими управлять
    - Просто подключить google translate к сайту

    Сильно много зависит от того на какую аудиторию расчитано, потому что у каждой страны свои законы относительно работы ИМ.
    Ответ написан
    Комментировать
  • Сайт эро массажа с интеграцией битрикс24?

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

    Наверное я бы исходил из следующих утверждений:
    1. Получать заявки с ваших сайтов эротическим содержимым можно. Особенно если они не противоречат законодательству РФ.
    2. Если важна приватность, я бы рекомендовал Коробочную версию Битрикс24 - там вы можете вообще все что угодно что не противоречит законодательству РФ (а если нет решения суда, то и ограничений нет). Мне кажется, что таким сайтам очень важна приватность.
    Ответ написан
    2 комментария
  • Как вывести миниатюру фото в списках 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 комментарий
  • Возможно ли создание девелоперского сайта в 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 будет только мешать.
    Ответ написан