<?php
......................
class red_october extends CModule
{
function installDB()
{
Loader::includeModule($this->MODULE_ID);
//Регистрация события
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->registerEventHandlerCompatible(
'',
'DollarExchangeRateOnAfterUpdate',
'red.october',
'\\red\\october\\Events\\RecordDataFinalSellingPrice',
'RecordData'
);
...................
}
........................
function unInstallDB()
{
//Отмена регистрации события
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->unRegisterEventHandler(
'',
'DollarExchangeRateOnBeforeUpdate',
'red.october',
'\\red\\october\\Events\\RecordDataFinalSellingPrice',
'RecordData'
);
}
}
?>
<?
namespace red\october\Events;
class RecordDataFinalSellingPrice
{
public static function RecordData($recordId)
{
\Bitrix\Main\Diag\Debug::writeToFile($recordId, $varName = __DIR__, $fileName = "/local/debug/debug.log");
}
}
<?php
require_once __DIR__ . "/lib/AuthorizationAndRestBitrix24.php"; //класс с описанием методов для работы с REST. В обработчике события нужно подключать файл с авторизацией и после выполнения действия получать новый файл с авторизацией, так как токены доступа одноразовые. Новый токен получается без участия человека.
// Установка приложения
if ($_REQUEST['event'] == 'ONAPPINSTALL') {
\AuthorizationAndRestBitrix24::saveAuth($_REQUEST["auth"], "GetCourse"); //сохраняю данные авторизации
//подключить прослушивание события создания элемента смарт-процесса
$entityTypeId=181;
$handlerBackUrl = 'https://bace/handlers/lments.php';
$result = \AuthorizationAndRestBitrix24::restCommand('event.bind', array(
'EVENT' => 'onCrmDynamicItemAdd_' . $entityTypeId,
'HANDLER' => $handlerBackUrl
), $_REQUEST["auth"]);
}
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
require($_SERVER["DOCUMENT_ROOT"]."/local/test6/in_hook/crest.php");
$ID=7; // ID Задания бизнес-процессов
$STATUS=3; // или ok - ответ "Ок" (ознакомлен)
$comment="Комментарий пользователя"; //Комментарий пользователя, обязательность зависит от параметров задания
//Запрос дополнительной информации
$params = array(
"TASK_ID" => $ID,
"STATUS" => $STATUS,
"COMMENT" => $comment,
"FIELDS" => [
"ID_business_process" => "Значение Бизнес-процесс", // ID_business_process - ID поля (он же идентификатор переменной из БП)
"sat_response" => "Значение Бизнес-процесс sat_response", // sat_response - ID поля (он же идентификатор переменной из БП)
"sat_comment" => "Значение Бизнес-процесс sat_comment", // sat_comment - ID поля (он же идентификатор переменной из БП)
],
); //end $params = array(
$result = CRest::call(
'bizproc.task.complete',
$params
);
echo "<pre>Template arParams: "; print_r($result); echo "</pre>";
Boris, [22.11.2021 0:56]
[В ответ на Andrey DEV(Джейс) ↑]
/*
* Комментарии к изменению глобальных переменных через БП PHP блок
* Если указывать из БП глобальную переменную с _ будет ошибка исполнения (просто флоу до конца не дойдет, без каких то ошибок в логи)
* Если \Bitrix\Bizproc\Workflow\Type\GlobalVar::getById возвращает пустоту, значит глобальная переменная в недопуступом имени
* Если в \Bitrix\Bizproc\Workflow\Type\GlobalVar::upsert отдать что-то недопустимое, будет ошибка без логов
* Если создать произвольный массив типа $var['idGlobVar'] = ['Name'=>'Имя глобальной переменной','Description'=>'','Type'=>bool,'Required'=>'','Multiple'=>'','Options'=>'','Default'=>'Y'];
* а после скормить этот массив в \Bitrix\Bizproc\Workflow\Type\GlobalVar::upsert то создастся ещё одна глобальная переменная idGlobVar несмотря на то, что она уже будет (да, две переменные будут, с одинаковыми идентификаторами)
* Изменение значения происходит через изменение Default параметра
*/
$var = \Bitrix\Bizproc\Workflow\Type\GlobalVar::getById('orderVacancy');
$var['Default'] = 'Y';
if($var)
{
\Bitrix\Bizproc\Workflow\Type\GlobalVar::upsert('orderVacancy', $var);
}
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandlerCompatible(
'main',
'OnAfterUserAdd',
[
'AddUserToGroupChatsClass',
'AddUserToGroupChats'
],
100,
$_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/event_handlers/add_user_to_group_chats_class.php"
);
AddEventHandler("main", "OnAfterUserAdd", Array("AddUserToGroupChatsClass", "AddUserToGroupChats") );
require_once($_SERVER['DOCUMENT_ROOT'] . "/local/php_interface/event_handlers/add_user_to_group_chats_class.php");
add_user_to_group_chats_class.phpвообще каждый раз загружается, а мне бы хотелось сделать чтобы он загружался только при срабатывании события.
/getDialogId – получить идентификатор чата для внешних интеграций