Last active
February 10, 2023 13:46
-
-
Save iTeeLion/813804f6ecb3f793545c371b8eff07cb to your computer and use it in GitHub Desktop.
PHP snippets for bitrix24 / Примеры самых используемых конструкций для bitrix24
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
* Snippert for CRM entities: | |
* Lead - //ToDo | |
* Deal - //ToDo | |
* Invoice - //ToDo | |
* Company - //ToDo | |
* Contact - //ToDo | |
* Requisites - //ToDo | |
* FieldsMulti - //ToDo | |
*/ | |
/* | |
* Виды типов разных сущностей (ctrl + r mouse) | |
*/ | |
CCrmOwnerType::Undefined; | |
CCrmActivityType::Undefined; | |
$TT = new \Bitrix\Crm\Timeline\TimelineType(); | |
/* | |
* Bitrix24 menus | |
*/ | |
// Top section menu | |
$baseDir = str_replace(realpath($_SERVER['DOCUMENT_ROOT']), '', realpath(__DIR__)); | |
$aMenuLinks = [ | |
['Назад', '../', [], [], ''], | |
['Главная', '$baseDir', [], [], ''], | |
['Страница', '$baseDir/page', [], [], ''], | |
]; | |
// Left menu - Add static menu to dynamic .superleft.menu_ext.php (.top.menu_ext.php) | |
foreach($aMenuLinks as $menuItem){ | |
$arMenu[] = $menuItem; | |
} | |
// Left menu - Add static menu item .superleft.menu.php (.top.menu.php) | |
$aMenuLinks = [ | |
[ | |
'Link name', | |
'/linktodir/', | |
[], | |
[], | |
'' | |
), | |
], | |
]; | |
/* | |
* CRM Leads | |
*/ | |
// Common | |
$bCheckPermissions = false; | |
$CCrmLead = new \CCrmLead($bCheckPermissions); | |
// GetList | |
$dbRes = $CCrmLead::GetList($arOrder, $arFilter, $arSelect); | |
while ($item = $dbRes->GetNext()) { | |
echo '<pre>'; var_dump($item); echo '</pre>'; | |
} | |
// Add/Update | |
$arFields = [ | |
'TITLE' => 'Title', | |
'FM' => [ | |
'PHONE' => [ | |
['VALUE_TYPE' => 'WORK', 'VALUE' => ''], | |
], | |
'EMAIL' => [ | |
['VALUE_TYPE' => 'WORK', 'VALUE' => ''], | |
], | |
], | |
]; | |
$CCrmLead->Add($arFields); | |
$CCrmLead->Update($leadId, $arFields); | |
/* | |
* CRM Deals | |
*/ | |
// Common | |
$bCheckPermissions = false; | |
$CCrmDeal = new \CCrmDeal($bCheckPermissions); | |
// GetList | |
$dbRes = $CCrmDeal::GetList($arOrder, $arFilter, $arSelect, $nPage); | |
while ($item = $dbRes->GetNext()) { | |
echo '<pre>'; var_dump($item); echo '</pre>'; | |
} | |
// Add / Update | |
#ToDo | |
/* | |
* CRM Contacts | |
*/ | |
// Common | |
$bCheckPermissions = false; | |
$CCrmContact = new \CCrmContact($bCheckPermissions); | |
// GetList | |
$CCrmContact::GetList($arOrder, $arFilter, $arSelect, $nPageTop); | |
// Add / Update | |
#ToDo | |
/* | |
* CRM Companies | |
*/ | |
// Common | |
$bCheckPermissions = false; | |
$CCrmCompany = new \CCrmCompany($bCheckPermissions); | |
// GetList | |
$arOrder = ['DATE_CREATE' => 'DESC']; | |
$arFilter = []; | |
$arSelect = []; | |
$nPageTop = false; | |
$dbRes = $CCrmCompany::GetList($arOrder, $arFilter, $arSelect, $nPageTop); | |
$dbRes = $CCrmCompany::GetListEx($arOrder, $arFilter, false, false, $arSelect); | |
while ($item = $dbRes->GetNext()) { | |
echo '<pre>'; var_dump($item); echo '</pre>'; | |
} | |
// Add / Update | |
$arFields = []; | |
$bUpdateSearch = true; | |
$arOptions = []; | |
$CCrmCompany->Add($arFields, $bUpdateSearch, $arOptions); | |
$CCrmCompany->Update($companyId, $arFields, $bUpdateSearch, $arOptions); | |
/* | |
* CRM счета | |
*/ | |
// Common | |
$bCheckPermissions = false; | |
$CCrmInvoice = new \CCrmInvoice($bCheckPermissions); | |
// GetList | |
$arOrder = ['ID' => 'DESC']; | |
$arFilter = ['CHECK_PERMISSIONS' => 'N']; | |
$arGroupBy = false; | |
$arNav = false; | |
$arSelect = []; | |
$arOptions = []; | |
$dbRes = $CCrmInvoice::GetList($arOrder, $arFilter, $arGroupBy, $arNav, $arSelect, $arOptions); | |
while ($item = $dbRes->GetNext()) { | |
echo '<pre>'; var_dump($item); echo '</pre>'; | |
} | |
// Add/Update | |
$arProducts[] = [ | |
'ID' => 0, | |
'CUSTOMIZED' => 'Y', | |
'PRODUCT_ID' => 123, | |
'PRODUCT_NAME' => '', | |
'QUANTITY' => 1, | |
'VAT_RATE' => 0.20, | |
'VAT_INCLUDED' => 'Y', | |
'DISCOUNT_PRICE' => 0, | |
'PRICE' => 1, | |
'MEASURE_CODE' => 1, | |
'MEASURE_NAME' => 'шт', | |
]; | |
$arProducts[] = [ | |
'ID' => $i, | |
'CUSTOMIZED' => 'Y', | |
//'PRODUCT_ID' => 0, | |
'PRODUCT_NAME' => '', | |
'QUANTITY' => 1, | |
'VAT_RATE' => 0.20, | |
'VAT_INCLUDED' => 'Y', | |
'DISCOUNT_PRICE' => 0, | |
'PRICE' => 1, | |
'MEASURE_CODE' => 1, | |
'MEASURE_NAME' => 'шт', | |
]; | |
$arFields = [ | |
'ACCOUNT_NUMBER' => $params['orderId'], | |
'ORDER_TOPIC' => 'Заказ #' . $params['orderId'], | |
'STATUS_ID' => 'N', | |
'PAY_SYSTEM_ID' => 1, | |
'PERSON_TYPE_ID' => 1, | |
'ASSIGNED_BY_ID' => 1, | |
'RESPONSIBLE_ID' => $userid, | |
'UF_DEAL_ID' => 0, | |
'UF_QUOTE_ID' => 0, | |
'UF_CONTACT_ID' => 0, | |
'UF_COMPANY_ID' => 0, | |
'UF_MYCOMPANY_ID' => 0, | |
'PRODUCT_ROWS' => $arProducts, | |
'INVOICE_PROPERTIES' => ['', ''], | |
]; | |
$arOptions = []; | |
$arRecalculated = false; | |
$siteId = 's1'; | |
$dbRes = $CCrmInvoice->Update($id, $arFields, $arOptions); | |
$id = $CCrmInvoice->Add($arFields, $arRecalculated, $siteId, $arOptions); | |
/* | |
* CRM множественные поля GetList | |
*/ | |
$arSort = []; | |
$arFilter = ['ELEMENT_ID' => $CompanyID / $ContactID]; | |
$dbRes = \CCrmFieldMulti::GetList($arSort, $arFilter); | |
while ($item = $dbRes->GetNext()) { | |
echo '<pre>'; var_dump($item); echo '</pre>'; | |
} | |
/* | |
* CRM entities | |
*/ | |
// requisites | |
$EntityRequisite = new \Bitrix\Crm\EntityRequisite(); | |
$dbRes = $EntityRequisite->getList([ | |
'filter' => [ | |
'ENTITY_TYPE_ID' => CCrmOwnerType::Company, | |
'ENTITY_ID' => $companyId, | |
], | |
]); | |
$dbRes->fetchAll(); | |
// bank detail | |
$EntityBankDetail = new \Bitrix\Crm\EntityBankDetail(); | |
// address | |
$EntityAddress = new \Bitrix\Crm\EntityAddress(); | |
// rq presets | |
$EntityRequisite = new \Bitrix\Crm\EntityRequisite(); | |
$EntityRequisite::getFixedPresetList(); | |
#1 => COMPANY | |
#2 => INDIVIDUAL | |
#3 => PERSON | |
/* | |
* BizProc | |
*/ | |
// Start biz proc | |
\CBPDocument::StartWorkflow(72, ['lists', 'BizprocDocument', $docID], [], $arErrorsTmp); | |
/* | |
* Timeline | |
*/ | |
// Add comment to timeline | |
$arFields = [ | |
'AUTHOR_ID' => 1, | |
'TEXT' => 'Текст комментариев', | |
'BINDINGS' => [ | |
[ | |
'ENTITY_TYPE_ID' => \CCrmOwnerType::Deal, | |
'ENTITY_ID' => 5, | |
] | |
], | |
'SETTINGS' => [ | |
'HAS_FILES' => 'N' | |
] | |
]; | |
$tmEntityId = Crm\Timeline\CommentEntry::create($arFields); | |
/* | |
* Other | |
*/ | |
// Get info by INN | |
if (\Bitrix\Main\Loader::includeModule('socialservices')) { | |
$client = new \Bitrix\socialservices\properties\Client; | |
$data = $client->getByInn('3907026976'); | |
vardmp($data); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Примеры самого необходимого кода в bitrix24 api
Как получить лид в битрикс 24
Как создать лид в битрикс 24
Как изменить лид в битрикс 24
Как получить сделку в битрикс 24
Как создать сделку в битрикс 24
Как изменить сделку в битрикс 24
Как получить контакт в битрикс 24
Как создать контакт в битрикс 24
Как изменить контакт в битрикс 24
Как получить компанию в битрикс 24
Как создать компанию в битрикс 24
Как изменить компанию в битрикс 24
Как получить счет в битрикс 24
Как создать счет в битрикс 24
Как изменить счет в битрикс 24
Как добавить пункт в меню битрикс 24
Как получить реквизиты в битрикс 24
Как получить банковские реквизиты в битрикс 24
Как получить адрес в битрикс 24
Как получить телефон в битрикс 24 (множественные поля)
Как получить email в битрикс 24 (множественные поля)
Как получить данные компании по инн битрикс 24
Как добавить комментарий в живую ленту, к компании, контакту или лиду