Задать вопрос
  • Как в Битрикс24 интегрировать несколько CRM-форм от разных клиентов?

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

    Звучит как профит
    Ответ написан
    4 комментария
  • Как отправить уведомление после смены статус задачи на закрыто?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Без лишних слов, вот так:

    // Подписываемся на событие через современный механизм
    $eventManager = \Bitrix\Main\EventManager::getInstance();
    $eventManager->addEventHandlerCompatible("tasks", "OnTaskUpdate", "OnTaskUpdateHandler");
    
    function OnTaskUpdateHandler($taskId, $editedFields, $originalFields)
    {
    	// Если статус не меняется, ничего делать не нужно
    	if ( !array_key_exists('STATUS', $editedFields) )
    	{
    		return true;
    	}
    
    	// Если статус меняется НЕ в состояние completed - ничего делать не нужно 
    	if ( intval($editedFields["STATUS"]) != \Bitrix\Tasks\Internals\Task\Status::COMPLETED )
    	{
    		return true;
    	}
    
    	// Если вы меняете что-то другое, например название завершенной задачи, а статус просто летит за компанию, то делать ничего не нужно
    	if ( $editedFields["STATUS"] == $editedFields["originalFields"] )
    	{
    		return true;
    	}
    
    	// Наш обработчик не имеет смысла, если модуль "Веб-мессенджер" не подключен
    	if (!\Bitrix\Main\Loader::includeModule('im'))
    	{
    		return true;
    	}
    
    	/**
    	 * Посмотреть поля можно через этот метод.
    	 * Они будут в той же директории где и текущий файл, в файле log.log
    	 */
    	//\Bitrix\Main\Diag\Debug::dumpToFile(
    	//	[
    	//		'$taskId'        => $taskId,
    	//		'$arFields'      => $arFields,
    	//		'$eventTaskData' => $eventTaskData
    	//	],
    	//	date('d.m.Y H:i:s'),
    	//	str_replace($_SERVER['DOCUMENT_ROOT'], '', __DIR__.'/log.log')
    	//);
    
        $notificationParams = [
    		"TO_USER_ID"   => $originalFields["CREATED_BY"],
    		"FROM_USER_ID" => $originalFields["CREATED_BY"],
    		"NOTIFY_TYPE" => IM_NOTIFY_SYSTEM,
    		"NOTIFY_MODULE" => 'tasks', 
    		"NOTIFY_MESSAGE" => "Задача #".$taskId." была закрыта.",
    	];
    
    	\CIMNotify::Add($notificationParams);
    }
    Ответ написан
    Комментировать
  • Как отлавливать событие Изменения/Добавления OnAfter в Битрикс24 после исполнения всех Бизнес процессов?

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

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


    1. На компьютере с Windows вообще не рекомендуется устанавливать Битрикс. Либо VirtualBox/VMWare/Другая виртуализация, а туда CentOS7 + Bitrix Env, либо виртуализация и туда любая ось и сами настраивайте nginx/php-fpm/mysql и т.п.

    2. На крайняк docker + wsl.

    Что касается старых версий то их можно скачать только через техподдержку или у вас есть старый ключ, который не продлевали (в таком случае в ЛК сайта вы можете запросить последний архив).

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

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Начните с очевидного - проверьте все onEpilog события, затем проверьте onEndBufferContents и далее если это все не поможет вооружайтесь отладчиком и идите в footer.php смотреть что же именно там выдает это подчеркивание. Вариантов может быть масса, но если ядро не правили скорее всего одно из двух событий подойдет и там обнаружите ваше подчеркивание.
    Ответ написан
    Комментировать
  • Можно ли получить пользовательские поля сделки без токкена?

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


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

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Вам нужно получить поля сделки (ID, OPPORTUNITY), посчитать через CCrmAccountingHelper::calculateAccountingData и положить обратно в сделку.

    Хотя скорее всего если вы просто те же поля передадите в пустой update он сам пересчитает все.
    Ответ написан
    Комментировать
  • Какие задачи решает бизнес-аналитик Битрикс24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Хотелось бы начать с того, что есть любая профессия (например где-то есть "Директор сайта" или "Производственный менеджер" или даже "Скрам-мастер") - название и обязанности это разные вещи.

    1. Должен ли Аналитик Битрикс24 заниматься настройкой битрикс24 в соответствии с требованием заказчика?


    Вопрос "Должен ли" - зависит исключительно в плоскости конкретных трудовых взаимоотношений.
    Если в соответствии с должностными обязанностями он должен - то да. Если нет - то нет.
    Мы не в курсе конкретных трудовых отношений с какой-то компанией поэтому точного ответа на вопрос нет.

    Например, в компании где я работаю должности "Аналитик Битрикс24" вообще нет (хотя мы работаем преимущественно с Битрикс24). У нас есть бизнес-аналитики и системные аналитки, при этом они должны знать систему Битрикс24, но совершенно не обязаны ее настраивать.

    2. Какие задачи обычно решает бизнес аналитик Битрикс24?


    Опять же - зависит от конкретных должностных обязанностей.
    Аналитки впринципе довольно субьективная профессия и в зависимости от компании в нее вкладывают разный смысл. Есть компании где "Аналитик Битрикс24" это просто красивое название для человека который выполняет "настройку" Битрикс24 - т.е. собирает требования к бизнес-процессам, пишет тех.задание, а потом сам и создает бизнес-процессы.

    3. Если есть Аналитик Битрикс24 то зачем нужен Администратор Битрикс24 если аналитик может решать все задачи Администратора Битрикс24?


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

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


    Здесь штатно такой возможности не предусмотрено и эту потребность закрывает REST.
    Вам нужно поставить какое-нибудь приложение, которое по идентификатору достанет необходимые товары и чтобы вы могли сопоставить условия.
    Ответ написан
  • Почему возникает ошибка при импорте пользователей из Active Directory в Битрикс24?

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


    В настройках главного модуля есть опция "Email является обязательным полем", если ее выключить то можно добавлять пользователей вообще без email.
    После чего из настроек импорта контроллера в Битрикс24 убрать из списка вообще синхронизацию поля email.
    У вас вход все равно по логину.
    Это способ номер 1 - когда вообще никому мыло не нужно.

    На стороне AD можно завести доп. аттрибут куда прописывать валидный email адрес и указать его в качестве синхронизирующего.
    После чего на стороне AD заполнить этот аттрибут у нужных сотрудников.
    Далее в Битрикс24 в настройках модуля AD/LDAP заполнить аттрибут "E-mail для пользователей, у которых он не указан" - туда нужно вписать ЛЮБОЙ ВАЛИДНЫЙ email адрес.
    По техническому условию не обязательно чтобы у каждого сотрудника был уникальный email, так что можно вписать no@email.com например.
    Это способ номер 2 - когда есть сотрудники которым в профиле мыло все-таки нужно, но есть те кому не нужно.

    Эти способы можно и комбинировать.
    Ответ написан
    Комментировать
  • Как найти элемент списка?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Возможно ли это осуществить и если возможно, то может есть какая-то идея?


    Возможно - через REST приложение в облаке или PHP-код (свое активити) в коробке Битрикс24.
    Штатных инструментов в данном случае нет - разве что только очень экзотические.
    Ответ написан
    Комментировать
  • Как изменить приветственную фразу в битриксе?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    На Битриксе версии 23.750+ Настройки (рядом с логотипом) -> Сотрудники -> Приглашения.
    Выключить "Показывать сообщение о новом сотруднике"
    66d17f1270151896917014.png

    Или через php-консоль (скорее всего работает на версих младше):
    \Bitrix\Main\Config\Option::set('im', 'general_chat_message_join', false);
    Ответ написан
    Комментировать
  • Копирование События в календаре?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Копирование события в Битрикс24 не предусмотрено.
    Ответ написан
    1 комментарий
  • Как добавить запуск своего класса/метода агентом в 1с-Битрикс?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Если вы прописали в php_interface/init.php (а не в конкретный сайт), при этом если он не перекрывается другим init.php то все должно работать с точки зрения подключения классов.

    Однако метод агента должен возвращать строку - либо php-код (полное название функции) следующего агента, либо ничего - у вас же дальше будет "eval("агент");" что вызовет ошибку php.

    Смотрите логи httpd и php
    Ответ написан
  • Как выдать права на просмотр календаря?

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


    Никак, потому что права выдаются на "событие", а не на "бронирование".

    Есть несколько способа как можно это организовать:

    Первый: выдать каждую пользователю права на чтение каждого календаря другого пользователя.
    Минус 1: таким образом можно смотреть в том числе и личные встречи сотрудника.
    Минус 2: Огромное количество настроек которое нужно сделать.

    Второй способ: выдать всем полные права на управления календарями.
    Минус 1: теперь можно не только смотреть чужие события, но и редактировать их.

    Третий способ (для коробки): поставить бесплатный модуль "Fusion: Занятость переговорных комнат".
    Он добавляет новую страницу на которой отображены переговорные комнаты, кто их занял и зачем (названия/описания событий).
    Ответ написан
  • Возможно ли через REST API Битрикс24 изменить склад у товаров в сделке?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    В данный момент REST'а для складов
    Ответ написан
    Комментировать
  • Можно ли из php кода активити получить массив Дополнительных результатов в Битрикс24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Да, можно.
    Самый простой способ - парсером:

    $rootActivity = $this->GetRootActivity();
    
    $result = $this->ParseValue('{'.'=ACTIVITY_NAME_AA1312312313123:VoteResult}');
    
    // В зависимости от множественности и типа значения может быть разное содержание, например перечисление через запятую (использовать explode)


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

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

    Для кастомизации смарт-процессов на коробке вы должны использовать дополнительные Действия, перекрывая фабрику смарт-процесса.
    Ответ написан
    Комментировать
  • Как работать с объектом ORM в методе обработчике класса описания сущности?

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

    Можно сделать работу обработчиков в паре, для получения воспользоваться объектом.

    Для вдохновения можно использовать код:
    use \Bitrix\Main\ORM\Event;
    
    class DeleteHandler
    {
        static $queue = [];
    
        public static function beforeDelete(Event $event)
        {
            // Получаем объект
            $item = $event->getParameter('object');
    
            // Запрашиваем из БД `FILE_ID`
            $item->fill('FILE_ID');
    
            // Пишем в "стек" удаляемый файл
            static::$queue[ $event->getParameter('ID') ] = (int) $item->get('FILE_ID');
        }
    
        public static function afterDelete(Event $event)
        {
            if (
                in_array($event->getParameter('ID'), static::$queue )
                && static::$queue[$event->getParameter('ID')]>0
            )
            {
                \CFile::Delete(static::$queue[$event->getParameter('ID')]);
    
                unset(static::$queue[$event->getParameter('ID')]);
            }
        }
    }
    Ответ написан
    Комментировать
  • Как задать верное значение суммы в битрикс24?

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

    Для размышления: например если мы знаем что операция только сложение, а элементов всегда определенное количество то можно сделать как комбинацию функций firstValue, explode, swirl
    Ответ написан
    Комментировать