Ответы пользователя по тегу Битрикс24
  • Пользовательское поле - тип Привязка к разделам инфоблоков - как вывести разделы в виде иерархии + поиск?

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


    Скорее всего на той коробке где смотрели была кастомизация стандартного вывода свойства и там уже допилен entity-selector.
    Это не включается галочкой.
    Ответ написан
    2 комментария
  • Почему в ./menu.sh в разделе Configure pool sites нет пункта Create new site?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Вы поставили bitrix env в режиме CRM установки, в то время как в документации все указано для "стоковой" виртуальной машины.

    Для начала вам нужно переключить ее в обычный режим:
    1. Вам нужно отредактировать файл /root/.bash_profile:

    Скорее всего там будет фраза:
    export BITRIX_ENV_TYPE=crm

    Ее нужно заменить на:
    export BITRIX_ENV_TYPE=general

    2. После чего при выполнении ~/menu.sh у вас откроется обычная панель
    Ответ написан
    3 комментария
  • БП - как возобновить завершенную задачу и приостановить дальнейшее выполнение БП?

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


    Нет. Самое простое - сделать REST приложение, которое умышленно создаст паузу и будет проверять не завершена ли задача и не заполнено ли нужное поле.
    Ответ написан
    Комментировать
  • Как массово настроить уведомления в настройках чата для всех пользователей?

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


    Штатно тако настройки нет, однако можно поискать аналоги (например это)
    Ответ написан
    1 комментарий
  • Можно ли в Битрикс24 из объекта "Контакт" выполнить поиск по элементам смарт-процесса?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Но как мне найти уже созданный элемент?


    На вкладке в сущности отображаются только привязанные к этой сущности элементы.
    Т.е. чтобы прикрепить к "Контакту" "Автомобиль", вам нужно зайти в список элементов "Автомобиль", найти нужный и отредактировать его установив в поле-связке нужный вам контакт.
    Штатный интрумент не подразумевает другого
    Ответ написан
    Комментировать
  • Где хранятся файлы приложения Битрикс 24 Маркет?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    День добрый! Есть коробка Битрикс 24. Подскажите путь где хранится установленное приложение из Битрикс24.Маркет ?


    Существует 2 типа приложений:
    - Встроенные (они находятся в папке apps и состоят из html/js/css)
    - Внешние

    Внешние приложения не находятся на вашем сервере - они находятся на сервере у разработчика.

    Однако! Контент этих приложений аналогичным образом может хранится как в инфоблоках на портале (в админке), так и на внешних серверах. Т.е. если у вас локальное приложение - то не обязательно оно все у вас, а если у вас внешнее приложение, то не обязательно оно хранит данные у себя.
    Ответ написан
    Комментировать
  • Bitrix24 Локальное приложение возвращает пустой массив, как фиксить?

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

    Это поведение описано в документации к методу.


    Если возвращается пустой массив days, то сначала выставьте нужные опции, для доступа к отчету и сбору данных (необходимо быть администратором и на любой странице портала выполнить в консоли):

    BX.rest.callMethod('timeman.timecontrol.settings.set', {
        active: true,
        REPORT_SIMPLE_TYPE: 'all',
        REPORT_FULL_TYPE: 'all',
        report_request_type: 'user',
        report_request_users: [BX.message.USER_ID],
    }, function(result){
        if(result.error())
        {
            console.error(result.error().ex);
        }
        else
        {
            console.log(result.data());
        }
    });


    После этого откройте или закройте рабочий день, после этого в отчете для этого пользователя будут данные:
    BX.rest.callMethod('timeman.timecontrol.reports.get', {
        user_id: BX.message.USER_ID,
        year: 2019,
        month: 1,
        workday_hours: 8,
        idle_minutes: 15
    }).then(e => console.log(e))


    Ответ написан
    Комментировать
  • Что необходимо для работы контроллера в Bitrix?

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


    Есть несколько способов чтобы "Битрикс" (а на самом деле php) видел ваш класс:
    1. Ванильный php: класс должен быть подключен к выполнению явно через подключение файла в которым он описан
    2. Вандальный/Коробочный Б24: Класс должен располагаться где-угодно, но быть заргистрирован через автолоадер (здесь не важно что вы используете: composer, битриксовый или свое на базе spl_autoloader) в init.php
    3. Через модули.

    Если мы говорим о классическом bitrix framework то правильнее делать модуль.
    Причем в модуле есть 2 варианта его инициализации:
    1. Через "автолоадер" или прямое подключение в include.php ()
    2. Через `psr`-подобный загрузчик в папке lib (https://dev.1c-bitrix.ru/learning/course/index.php...)

    Иначе говоря:
    - Либо вы размещаете где хотите и подключаете его сами
    - Либо если вы работаете с модулем то положить его по psr4 в папочку `lib` вашего модуля.

    Как работает автозагрузчик?


    Если вы читали абзац выше, то поняли, что единого центразиованного загрузчика тут нет.
    Есть:
    1. Глобальный автозагрузчик из модулей (который загружает по psr4 из активных подключенных модулей)
    2. Локальный автозагрузчик модуля (для подключенного модуля)
    3. Кастомные загрузчики (тут кто во что горазд).

    Соответственно, если мы говорим про 1 и 2 типы загрузчиков, что сначала необходимо подключить модуль (`\CModule::IncludeModule` или `\Bitrix\Main\Loader`), а потом уже вызывать классы.
    Если вы попытаетесь вызывать классы, а до вас никто не подключил модуль, то вы получите фатал.

    Везде ли он работает?


    Последний абзац выше показывает что нет.

    Есть ли проблемы с версиями? Отличия ядер битрикса или ещё какой черной магии?


    Описания в зависимости от версии особо нет.
    Что касается проблем, то примерно до версии 18 psr-подобного загрузчика не было, потом он начал появляться и совершенствоваться.
    Если ориентироваться на последнюю версию Битрикс24, то проблемы если и есть, то только локального характера связанные с модульной структурой.
    Здесь могу посоветовать только проштудировать документацию и потыкаться самому. Универсальной формулы нет - документация тут скудная.

    Как настроить defaultNamespace и namespaces в .settings.php, чтобы всё заработало?


    Здесь нужно намного больше информации, например: как модуль используете, что сделали, что ожидаете и что работает не так как ожидали.
    Пока могу лишь ограничиться ответом "настроить согласно документации" (ха-ха, злая шутка, особо документации нет - нужно больше вводных данных см выше)

    Есть ли где-то полностью рабочий пример реализации своего класса, с описанием того где файлы и почему они там?


    Нет, такого нет.
    В Битриксе это можно получить только после изучения всех курсов/доков/экзаменов и с точки зрения практического опыта.
    Можно посмотреть уже готовые модули (что-то подобное можно найти на github, например https://github.com/alex-nzr/bitrix-example-boilerp... или https://github.com/zahalski/awz.ydelivery/tree/mas...)/
    Можно посмотреть как это делать без модулей https://bx24devbook.website.yandexcloud.net/index.html (тут скорее больше описания чем конкретные классы).

    Готового гайда как у симфони здесь увы нет.

    Какая именно должна быть ссылка для проверки роута?

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

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

    Если мы говорим про возможность останавливать какое-то уже сложившееся действие, то такая возможность отсутствует.
    Ответ написан
    Комментировать
  • Неожиданно перестал работать BitrixCRM 7.5 белый экран на входе на сайт и не показывает окно авторизации что делать?

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

    1. Вы видите "белый экран", а если посмотреть исходный код страницы, увидите ли вы php код?
    Если вы видите этот код - значит проверяйте параметр `short_open_tags` - он должен быть "on".

    2. Если кода не видно, но перед этим вы делали какой-либо `var_dump` (или `print_r` и т.п.) в коде.
    Удалите этот код и попробуйте еще раз.

    3. Если все произведенные выполнено, но вы по-прежнему видите белый экран, то нужно проверять логи php.
    Как это можно сделать?
    3.1 Можно в `.settings.php` включить отладку (debug=true)
    3.2 Можно в `.settings.php` настроить логгирование исключений (`debug` -> `log` и посмотреть куда сыпятся логи: чаще этот параметр не задан, но иногда он указывает на `/var/log/php/exception.log` либо на `bitrix/modules/error.log`). Открываем этот файл и смотрим что там не так
    Ответ написан
  • Как в коробочном Битрикс 24 открывать iframe задания бизнес процесса, сразу после его создания?

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


    Никак - это разный контекст.

    Начнем с понимания того как именно могут быть запущены бизнес-процессы?
    1. Через прямой запуск из публички веб-браузера
    2. Через косвенный запуск из публички (когда какое-то действие неявно вызывает запуск процесса)
    3. Через api (например в консоли сервера, cron/агенты и т.п.)
    4. Мобильное приложение (стоит особняком).

    Во всех этих случаях лично мне не понятно как, кому и где открывать попап.

    Обычно на такое есть 2 способа:
    1. Через асинхронный опросник в фиксированную точку.
    2. Через пуш-события

    Рассмотрим подробнее механизм работы каждого. "Асинхронный опросник" выполняет поиск заданий назначенных пользователю с определенной периодичностью и в случае если подобное задание найдено - делает рендер этого задания в определенную область.
    На этой технологии например работает модуль "Процессы в карточках CRM".

    Механизм "пуш-событий" требует немного больше навыков и работающий push.
    Здесь нет опросного механизма, а все действие завязано на "событиях назначения заданий бизнес-процессов", которые выбрасывают сообщние через websocket. Далее при получении сообщения уже понимается контекст работы приложения (десктоп/мобильное, потому что в cli-режиме никто события не слушает) и происходит отрисовка именно на js в нужном контексте (открывается попап или слайдер).

    Оба способа полный кастом, т.е. в стандарте для этого нет ничего.
    Ответ написан
    Комментировать
  • Как получить в ответ от веб хука результат работы бизнес процесса - текстовую строку?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Как получить в ответ от веб хука результат работы бизнес процесса — текстовую строку?


    Никак.

    Как архитектурно работает активити вебхук в Битрикс24 (не важно в облаке или в коробке (без кастомизаций)):
    1. Вызывается действие "Вебхук", на вход подается ссылка которая будет вызвана
    2. Проверяется регистрация на облачном провайдере (oauth.bitrix.info) (если регистрации нет, выполняется авторегистрация)
    3. Если регистрация есть (или прошла успешно) - двигаемся дальше, если нет - пропускаем шаг.
    4. На облачный провайдер (oauth.bitrix.info) передается ссылка. Там формируется задание на отправку и оно падает в очередь.
    5. Облачная очередь обрабатывается асинхронными скриптами и выполняется вызов этой исходной ссылки.

    Как можно увидеть в данном случае вызов осуществляет не портал, а облачная очередь и даже если ссылка что-то вернет - этот результата не будет обработан (ведь его обрабатывает даже не ваш Битрикс24)
    Ответ написан
    Комментировать
  • Правильный ли алгоритм создания сделки через REST в Bitrix24?

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


    Правильный алгоритм создания сделки: берете метод `crm.deal.add` и создаете.
    Правильный ли это алгоритм с точки зрения бизнеса и вашей автоматизации это другой вопрос.

    Я так понимаю, что это лиды - это пользователи и делается через


    Лид это не пользователь и не сделка, а "намерение какого-то лица получить товар/услугу".
    Почему эта фраза в кавычках? Потому что звонок спамера это тоже лид, только некачественный. Запрос конкурентов - тоже лид.
    Запрос может быть как от нового клиента (новый лид), так и от текущего (повторный лид), но это определяется бизнес-процессами компании (не путать с бизнес-процессами Битрикс24).

    В некоторых компаниях лидов нет. Есть только сделки и контакты/компании. Например подобную схему использует AmoCRM.

    Правильно ли я понимаю, что надо перед тем как создавать сделку, надо сделать поиск лида (crm.lead.get) из списка всех лидов (/crm.lead.list)?


    Нет. Как уже говорили для создания сделки не следует искать лиды (если конечно бизнес-процесс вашего клиента не подразумевает такое), но даже если и следует, то `crm.lead.list` будет достаточно. Мне на практике не встречалось такого чтобы для создания сделки нужно было искать лиды - максимум текущий контакт/компанию по номеру телефону.

    В моем случае, кейсы обычно следующие:

    ~70% - создание лида
    - Сформировать данные которые нужно отправить
    - Отправить на `crm.lead.add`

    ~25% - создание сделки
    - У нас есть телефон или почта, через `crm.duplicate.findbycomm` ищем контакт/компанию.
    - Если контакт/компания не найдена - создаем.
    - Создаем сделку через `crm.deal.add`

    ~4% - создание повторного лида
    - У нас есть телефон или почта, через `crm.duplicate.findbycomm` ищем контакт/компанию.
    - Если контакт или компания найдена - создаем повторный лид
    - Если контакт или компания НЕ найдена - создаем лид
    Ответ написан
    Комментировать
  • Как скопировать файл из одного комментария в другой?

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

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

    $queryData = [
    	'fields' => [
    		"TITLE" => "lid 1",
    		"NAME" => "name name",
    		'PHONE' => [
    			[
    				"VALUE" => "654654",
    				"VALUE_TYPE" => "WORK"
    			]
    		]
    	],
    	'params' => ["REGISTER_SONET_EVENT" => "Y"]
    ];
    
    echo sendToBitrix('crm.lead.add', $queryData);
    
    function sendToBitrix( $method, $data )
    {
    	$curl = curl_init();
    
    	curl_setopt_array($curl, array(
    	  CURLOPT_URL => 'https://**********/'.$method,
    	  CURLOPT_RETURNTRANSFER => true,
    	  CURLOPT_ENCODING => '',
    	  CURLOPT_MAXREDIRS => 10,
    	  CURLOPT_TIMEOUT => 0,
    	  CURLOPT_FOLLOWLOCATION => true,
    	  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    	  CURLOPT_CUSTOMREQUEST => 'POST',
    	  CURLOPT_POSTFIELDS =>json_encode($data),
    	  CURLOPT_HTTPHEADER => array(
    	    'Content-Type: application/json',
    	  ),
    	));
    
    	$response = curl_exec($curl);
    
    	curl_close($curl);
    	return $response;
    }
    Ответ написан
  • Как настроить в модуле почты открытие файлов через google docs?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Такой настройки нет
    Ответ написан
    Комментировать
  • Как подключить Exchange календарь и почту в Битрикс24?

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

    На этом скриншоте вы конфигурируете сихнронизацию задач, событий и контактной книги.
    Для этого нужно чтобы EWS (Exchange web service - отдельная веб-служба Exchange сервера) умел принять от портала plain авторизацию и вы обладали достаточными полномочиями чтобы совершить требуемые действия.

    Если у вас НЕ включен веб-сервис на Exchange, если у на EWS НЕ включена plain авторизация, если у вашего аккаунта недостаточно полномочий (внезапно то что вы входите в свой календарь не значит что у вас есть доступ его подключить), то именно эту ошибку будет раз за разом выдавать EWS
    Ответ написан
  • Почему нет пункта "центр продаж" в crm битрикс24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Ошибка "При выполнении скрипта возникла ошибка" возникает из-за какого-либо программного сбоя: например отсутствуют классы или внутренняя ошибка.

    Любое отключение модулей должно всегда сопровождаться исследованием - нельзя отключать стандартные модули просто потому что вам так захотелось. Обязательно проверьте наличие модулей: Интернет-магазин, Торговый каталог, CRM - они должны быть и должны быть включены.

    Немного отладочной информации тоже не повредит: если вы включите debug-режим (что это такое - читайте в документации к bitrix framework), то там скорее всего сообщат о каких-либо классах и это может натолкнуть на мысли что еще вы отключили.

    В случае активной технической поддержки - после произведенных действий, когда вы включите все модули и дело окажется не в них (такое возможно, операция удаления и установки модуля не всегда чистые), рекомендую обратиться в техническую поддержку.
    Ответ написан
    Комментировать
  • Не работает обновление через crm.item.update?

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

    Однако, `BX.rest` само по себе не является частью публичной библиотеки для REST приложений, что наталкивает на мысль: вы применяете эти методы в коробочном Битрикс24 и здесь можно предположить любые кастомизации.

    Обратитесь к разработчикам, которые поддерживают вашу CRM - возможно они дадут пояснения как это связано.
    Либо обратитесь в техническую поддержку для разьяснений.

    В любом случае: это ошибка не самого обновления, а какой-то sideeffect на который невозможно дать полноценного правильного ответа в данном случае.
    Ответ написан
    Комментировать
  • Как лучше организовать структуру для модуля битрикс?

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

    Если хотите делать более канонично, то ориентируйтесь на те же модули битрикса и смотрите хорошие практики.
    Так, например принято делать делить на `controllers` (для контроллеров), `internals` (внутрение методы).
    Т.е. никаких `ajax.php` только контроллеры и все апи считается публичным (пусть и не документированным), если оно не помечено `@internal` или не находится в `internals`.
    Ответ написан
    1 комментарий