• Как внедрить парсер в Bitrix?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Написать агента достаточно просто, но без конкретных данных рассматривать вашу ситуацию довольно сложно.
    Я могу порекомендовать общие подходы для более глубокого изучения проблемы.

    1) Дописываем разработанный механизм логгирование.
    Принимая во внимание, что windows-путь и linux-путь это 2 разных способа написания путей, то путь к этому файлу лучше определить относительно $_SERVER['DOCUMENT_ROOT'] и с использованием функции realpath
    Парсер должен логгировать:
    - Время вызова
    - Путь до файла (откуда он собирается читать)
    - Наличие файла (есть ли этот файл вообще)
    - Корректность файла (правильное ли расширение, все ли столбцы есть и т.п.)
    - [все бизнес-моменты, как успех, так и провал, в том числе причину провала]
    - Время завершения вызова (когда работа закончена)

    2) Проверяем ТТХ парсера
    - Есть ли спец. требования (например bitrix ставит mb_string = 2, многие парсеры работают строго при mb_string = 0)
    - Версию php (миноры должны быть строго одинаковы)
    - Наличие php-модулей (а вдруг вы используете XMLReader, который на боевом выключен?)

    3) Если все выше "Ок", то проверяем - работает ли парсер без агентов (т.е. прямым вызовом c подключением ядра битрикса)
    Проверяем, чтобы это был не просто php код, а это был код оформленный по соответствующим агентам правилам. Смотрим чтобы лог-файл корректно отработал и записал нужную информацию!
    Особенно поможет документация: https://dev.1c-bitrix.ru/learning/course/index.php...

    4) Создаем агента и смотрим ход выполнения.
    Если что-то не работает - смотрим логи и правим.

    P.S. Если версия вашего php выше 7, то в работе очень поможет try-catch с Throwable, который поймает многие перехватываемые ошибки исполнения.
    Ответ написан
    Комментировать
  • Как мне вывести к товару отзыв для этого товара?

    gromdron
    @gromdron
    Работаю с Bitrix24
    А в чем проблема вместо 125 использовать этот самый "$arResult["ID"]", который и так содержит ID товара который вы смотрите?

    Т.е. по факту вы пишете следующее:
    1) Разрабатываете компонент который на основе ID товара выведет его отзывы
    2) В шаблоне вывода компонента добавляете вызов своего компонента.
    Ответ написан
  • Почему не получается вывести данные из БД?

    gromdron
    @gromdron
    Работаю с Bitrix24
    false возвращается в случае если запрос по какой-то причине не удалось выполнить.
    Посмотреть конкретную причину можно через функцию mysqli_error

    В своем коде, вам так же всегда требуется проверять возвращаемый результат и логировать подобные ошибки.
    Ответ написан
  • Как с помощью REST заполнить переменную БП?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Нет, такого REST метода нет.

    Для коробочной версии Битрикс24 можно написать свое действие БП или расширить REST методы

    Какие варианты в облачном битрикс24 есть?
    - Через свое действие бизнес-процесса.
    Сделать свое действие БП, в котором возвращать в нем нужную информацию.
    Эту информацию записывать в переменную.

    - Если БП запущен на сущности
    (Не рекомендуется) изменять значение сущности напрямую

    - Если БП использует универсальный список
    Можно изменять значения универсального списка. Например 1 экземпляр БП на сделке создает 1 запись в УС и с ней работает.

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

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

    Перед использованием событий, рекомендую прочитать соответствующую статью в курсе Bitrix Framework, а так же помнить что событие вызывается для всех элементов (т.е. нужно проверять что вы обрабатываете именно нужный список) и что вместо символического кода может прилететь ID пользовательского поля.

    Есть конечно же и альтернативный вариант: сделать бизнес-процесс который проверяет дату на адекватность (например год должен быть не меньше 2000 и не больше 2100) и в случае разницы найдет соответствующую дельту и прибавит столько же лет к текущей дате.
    Ответ написан
    Комментировать
  • Как добавить тег к задаче с помощью вебхука?

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

    Что касается ошибки, которую вы получаете: там по английски написано "Задача не найдена или у вас нет доступа".
    Это означает что либо задачи с таким id не существует либо пользователь от которого создан веб-хук не имеет роли (ранее) или не имеет доступа (не видит в интерфейсе) этой задачи.

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

    Что касается количества тегов, то тут действует обычный http протокол и передача в GET-параметрах иерархичных структур, т.е. для установки 2х тегов запрос будет иметь вид:
    /tasks.task.update?taskId=3564&fields[TAGS][]=тег1&fields[TAGS][]=тег2
    Ответ написан
    Комментировать
  • Как обозначить отношение задачи к стадии сделки?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Я бы предложил воспользоваться механизмом списков: создать технический список "Задача -> Сделка" и прописать 2 поля: ID задачи и ID сделки.
    При создании задачи из БП записывать туда эту связь.

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

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Для единого БП такое не реализовать.
    Необходимо разбивать Ваш бизнес-процесс на отдельные составляющие таким образом, чтобы единого экземпляра небыло.
    Чтобы БП возвращался к ранним стадиям, вам нужно сделать БП со стадиями и ПОСЛЕ завершения задачи дополнительно проверять статус и отправлять его в соответствующий блок, но проще БП разбить на несколько частей.
    Ответ написан
    1 комментарий
  • Как удалить пользователя через вебхук?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Удалить пользователя нельзя, но можно изменить его данные (обнулить) и деактивировать (сменить поле ACTIVE на N)
    Ответ написан
    Комментировать
  • Можно ли в БП при генерации задачи, указывать постановщика/исполнителя с помощью поля документа?

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

    1) Измените поле список добавив значения

    Т.е. вместо
    Иванов Иван [11]
    Петров Петр [12]


    Нужно сделать
    [11]Иванов Иван
    [12]Петров Петр


    2) Далее необходимо выполнить преобразование и можно использовать при создании задачи.
    Подробнее: https://dev.1c-bitrix.ru/learning/course/?COURSE_I...

    {=Document:UF_CRM_1594297107 > user}
    Ответ написан
    Комментировать
  • Как использовать ссылку вида "myprotocol://C:/My Folder/123" таким образом, что бы битрикс24 не уничтожал двоеточие в подобной ссылке?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    А почему нельзя изменить ваш же протокол и не использовать второе двоеточие, а ставить его уже в методе-обработчике протокола?
    Ответ написан
  • Сайт на bitrix раздувает таблицу b_event, как исправить?

    gromdron
    @gromdron
    Работаю с Bitrix24
    В b_event хранятся исходящие email сообщения и отключить ее нельзя.
    Вы можете сделать:
    1) Защитить форму обратной связи
    2) Уменьшить время хранения письма в b_event (настройки главного модуля).

    Для защиты формы обратной связи помимо капчи можно использовать:
    - Методы защиты от CSRF (https://habr.com/ru/post/318748/)
    - Потайные input'ы не заполняемые пользователем (зачастую роботы их заполняют)

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

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    На текущий момент продажи "цифрового контента" в битрикс24 (что в облачной, что в коробочной версии) не предусмотрено. Отчасти вы можете реализовать ее самостоятельно через автоматизацию/бизнес-процессы после поступления оплаты.
    Ответ написан
    Комментировать
  • Как передать ссылку в поле сделки без перезаписи предыдущих ссылок методом crm.deal.update?

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


    Метод crm.deal.update изменит не конкретный пункт, а все значения. Методов на точечную дозапись элементов нет, поэтому вам придется получить все значения, добавить свою ссылку и сохранить.
    Ответ написан
    Комментировать
  • Возможно ли отформатировать поле со ссылками, и если да, то как?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    К сожалению для данного типа поля такое использовать нельзя, однако можно использовать какое-либо из полей типа HTML/BB и уже там выводить как вам хочется.
    Ответ написан
    8 комментариев
  • Как получить профили всех типов плательщиков в bitrix:sale.order.ajax?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Через кастомизацию выдачи компонента конечно же, но какой в этом смысл, если профиль это комбинация заполненных полей, а поля для разных профилей разные.
    Т.е. значение поля Х для профиля 1 может существовать, а в профиле 2 вообще поле Х может отсутствовать.

    Сделать это проще всего на событиях в компоненте: https://dev.1c-bitrix.ru/api_d7/bitrix/sale/events...
    Ответ написан
  • Где прописать вызов метода BX.SidePanel.Instance.bindAnchors?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    1) Подписываемся на событие OnEpilog модуля main.
    Подробнее в документации: https://dev.1c-bitrix.ru/learning/course/index.php...

    Почему onEpilog? Потому что основной код страницы уже выполнен, а буферизация еще не закончена.

    2) На событии:
    - Проверяем что это не Ajax запрос

    $req = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();
    // $req->isAjaxRequest()


    - Проверяем что страница не админка (будет определена константа ADMIN_SECTION и она будет true)

    И если ок, то регистрируем и подключаем свою js-библиотеку и подключаем ее.
    Подробнее о js-библиотеках: https://dev.1c-bitrix.ru/api_help/js_lib/my_extens...
    3) В коде своей библиотеки регистрируем подписку, как вы указали
    Ответ написан
    Комментировать
  • Почему не происходит редирект после оформления заказа?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Проверьте консоль браузера, возможно пользовательский код возвращает ошибку и обновления страницы не происходит. Обычно такое случается при наличии пользовательских обработчиков событий, ведущих к ошибкам или кастомизированным шаблоном/компонентом.
    Ответ написан
  • Какой тариф битрикс 24 лучше?

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

    Что касается связки ИМ <-> CRM то лично я не доверяю стандартной поставке и сверх существующей дополнительно прописываю логику на передачу статусов/другой необходимой информации.
    Ответ написан
    3 комментария
  • Исходящий вебхук срабатывает на добавление комментариев в задачах и передает ID комментария и ID задачи. Как определить причастность задачи к сделке?

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

    Для определения привязана ли задача к сделке можно воспользоваться методом tasks.task.get.
    У задачи привязанной к CRM будет параметр UF_CRM_TASK с указанием к какой сущности она привязана.
    Ответ написан
    Комментировать