Skip to content

Instantly share code, notes, and snippets.

@iTeeLion
Last active February 10, 2023 13:46
Show Gist options
  • Save iTeeLion/813804f6ecb3f793545c371b8eff07cb to your computer and use it in GitHub Desktop.
Save iTeeLion/813804f6ecb3f793545c371b8eff07cb to your computer and use it in GitHub Desktop.
PHP snippets for bitrix24 / Примеры самых используемых конструкций для bitrix24
<?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);
}
@iTeeLion
Copy link
Author

iTeeLion commented Dec 23, 2020

Примеры самого необходимого кода в 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
Как добавить комментарий в живую ленту, к компании, контакту или лиду

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment