Кто сталкивался с такой проблемой, как удалось решить проблему?
use Bitrix\Main\Loader;
use Bitrix\Crm\Integration\BankDetailResolver;
use Bitrix\Crm\Integration\ClientResolver;
Loader::requireModule('crm');
/**
* ИНН/БИК для поиска
*
* @var string
*/
$preparedSearchQuery = "7717586110";
/**
* Критерий поиска:
* - ITIN - ИНН
* - BIC - БИК
*
* @var string
*/
$typeId = 'ITIN';
/**
* Идентификатор страны:
* 1 - Россия
* @var int
*/
$countryId = 1;
$resolverClass = $typeId=='BIC'
? BankDetailResolver::class
: ClientResolver::class
;
$result = (new $resolverClass)->resolveClient(
$typeId,
$preparedSearchQuery,
$countryId
);
var_dump($result);
/*
array(1) {
[0]=>
array(4) {
["caption"]=>
string(27) "ООО "1С-БИТРИКС""
["title"]=>
string(27) "ООО "1С-БИТРИКС""
["subTitle"]=>
string(17) "ИНН 7717586110"
["fields"]=>
array(12) {
["RQ_INN"]=>
string(10) "7717586110"
["RQ_KPP"]=>
string(9) "770501001"
["RQ_OGRN"]=>
string(13) "5077746476209"
["RQ_OKVED"]=>
string(5) "58.29"
["RQ_COMPANY_NAME"]=>
string(27) "ООО "1С-БИТРИКС""
["RQ_COMPANY_FULL_NAME"]=>
string(98) "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "1С-БИТРИКС""
["RQ_IFNS"]=>
string(101) "Инспекция Федеральной налоговой службы № 5 по г. Москве"
["PRESET_ID"]=>
string(1) "1"
["PRESET_COUNTRY_ID"]=>
int(1)
["RQ_COMPANY_REG_DATE"]=>
string(10) "06.04.2007"
["RQ_ADDR"]=>
array(1) {
[6]=>
string(234) "{"id":0,"latitude":"","longitude":"","languageId":"ru","fieldCollection":{"410":"ЭНТУЗИАСТОВ Б-Р, Д. 2, ЭТАЖ 13","600":"ПОМЕЩЕНИЯ 8-19","50":"109544","200":"Г.МОСКВА","100":"Россия"},"links":[]}"
}
["RQ_DIRECTOR"]=>
string(52) "РЫЖИКОВ СЕРГЕЙ ВЛАДИМИРОВИЧ"
}
}
}
*/
Возможно ли подобное реализовать силами стороннего программиста\интегратора внутри модуля "задачи", или для этого нужно писать отдельный модуль с нуля?
Есть задача подключится к БД Битрикс 24 через СУБД Mysql?
GRANT ALL PRIVILEGES ON *.* TO '<user_name>'@'%' IDENTIFIED BY '<password>' WITH GRANT OPTION;
FLUSH PRIVILEGES;
BX24.placement.call('setValue', value);
Как вывести на карточку задачи системное поле, например "Статус"?
{
public function isAcceptable( Record $record): bool
{
if ( $this->container()->getDateSerivce()->isEarlyDate($record->getDate()) )
{
return false;
}
if ( !$this->container()->getUserRepository()->isActiveUser($record->getUserId()))
{
return false;
}
// ...
return true;
}
}
// Now - 20.03.2025
$earlyDateObject = Record::wakeUp([
'ID' => -1,
'DATE' => DateTime::createFromTimestamp(strtotime("10.03.2025"))
]);
assertFalse( $checker->isAcceptable($earlyDateObject) );
$unexistedUserRecord = Record::wakeUp([
'ID' => -1,
'DATE' => DateTime::createFromTimestamp(strtotime("21.03.2025")),
'USER_ID' => -1
]);
assertFalse( $checker->isAcceptable($earlyDateObject) );
$normalRecord = Record::wakeUp([
'ID' => -1,
'DATE' => DateTime::createFromTimestamp(strtotime("21.03.2025")),
'USER_ID' => 1
]);
assertTrue( $checker->isAcceptable($earlyDateObject) );
$myCachedIds = Container::getInstance()->getCacheService()->get('MY_SUPER_KEY');
$records = RecordTable::createCollection();
foreach($myCachedIds as $recordId)
{
$records->add(
Record::wakeUp([
'ID' => $recordId
])
);
}
$records->fill();
foreach( $records as $record )
{
$arResult['RECORDS'][] = [
'ID' => $record->getId(),
'PRIORITY' => getPriority($record)
];
}
$authorCollection = AuthorTable::createCollection();
$books = BookTable::getList()->fetchCollection();
foreach( $books as $book)
{
$authorCollection->add(
Author::wakeUp([
'ID' => $book->getAuthorId()
])
);
}
$authorCollection->fill(['CITY', 'NAME']);
Можно ли выполнить данную задачу, используя штатный функционал Битрикс24, без привлечения дополнительных интеграций или написания кода?
// Подписываемся на событие через современный механизм
$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);
}
Мне нужно скачать более струю версию битрикс для того что б ее можно было установить на компьютер с 7 виндой.
С помощью логина, пароля и адреса CRM - получить список пользовательских полей, если такое поле есть добавить в него значение если нет, то в другое поле добавить.
1. Должен ли Аналитик Битрикс24 заниматься настройкой битрикс24 в соответствии с требованием заказчика?
2. Какие задачи обычно решает бизнес аналитик Битрикс24?
3. Если есть Аналитик Битрикс24 то зачем нужен Администратор Битрикс24 если аналитик может решать все задачи Администратора Битрикс24?
Я могу выставить только два условия: стадию сделки и сумму сделки, а как добавить условие по названию товара?
Возможно можно как-то отключить проверку email на валидность для пользователей приходящих со стороны Active Directory?