AddEventHandler('crm', 'OnBeforeCrmCompanyAdd', 'checkINN');
function checkINN(&$fields) {
if (isset($fields['UF_CRM_INN'])) { // Предполагается, что UF_CRM_INN - это пользовательское поле для ИНН
$filter = array("UF_CRM_INN" => $fields['UF_CRM_INN']);
$result = CCrmCompany::GetList(array(), $filter);
if ($row = $result->Fetch()) {
global $APPLICATION;
$APPLICATION->throwException("Такая компания с ИНН уже есть.");
return false;
}
}
return true;
}
<script>
BX.ready(function() {
var form = document.querySelector('[name="form_element"]'); // Замените на актуальный селектор формы
form.addEventListener('submit', function(e) {
var innValue = document.querySelector('[name="UF_CRM_INN"]').value; // Замените на актуальный селектор поля ИНН
BX.ajax.runComponentAction('bitrix:crm.company', 'getList', { // Замените на актуальный вызов API
data: {
filter: {'UF_CRM_INN': innValue},
select: ['ID']
}
}).then(function(response) {
if (response.data.length > 0) {
alert('Такая компания с ИНН уже есть.');
e.preventDefault(); // Остановить отправку формы
}
});
});
});
</script>
class FindInFiles
{
public static function OnSearchGetFileContent($absolute_path)
{
if(file_exists($absolute_path) && is_file($absolute_path) && substr($absolute_path, -3) == "pdf")
{
return self::processPdfFile($absolute_path);
}
else
return false;
}
private static function processPdfFile($absolute_path) {
$parser = new \Smalot\PdfParser\Parser();
$pdf = $parser->parseFile($absolute_path);
$text = $pdf->getText();
$result = array(
"TITLE" => basename($absolute_path),
"CONTENT" => $text,
"PROPERTIES" => [],
);
return $result;
}
}
CModule::IncludeModule('crm');
use Bitrix\Crm\DealTable;
$arFilter = [
'STAGE_ID' => 'WON',
'<=CLOSEDATE' => \Bitrix\Main\Type\DateTime::createFromTimestamp(strtotime("-1 month"))
];
$arSelect = ['ID','ASSIGNED_BY_ID', 'CLOSEDATE'];
$arDeals=DealTable::getList([
'order'=>['ID' => 'DESC'],
'filter'=>$arFilter,
'select'=>$arSelect,
'cache' => ['ttl' => 3600],
'limit'=>100
])->fetchAll();
$deals=[];
foreach($arDeals as $deal){
$deals[$deal['ID']]=$deal;
}
print_r($deals);
include_once __DIR__.'/events.php';
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler(
'main',
'OnSaleCheckPrepareData ',
'addCheckPrintType'
);
function addCheckPrintType(array $fields, string $type) : array{
if(!empty($fields['PRODUCTS'])){
foreach($fields['PRODUCTS'] as $key => $product){
$fields['PRODUCTS'][$key]['PAYMENT_OBJECT'] = \Bitrix\Sale\Cashbox\Check::PAYMENT_OBJECT_SERVICE;
}
}
return $fields;
}
//регистрируем библиотеку
CJSCore::RegisterExt(
'custom_js',
array(
'js' => '/local/js/custom.js',
'css' => '/local/css/custom.css',
'lang' => '/local/js/lang/'.LANGUAGE_ID.'/custom.js.php',
'rel' => array(
'ajax',
'popup',
),
)
);
//добавляем js d header не в административной части
if (!ВАШ_NAMESPACE\Main::inBitrixDir()) {
CJSCore::Init('custom_js');
}
var CustomJS = BX.namespace('CustomJS');
CustomJS.initGlobalEvents = function () {
var self = this;
BX.addCustomEvent("SidePanel.Slider:onOpen", function (event) {
CustomJS.addDealButtons();
});
}
CustomJS.addDealButtons = function () {
var page_title_btn_box = document.querySelector('.crm-pagetitle-btn-box');
if (page_title_btn_box) {
if (!document.getElementById('custom-btn-get-order')) {
page_title_btn_box.prepend(
BX.create('div', {
attrs: {
id: 'custom-btn-get-order',
className: 'ui-btn ui-btn-split ui-btn-themes ui-btn-light-border ui-btn-success'
},
text: BX.message('CUSTOM_BTN_GET_ORDER'),
events: {
click: BX.proxy(CustomJS.updateDealFromOrder, this)
},
})
);
}
}
}
CustomJS.updateDealFromOrder = function (event) {
console.log("Событие нажатие на кнопку")
}
if (CModule::IncludeModule("catalog")
&& CCatalog::GetByID(IBLOCK_CATALOG_ID))
{
$db_res = CCatalogProduct::GetList(
[],
[],
false,
array("nTopCount" => 10)
);
while (($ar_res = $db_res->Fetch()))
{
$res[]= $ar_res;
}
}