Задать вопрос
Ответы пользователя по тегу 1С-Битрикс
  • Как создать кнопки в CRM и задачах Битрикс24 (коробка)?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Штатно никаких возможностей кастомизировать кнопки без ущерба для обновлений не предусмотрено.
    Что допустимо с точки зрения "время-деньги":
    - Разработка REST-приложения (читай про встройку) с дополнительной вкладкой под телом задачи
    - Разработка собственного кода, который добавит кнопки или разделы в правую часть карточки задачи

    Другие модификации реализовать без серьезных изменений и опыта нельзя, однако при наличии коробки+опыта+знаний api и обоснованности изменений, предела для изменения модуля задач нет никаких.
    Ответ написан
    Комментировать
  • Bitrix24 как вывести варицию продукта?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Дело в том что "Товар" из CRM и "Товар" из Интернет-магазина это не один и тот же товар исторически.
    Попробуйте работать с методам товаров из интернет-магазиина
    Ответ написан
    Комментировать
  • В Битрикс24 коробка, после обновления пропал контбан, может кто-то сталкивался?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Причиной этому может служить кастомизация компонентов.
    Так как вы используете "демо" битрикс мы не можем убедиться что все файлы корректны и не вносилось дополнительных изменений. Скорее всего нужно привлечение специалиста для проверки этой гипотезы или знания платформы.

    Проблем может быть масса и заранее еще не перечислить. Начните с консоли разработчика в браузере - это покажет какие скрипты не загрузились или неправильно отработали, затем ищите причину почему.
    Ответ написан
    Комментировать
  • Можно ли задать права доступа к сущности лида в зависимости от пользовательского поля битрикс.?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Можно ли задать права доступа к сущности лида в зависимости от пользовательского поля битрикс.?


    Схема доступа к CRM сущностям в Битрикс24 формально может быть расширена, однако только через костыли (т.е. только в коробочной версии). И хотя разработчики выпустили для некоторых сущностей поле "наблюдатели" это не решает всех кейсов.

    В качестве альтернативы можно попробовать сделать следующее:
    - Добавлять пользователей группы в зависимости от кастомного поля в наблюдатели
    - Попробовать на событиях изменения вручную дописывать пользователей в отдельные таблицы расширения прав.

    Оба варианта не являются удобными, а второй еще и не прост в реализации и эксплуатации.
    Ответ написан
    Комментировать
  • Как в Битрикс24 через crm.deal.list сделать фильтрацию по ID товара?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Подскажите, можно или нет сделать фильтрацию в Битрикс24 через crm.deal.list сделать фильтрацию по ID товара?


    Ввиду архитектурных возможностей продукта нельзя.
    Ответ написан
    Комментировать
  • Bitrix подмена статуса заказа при изменении заказа?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Не следует подменять статус на событии OnSaleStatusOrderChange, так как это событие вызывается при смене статуса. Лучше отследить нужное событие перед сохранением заказа и уже в нем изменить.
    Ответ написан
  • Как правильно собрать batch-запрос на получение товаров сразу нескольких сделок, количество которых изначально неизвестно?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Как указать в запросе, что этот индекс должен изменяться просто динамически?


    Такой возможности в Битрикс24 нет.

    Дело кроется в несколько ином видении проблематики. Когда вы выполняете запрос на получения количества он возвращает вам не более 50 элементов с постраничной, но батч это всего 50 запросов, то есть если бы такой механизм имел место, то батч был бы резиновым, так как по факту должен выполнить 51 запрос (1 на получение списка и еще 50 на получение каждого элемента). Каким образом должен был бы себя вести батч-запрос когда вы указали 3 запроса? Например получение списка сделок, получение конкретных сделок и получение какого-нибудь справочника? Выполнить 52 запроса? Нет, это фантастика.

    Какой хак можно использовать?
    Можно самому генерировать запросы на основании хака.
    Так как в батче результат запроса выдается порядковым номером (если не указано иное), то они всегда будут в диапазоне от 0 до 49.
    Для примера мы хотим получить 10 сделок из постранички одним запросом, тогда можно отправить следующий батч-запрос:

    'halt' => 0,
    'cmd'  => [
    	'deals' => 'crm.deal.list?filter[STAGE_ID]=PREPAYMENT_INVOICE&filter[>ID]=0&limit=10',
    	'products_0' => 'crm.deal.productrows.get?id=$result[deals][0][ID]',
    	'products_1' => 'crm.deal.productrows.get?id=$result[deals][1][ID]',
    	...
    	'products_8' => 'crm.deal.productrows.get?id=$result[deals][8][ID]',
    	'products_9' => 'crm.deal.productrows.get?id=$result[deals][9][ID]',
    ]


    Когда мы проитерируем "products_*", мы получим последний обработанный ID (для примера это будет 123456) и сможем выполнить следующий батч-запрос:
    'halt' => 0,
    'cmd'  => [
    	'deals' => 'crm.deal.list?filter[STAGE_ID]=PREPAYMENT_INVOICE&filter[>ID]=123456&limit=10',
    	'products_0' => 'crm.deal.productrows.get?id=$result[deals][0][ID]',
    	'products_1' => 'crm.deal.productrows.get?id=$result[deals][1][ID]',
    	...
    	'products_8' => 'crm.deal.productrows.get?id=$result[deals][8][ID]',
    	'products_9' => 'crm.deal.productrows.get?id=$result[deals][9][ID]',
    ]


    Но вы в любом случае должны понимать что чем больше данных будет возвращать ваш батч-запрос тем он мендленнее будет выполняться, поэтому в crm.deal.list рекомендую так же ограничить список получаемых полей.
    Ответ написан
    1 комментарий
  • Как работает закрепление записей в Живой Ленте Битрикс?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Интересует возможность "глобального закрепления". Можно ли это сделать стандартными средствами?


    Нет, закрепление является индивидуальным средством.

    В случае если вы разработчик, то можно разработать механизм глобального закрепления.
    Самое очевидное:
    - Завести отдельную таблицу LOG_ID => ACCESS_CODE
    - Сделать агента, который каждые Н единиц времени будет проверять чтобы LOG_ID содержал привязку с ACCESS_CODE и в случае если он ее содержит, расшаривал (закреплял) этот пост для каждого пользователя с этим кодом.
    Ответ написан
    2 комментария
  • Как построить структуру компании ОТ подразделения?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Вам необходимо изменить компонент.
    Смотрите в сторону обработки параметров: $mode == 'subtree' и $_REQUEST['mr']
    Ответ написан
    1 комментарий
  • Сделать кластер сайта на Битрикс, без Битрикс?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Увы, но для того чтобы обеспечить "Отказоустойчивость" вам необходимо купить "1С-Битрикс: Управление сайтом. Лицензия «Энтерпрайз»".
    Дело тут вовсе не в технических ограничениях, а в лицензионном соглашении:
    *Все сайты, работающие на одной лицензии, должны размещаться на одном хостинге и использовать одну копию программного продукта «1С-Битрикс: Управления сайтом».


    Что можно сделать не нарушая лицензионного соглашения:

    1) Разделить зоны ответственности:
    * Вынести load balancer на отдельный сервер.
    * Вынести файлы на отдельный сервер (подключите CDN или облачные хранилища).
    * Вынести httpd / php-fpm на отдельный сервер.
    * Вынести СУБД на отдельный сервер (возможно кластерное решение или другие).

    Таким образом вы не сможете добиться отказоустойчивости, но хотя бы диверсифицируете риски (часть системы поднять проще чем всю).

    2) Изменить подход к формированию сайта.

    Дело в том что битрикс лицензирует только свой программный код. Если вы сделаете публичную часть на каком-нибудь Gatsby, а в роли API endpoint будет выступать битрикс, то это не будет нарушением лицензионного соглашения, однако лишает некоторых возможностей на сайте и почти сводит на нет отдельные преимущества платформы.
    Ответ написан
    Комментировать
  • Как добавить обработку события изменения сделки в коробке Битрикс24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Попробуйте использовать новую запись EventManager:

    <?php
    
    $eventManager = \Bitrix\Main\EventManager::getInstance();
    
    $eventManager->addEventHandlerCompatible(
    	'crm',
    	'OnAfterCrmDealUpdate',
    	function (&$arFields){
    
    		ob_start();
    		echo PHP_EOL."<pre>".PHP_EOL;
    		var_dump($arFields);
    		file_put_contents(__DIR__.'/log.log', ob_get_clean(), FILE_APPEND);
    	}
    );
    Ответ написан
    Комментировать
  • Нельзя зарегистрировать пользователя через админку bitrix, что делать?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Скорее всего есть какой-либо обработчик события на добавление пользователя, запрещающий это делать. Это может быть сторонний модуль или просто php код.
    Необходимо изучить теорию по работе событий и поискать все обработчики для события onBeforeUserAdd.

    Возможно такая работа находится вне вашей компетенции, в таким случае рекомендую обратиться в техническую поддержку Битрикс по официальным каналам или к партнерам для получения платной консультации.
    Ответ написан
    Комментировать
  • Как изменить webhook на сайте от 1с битрикс?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Для начала вам необходимо создать новый вебхук со всеми необходимыми правами. В этом поможет официальная документация: https://dev.1c-bitrix.ru/learning/course/index.php...

    Где искать старый webhook

    К сожалению на этот вопрос может ответить только разработчик, кто делал интеграцию.
    Если вы знаете адрес портала и/или старый вебхук, вы можете выполнить поиск по файлам. Например grep
    Ответ написан
    Комментировать
  • Почему catalog.set.constructor иногда лежит в catalog.element?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Существуют некоторые компоненты, которые реализуют целый пласт большой дополнительной логики или отображения.
    Если шаблон такого элемента требует чтобы шаблон другого элемента был заточен специально под использование данного компонента и вне рамок его использования не работает, то не имеет смысла его выносить в общие шаблоны.

    Проще придумать не смог, но зато есть пример: предположим существуют 2 компонента A и B с шаблонами .default. Оба компонента могут использоваться независимо друг от друга.
    Однако в какой-то момент в шаблоне A потребовалось модифицировать шаблон B в определенном месте под определенную задачу. Этот шаблон название special_a.
    Так вот, использование компонента B с шаблоном special_a вне рамок компонента B не имеет смысла, посколькую шаблнон special_a задействует части шаблона компонента A и хранить его отдельно просто нет смысла.

    Можно ли вынести такой шаблон из шаблона? Да, можно. Однако практического смысла подобное действие не имеет.
    Ответ написан
  • Как структурировать файлы сайта при работе с @bitrix/cli?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Вы не разобрались в структуре продукта и пытаетесь принести в битрикс то на что он впринципе не рассчитан. Прочитайте сначала: https://dev.1c-bitrix.ru/learning/course/index.php...

    Есть расширения (extension).
    Это JS библиотеки подключаемые на страницах. Они находятся в /local/js/* или /bitrix/js/*
    Документация: https://dev.1c-bitrix.ru/learning/course/index.php...

    Есть шаблоны сайта (template).
    Они находятся в /local/templates/* или /bitrix/templates/*
    Документация: https://dev.1c-bitrix.ru/learning/course/index.php...

    Документация по @bitrix/cli: https://dev.1c-bitrix.ru/learning/course/index.php...

    Вопрос про организацию кода/логику стоит выделить в отдельный вопрос.
    Ответ написан
  • Как установить корпортал и синхронизировать с БУС, чтобы еще вкладка в админке была?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Дополню комментарий Егор и ответ коллеги Алексей Емельянов: сделать 'интеграцию' никак.

    Можно сменить лицензию (расширить) до продукта CRM+ИМ и уже после этого установить второй сайт, настроив многосайтовость.

    Без этого всего, можно сделать лишь следующее:
    - Добавить ссылку в верхнее меню для перехода в Б24 (если он установлен на отдельном домене).
    - Разработать собственную интеграционную шину между ИМ и CRM (если это отдельные платформы).
    - Включить для менеджеров ИМ SAML SSO (точнее сначала его нужно будет написать самому).
    Ответ написан
    Комментировать
  • Как подключить свой сетевой диск в битрикс (коробка)?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Существующий сетевой диск нельзя подключить к Битрикс24.
    Наоборот: Диск из Битрикс24 можно подключить к своему ПК как сетевой диск.

    Особенность заключается в том, что фактически файлы хранятся в Битриксе и нужны для отображения, версионирования, индексации. Именно поэтому существующую шару нельзя просто так приконнектить к Б24, а даже если и использовать окольные методы, то физический файл будет хранится аж в 2 местах (потребуется увеличение места на сервере битрикса равное количеству места на сетевом диске).
    Ответ написан
    Комментировать
  • Ошибка при установке плагина bitrix?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Как я понял это связано с тем, что плагин должен сам создать эту таблицу и внести в нее нужные данные, а вариант "ручного" создания таблицы не уместен в данном случае, но как тогда сделать беспрепятственную установку данного плагина без самостоятельного создания данной таблицы?


    Это ошибка в партнерском модуле и наиболее правильный путь - обратиться в техническую поддержку решения.
    Однако временно (костыльное решение) можно исправит следующим образом: открыть консоль php-кода (в админке) и выполнить

    require_once('/home/bitrix/www/bitrix/modules/mcart.xls/lib/orm/profile.php');
    Mcart\Xls\ORM\ProfileTable::getEntity()->createDBTable();


    После чего перейти в список установленных решений и вызвать повторую установку.
    Ответ написан
    Комментировать
  • Где найти бесплатную версию Bitrix CMS?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Не существует бесплатной версии 1С-Битрикс которую вы сможете использовать в полной мере и без ограничений.
    Если Вы хотите освоить платформу вы можете сделать следующее:

    1) Оформить партнерство.
    При регистрации (не обязательно быть юр.лицом), вам будут предоставлен NFR ключ для редакции Бизнес.
    С этого вы можете начать свое изучение и нет необходимости ее обновлять.

    2) Использовать 30-дневный бесплатный период.
    В течении 30 дней (+ еще около 2 недель с сообщением об окончании поддержки) вы можете использовать ограниченные наборы возможностей Битрикса, однако это лучше чем ничего.

    Можно ли получить бесплатный битрикс?
    Нет, к сожалению получить полностью бесплатный битрикс нельзя. Можно конечно чуть-чуть его хакнуть и убрать некоторые ограничения, но вместе с ними частично отваляться облачные возможности. Вариант с NFR в данном случае предпочтительнее (вас никто не заставляет оформлять юр.лицо или платить какие-то деньги за оформление).
    Ответ написан
  • Можно ли использовать CIBlockSection::GetMixedList или GetList не в компоненте ,а в index.php страницы?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Не стоит миксовать вопросы в одном.
    Если вы разделите их, то поймете что это не является проблемой.

    Можно ли использовать CIBlockSection::GetMixedList или GetList не в компоненте ,а в index.php страницы?


    Можно.
    Вам напрямую никто не запрещает использовать классы и вне компонентов. Главное чтобы были подклчюены необходимые модули и пролог.
    Однако подобное нарушает одну из идеологических концепций системы. Правильнее следует сделать компонент.

    у меня есть табы в index.php страницы содержимое которых сделано "bitrix:catalog.section", а название вкладок это название подразделов хочу взять их из админки ,как можно это сделать?

    Точно так же, как и в любом другом компоненте: через API который любезно поставляется компанией.
    Ответ написан
    Комментировать