Поиск по блогам

... смарт-процессу тоже самое, только$parent = new ItemIdentifier($smartType, $smartItemId);есть еще обратный метод$parents = Container::getInstance()->getRelationManager()->getParentElements($parent);простой обработчик ПОСЛЕ изменения смарт-процессаAddEventHandler("crm","onCrmDynamicItemUpdate","MyOnCrmDynamicItemUpdate"); function MyOnCrmDynamicItemUpdate($item, $entityId){ //AddMessage2Log($item->getId()); ...
25.03.2024 16:29:14
"Обработчик событий - это код, который вы пишете для реагирования на событие. для дополнения стандартной логики события для запуска дополнительных ...
19.03.2024 09:57:03
"У заказчика было несколько обработчиков на добавление и редактирование сделки Для оптимизации объединила в 1. Реализация купона  (купон - это свойство в сделке типа ...
16.02.2024 09:58:19
"Аспро Макс Сделаны лендинги по группам В каталоге есть разделы пустые (чтобы в меню были) и идет редирект на лендинг Обработчик, чтобы разделы после выгрузки из 1С не деактивировались" init.php AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate", "MyOnBeforeIBlockSectionUpdate"); ...
10.12.2023 18:02:38
... интернет-магазин + CRM какой-то модуль из маркетплейса "Обработка заказов с СБЕРМЕГАМАРКЕТ" - и он не создавал клиента в Заказе-сделке добавила обработчик OnAfterCrmDealAdd" AddEventHandler("crm", "OnAfterCrmDealAdd", "AddSberMarketClient");      function AddSberMarketClient(&$arFields){    if(!empty($arFields["ORDER_ID"]) && ...
25.10.2023 13:01:56
... PROPERTY_626 318,320, 322 (относятся к еде) / сумму количества гостей (UF_CRM_1530623573843+UF_CRM_1530623600935) Захотелось теперь это в поле сделки UF_CRM_AVERAGE_CHECK сохранять" обработчик в init.php function CalcAverafeCheckForDeal(&$arFields){         if(isset($arFields["PRODUCT_ROWS"])){         foreach($arFields["PRODUCT_ROWS"] as $arProduct){             $arProductIds[] ...
06.04.2023 14:15:48
"Перешли на новые переговорки (раньше они на инфоблоках были).  У клиента одна переговорка, в базе она как "calendar_745" Задачи Название События календаря "Занятость переговорных" не отображалось. Исправить Сделать невозможным "нахлест" собраний и событий друг на друга (ошибка, есть тике у Битрикса) Из События нужна ссылка на Собрание (если было создано оттуда), чтобы из Календаря можно было перейти в Собрание (никогда такого не было) Не добавлять Событие этого...
09.02.2023 15:47:05
... множественных полей  ) меньше 50% от суммы товаров со значением "Батут" свойства "тип товара" . Причем, вперед нельзя, обратно можно. " обработчик в init.phpAddEventHandler("crm", "OnBeforeCrmDealUpdate", "CheckMinPO"); function CheckMinPO(&$arFields){ if(!empty($arFields["STAGE_ID"]) && !empty($arFields["MODIFY_BY_ID"])){ ...
09.12.2022 16:07:11
"Задача: генерировать договор с данными доверенности менеджера (ответственный в сделке), хранится в свойстве пользователя " свойства в полях для шаблонов не видны, я использовала 2 поля из пользователя, которые в моем случае нигде не используются и их подменяю нужными значениями, но они видны в полях для шаблонов\Bitrix\Main\EventManager::getInstance()->addEventHandler('documentgenerator', 'onBeforeProcessDocument', function(\Bitrix\Main\Event $event){    //{AssignedPersonalGender}...
07.12.2022 09:12:50
"Режим работы с заказами больше не поддерживается в Битрикс24. https://helpdesk.bitrix24.ru/open/13632830/ Одни сделки. Но в сделке нет данных из свойств заказа.  Обработчик, который подтягивает некоторые данные в сделку из заказа" use Bitrix\Main; use \Bitrix\Main\Loader; use Bitrix\Sale, Bitrix\Sale\Order; define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]....
04.12.2022 22:30:42
"Задача: 1. В поле лида положить время первого звонка менеджера 2. Присылать уведомление о пропущенном звонке всем сотрудникам того же департамента (для определенных департаментов), в котором находится ответственный за лид или контакт." AddEventHandler("voximplant", "onCallEnd", "MyOnCallEnd"); function MyOnCallEnd($data){     if(!empty($data["CALL_ID"])&&!empty($data["CALL_TYPE"])&&($data["CALL_TYPE"]==1)...
17.11.2022 21:06:08
"Крайний срок не должен быть больше, чем значение поля типа дата (или дата/время).    Возможность поставить интервал "-1ч", "0" "+10мин" к значению поля, что даст большую вариантивность функционалу Можно выбрать подразделение сотрудников для правила, поставить исключение, указать его роль в задаче" https://nikaverro.ru/upload/medialibrary/25a/xm3mrp92xydcdlajnndqppikgmt4qas0.png use Bitrix\Main\SystemException; //если надо генерировать ошибку AddEventHandler("tasks"...
03.11.2022 04:05:52
... что кто-то артикул пишет не целиком, кто-то с пробелами, кто-то с тире, чтобы поиск норм подбирал товары.  Решение: Добавить тегов в товар" обработчик в init.phpAddEventHandler("iblock", "OnBeforeIBlockElementAdd", "MyOnBeforeIBlockElementAdd"); AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "MyOnBeforeIBlockElementUpdate"); ...
28.10.2022 14:41:16
... is_array($arEvent['LOCATION'])&& !empty($_REQUEST['MEETING_ID_NIKA'])){ //вот это условие добавляем $arFilter["!PROPERTY_MEETING_ID"] = $_REQUEST['MEETING_ID_NIKA']; } } добавляем обработчик в init.php  он будет удалять дубли, заполнять свойство MEETING_ID AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "MyOnBeforeIBlockElementAdd"); function MyOnBeforeIBlockElementAdd(&$arFields){  ...
13.10.2022 20:46:42
... возвращается на статус Не обработан (начальный статус). И тумблер на данную настройку" Тумблер сделала через глобальную константу в БП типа да/нет Обработчик в init.php  AddEventHandler("crm","OnBeforeCrmLeadUpdate","MyOnBeforeCrmLeadUpdate"); function MyOnBeforeCrmLeadUpdate(&$arFields){       $constantId = "Constant1664531666359";//глобальная ...
30.09.2022 13:58:23
"габариты из 1С выгружаются не в каталожные параметры товара, а в свойства SHIRINA_1, GLUBINA_1, VYSOTA_1. обработчик заполняет параметры товара" init.php use Bitrix\Main,      Bitrix\Main\Loader,     Bitrix\Main\EventManager; //autoload class Loader::registerAutoLoadClasses(null, array(        "Prop2ParamTK" ...
15.07.2022 17:03:28
... изображения ("MORE_PHOTOS") выгружались в определенном порядке, а именно по алфавиту. " Из 1С название выгружается в поле DESCRIPTION.  Сделала обработчик в init.php при добавлении и изменении элемента, который сортирует по данному полю. AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "SortMorePhotos"); ...
12.02.2022 22:27:25
"Задача: если заказ не оплачен в течение 10 мин (примерно), то деактивировать его" Агент, который запускается раз в 5 мин.function CancelUnpaidOrders(){     CModule::IncludeModule("iblock");     CModule::IncludeModule("sale");     $arFilter = Array(         "PAYED" => "N",         "CANCELED" => "N",         " Вероника Малышева
19.01.2022 02:24:42
... аффилиату, что его заказ оплачен" 1. понадобятся 2 библиотеки, которые положила в папку /tools/  PHPMailer.tar.gz (/blog/PHPMailer.tar.gz) phpqrcode.tar.gz (/blog/phpqrcode.tar.gz) 2. обработчики в init.php const SITE_TICKET = "tc"; const TICKET_INFO_URL = "http://nikaverro.ru/ticket/info/"; const QRCODE_DIR_REL = "http://nikaverro.ru/upload/qrcode/"; const QRCODE_DIR_ABS = "/upload/qrcode/"; ...
19.01.2022 02:12:59
... фильтра - множественное, показывается в умном фильтре Цвет для детальной - немножественное, показывается в детальной странице 4. сделали обработчик, который заполняет свойства в инфоблоке автоматом init.phpAddEventHandler( "iblock", "OnBeforeIBlockElementAdd", "MyOnBeforeIBlockElementAdd"); AddEventHandler( ...
11.12.2021 16:39:23
... авторизации из сессии перемещаем в свойство в иконке выводим в атрибуте data-id id товара в шаблонах компонентов на иконку "сердечко" вешаем обработчикBX.ready(function(){         $(document).on("click", '.icon-heart_active', function() {         let action;         if($(this).hasClass('infavor')){             $(this).removeClass('infavor');       ...
30.10.2021 16:58:46
"Задача: отправлять при регистрации более полную информацию о пользователе" размещаем в init.phpAddEventHandler("main", "OnBeforeEventAdd", "MyOnBeforeEventAdd"); function MyOnBeforeEventAdd(&$event, &$lid, &$arFields){    if(($event=="NEW_USER") && (empty($arFields["SECOND_NAME"]) || empty($arFields["PERSONAL_PHONE"]))){      $arFields["SECOND_NAME"] = ""; $arFields["PERSONAL_PHONE"]...
30.10.2021 15:25:56
"Фото в 1С не хранятся, из-за экономии места, задача обновлять с фтп, выводить товары только те, для которых есть с фото" сделала на обработчиках в init.phpAddEventHandler( "iblock", "OnBeforeIBlockElementAdd", "MyOnBeforeIBlockElementAdd"); AddEventHandler( "iblock", "OnBeforeIBlockElementUpdate", "MyOnBeforeIBlockElementUpdate");"UploadMorePhotos ...
14.10.2021 16:48:53
... $mess["MESSAGE"]."-------------------------";             }обновить тикет $arFields = array(     "UF_1C_ORDER" => 1 ); CTicket::Set($arFields, $MESSAGE_ID, 1, "N",$mid,"N","N");  Обработчики стадия с ID 9 - не в рамках договора при переводе в нее автоматом создается ЛИД в отделе продаж с данными тикетаAddEventHandler("support",...
31.08.2021 23:16:04
... задачи не добавлять комментарий." Совсем не добавлять можно, но это трогать ядро (а это зло), а вот после добавления сообщения к задаче есть обработчик, в нем и будем удалять данный коммент. AddEventHandler("tasks","OnAfterCommentAdd","MyOnAfterCommentAdd"); function MyOnAfterCommentAdd($commentId, &$arFields){ if( (($arFields["COMMENT_TEXT"]=="Загрузила ...
04.06.2021 14:03:03
... неправильно отбор товаров работает) Решение: выгружать все товары без данного отбора, а по определенному свойству товары деактивировать обработчиком 2 обработчика (на добавление, изменение) размещаем в /bitrix/php_interface/init.php 10 - ID инфоблока свойство, в котором укзано, грузить или нет ...
04.03.2021 11:22:20
"Проблема: спам-боты спамят через битрикс-форму, хотя на ней есть капча.  На сайте есть несколько форм, которые работают через разные модули Iblock и form.result.new. Капчу от битрикса они обходят моментально, а еще она неудобная и некрасивая для пользователей. Да и любая капча неудобна для клиентов.  Решение: Добавьте поле какое-нибудь лишнее и назовите его телефон, например, а для пользователей спрячьте. Спам машины будут это поле заполнять, а пользователи нет. Если поле это заполнено значит...
15.02.2021 18:49:57
Задача: генерировать символьный код из определенного свойства (id =15) при добавлении товара в инфоблок $arFields["PROPERTY_VALUES"][15] - можно заменить на любое другое поле AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "MyOnBeforeIBlockElementAdd"); function MyOnBeforeIBlockElementAdd(&$arFields){ if($arFields["IBLOCK_ID"]==10){ if(isset($arFields["PROPERTY_VALUES"][15]) && is_array($arFields["PROPERTY_VALUES"][15])){...
10.11.2020 08:34:14
У заказчика есть постоплата после доставки, а есть предоплата до поставки Поэтому в зависимости от текущего статуса надо переводить в в 1 из 2х статусов: Если предоплата, то в статус "Оплачен, формируется к отправке" Если постоплата, то в статус "Выполнено" Битрикс стандартными настройками умеет переводить только в 1 статус.  1. Отключить все изменения Битриксом: В роботах-триггерах (если CRM) В настройках модуля платежной системы "Статус заказа после оплаты" В настройках...
10.11.2020 08:34:14
... (id типа цены на сайте 4) для 3-9шт  (id типа цены на сайте 2) для 10 и более  (id типа цены на сайте 3) Задача: для определенных продуктов (Свойство Обработчик заполнено и равно 3) из нескольких типов цен заполнять цену с расширенным режимом  (id типа цены на сайте 1) " 1. на сайте завести ...
20.10.2020 13:11:51
Часто бывает, когда хочется заполнять в 1С производителя в стандартном поле производитель А на сайте иметь инфоблок с брендами AddEventHandler( "iblock", "OnAfterIBlockElementAdd", array( "nika_import", "FillTheBrands" ) ); AddEventHandler( "iblock", "OnAfterIBlockElementUpdate", array( "nika_import", "FillTheBrands" ) ); class nika_import { static function FillTheBrands( $arFields ){ $arCatalogID=array(59); //каталоги...
13.10.2020 07:59:48
"Если у вас отличный инфоблок с товарами на сайте, прописаны коды, названия, и не хочется чтобы при обмене с 1С это сломалось Особенно если это поисковиками проиндексировано Зачастую это бывает, когда товары велись на стороне сайта, а потом стали выгружаться из 1С структуру разделов можно настроить в дереве групп но бывает лень, а остатки и цены надо, чтобы из 1с обновлялись" чтобы у разделов НЕ обновились коды, имя, родительский раздел AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate"...
13.10.2020 07:59:48
Когда товар под заказ, и нужно уточнить наличие у поставщика, лучше разрешать оплату (эквайринг, счет), после подтверждения менеджером. А еще удобнее клиенту отправлять сразу ссылку на оплату, или сгенерированный счет. Инструкция Сначала создадим нужные статусы В настройках (настройки -> настройки модулей -> интернет-магазин -> настройки -> Статус, начиная с которого можно оплатить заказ (указать) Сделать настройки в типах событий (добавить в нужном событии поле ORDER_PAYMENT В почтовых...
03.05.2020 11:13:19

Сортировать по релевантности | Отсортировано по дате