• Как добавить свои собственные поля в уже имеющийся склад в 1С-Битрикс:Управление сайтом?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Вы можете их добавлять.

    Посмотрите в карточке склада - https://screenshots.firefox.com/sKkHtPmyBo8eMMZZ/w...
    Почитайте про пользовательские поля: https://dev.1c-bitrix.ru/learning/course/index.php...

    Объект который вас интересует: CAT_STORE
    Ответ написан
    1 комментарий
  • Бизнес-процесс в Битрикс24. Проверка условий по переменным - где я ошибаюсь?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Эм... а что у Вас за жесть со скобками происходит?

    Это не нормально
    =if ({=Variable:TODAY{{=datediff({=Variable:DATE1}, {=System:DATE}, '%d' ) }}} <4, 'true')


    Для корректной работы создайте 2 переменных:

    1) Количество дней (тип "Число"), которое будет хранить разницу между двумя числами
    2) Условие (тип "Да/Нет"), которое будет хранить соответствие условий количества дней

    Лучше разделить эти переменные, так как в случае усложнения процесса количество дней и условие может ветвится.

    В блоке изменение переменных можно прописать соответствующие значения
    Для получения разницы:
    =datediff({=Template:DATA1}, {=System:Now}, '%d')

    Для сравнения
    =if({=Variable:diffDate}<4, 'Y', 'N')
    Ответ написан
    1 комментарий
  • Как получить корневой раздел элемента инфоблока?

    gromdron
    @gromdron
    Работаю с Bitrix24
    CIblockElement получает элемент, но не раздел и элемент не может быть вложен в элемент - только в раздел (причем не в один).
    CIBlockElement::GetByID($id)

    Если Вас интересуют все корневые элементы (т.е. элементы у которых нет раздела для привязки), то нужно воспользоваться CIblockElement::getList() и получить все товары у кого SECTION_ID = false, "" или 0. Почитайте в документации на эту тему: https://dev.1c-bitrix.ru/api_help/iblock/classes/c...

    Если так получается, что в инфоблоке у Вас есть 1 корневой раздел и Вам нужно получить его элементы, то для начала Вам нужно получить его ID через CIblockSection::getList() и уже потом в SECTION_ID через CIblockelement::getList достать все его элементы (INCLUDE_SUBSECTIONS = N!). Почитайте в документации на эту тему: https://dev.1c-bitrix.ru/api_help/iblock/classes/c...
    Ответ написан
  • После смены пароля через CUser::Update вход по CUser::Login на 20 минут перестает работать. Что делать?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Надеюсь меня тут поругают и ответят как надо было побороть эту проблему.


    Конечно поругают: вы ведь делаете кривой велосипед, вместо того чтобы взять и использовать штатную CUser::ChangePassword (ее описание в API).

    Если уж хотите изобретать собственные велосипеды, то хотя бы изучите как работает стандарт, а потом уже изобретайте свое.
    Ответ написан
    Комментировать
  • Как заставить заработать это актививити?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Ситуация довольно щекотливая, так как активити "Пауза в выполнении" принимает в себя дату, а активити "Ближайший день недели" (из приложения kosas.active) возвращает строку, которую Вы ну никак не можете использовать для использования в поле типа "Дата и время".
    Однако есть небольшой хак, который пока работает. В активити "Паузка в выполнении" можно модиифицровать дату добавив 0 дней.

    Т.е. вместо:
    {=A72863_31163_92582_78356:s_date}
    Написать:
    =Dateadd({=A72863_31163_92582_78356:s_date}, "-0d")


    Тогда это прекрасно работает... пока работает...
    Ответ написан
    2 комментария
  • Как создать локальное приложение обработчик в Bitrix24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Изучить документацию по Приложениям24 и начать их создавать :)
    Ответ написан
    Комментировать
  • Какой функционал необходим в CRM для веб-студии?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Возможно в меня сейчас что-нибудь прилетит, но мы используем Битрикс24 (собственно его же и внедряем).
    Сделка прекрасно разбиваемся по направлениям:
    - Проект
    - Сопровождение
    - Домены
    - Лицензии

    Для разработчиков используем Redmine, а для тех.поддержки Okdesk.

    Получается следующий кейс: все новые обращение поступают в лиды, их обрабатывают сейлы (сотрудники отдела продаж), они определяют куда это все отправляется.
    Далее заключаются соответствующие договоры.
    - Лицензии (они же регулярные/разовые продажи продлений).
    За Н дней до окончания лицезнии напоминание ответственному менеджеру, печать документов по лицензии, согласование цены и особых условий (для крупняков, госов и т.п.)

    - Домены
    То же, что и с лицензией, за исключением того что там нет согласования, а из документов только счет/акт

    - Сопровождение
    Просто перечень сделок на основании договоров, только справочная информация, бизнес-процесс на заведение (создание учетных записей в Okdesk-системе) и учет статусов (нужно ли заключать доп.соглашения или что)

    - Проект
    Длительная штука, там есть интеграция с Redmine по количеству задач и потраченных часов.

    Все внутренние коммуникации, евенты и т.п. берет на себя битрикс24. Учет рабочего времение (формальный, т.е. не сколько отработал, а работал ли вообще).
    Рядовые сотрудники получают задачи в Redmine / Okdesk, а портал у них для общей информации по компании.

    На Redmine не перешли по причине отсутствия нужных механизмов - он для разработчиков, но продажи туда загнать не реально, а плагины которые более-менее могут это сделать отсутствуют.
    По той же причине не можем работать только в helpdesk-системе. В итоге решили остановиться на связке трех систем.

    P.S. Jira кусается по цене сильно
    Ответ написан
    4 комментария
  • Как вывести пользовательское свойство для раздела Bitrix?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Ну так вы же фильтруете по IBLOCK_ID, что мешает фильтровать по коду раздела или по его ID?

    $select = [
    	"UF_HEADH1"
    	
    ];
    
    $sort = [
    	"SORT" => "ASC"
    ];
    
    $filter = [
    	/* @var int ID инфоблока */
    	'IBLOCK_ID' => 1,
    
    	/* @var string Символьный код раздела */
    	'CODE' => 'SECTION_CODE',
    
    	/* @var int ID раздела */
    	'ID' => 123,
    ];
    
    $rsResult = CIBlockSection::GetList(
    	$sort,
    	$filter,
    	false,
    	$select
    );
    while($arResult = $rsResult->GetNext())
    {
    	echo $arResult['UF_HEADH1'];
    }
    Ответ написан
    4 комментария
  • Лид не найден. Не создается лид при повторном обращении через открытую линию после удаления первого лида. Почему?

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


    Наиболее простой вариант - запретить удалять такие лиды, так как данный кейс не обрабатывается битриксом.
    Напишите обращение в техническую поддержку, они повысят приоритет этого направления.

    Как создать сделку с клиентом, с которым идет общение в открытой линии, когда при попытке перейти в CRM лид не обнаруживается? При этом я не могу создать новый лид и внести в него id vk, так как в открытой линии не виден id vk клиента.


    Для уже удаленного, кроме как через API в коробочной версии никак.
    Для облака - вообще никак.
    Ответ написан
    Комментировать
  • Как импортировать пользователей из CSV в Битрикс КП?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    В Вашем случае никак. Список пользователей -> Импорт пользователей для CSV файла не обновляет пользователей, а только создает и эта связь осуществляется по логину.
    Я бы заносил информацию в AD или ставил задачу на портале по заполнению полей.
    Можно конечно в 1С все это подтянуть и сделать связь: 1С -> Bitrix <- AD и тогда вообще шоколадно будет
    Ответ написан
    1 комментарий
  • Как индексировать содержимое PDF файлов в системе Bitrix?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Все зависит от того какая именно редакция битрикса.
    Например в Битрикс24 есть модуль Интранет, внутри которого (в настройках) есть "ссылки на внешние программы" для индексации содержимого.
    За pdf отвечает следующая комманда:
    pdftotext "#FILE_PATH#" -enc UTF-8 -nopgbrk -
    где #FILE_PATH# - это полный путь к файлу, который нужно проиндексировать.

    В теории для Управления сайтом можно написать обработчик создания/редактирования элемента инфоблока, куда заливаете файлы и дописывать в SEARCH_CONTENT / поисковый индекс содержимое файла.
    Ответ написан
    2 комментария
  • Как добавить свою логику в бизнес-процесс Битрикса24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    У вас выстроен бизнес-процесс, а значит есть какое-то действие на произведение операции. Что мешает сделать еще один блок который после задания выполнится?
    Можете подробнее расписать что у вас есть и что вы хотите?
    Ответ написан
    1 комментарий
  • Отписка от рассылки Bitrix?

    gromdron
    @gromdron
    Работаю с Bitrix24
    На основе ответа от битрикса, а так же темы на форуме битрикса, небольшой фрагмент кода для отписки:

    use \Bitrix\Main\Loader;
    use \Bitrix\Sender;
    
    /**
     * @var string Email пользователя
     */
    $email = 'test@efusion.ru';
    
    /**
     * @var string Список идентификаторов рассылок для отписки 
     */
    $unSubscribeList = [
        3
    ];
    
    try
    {
        if ( !Loader::IncludeModule('sender') )
        {
            throw new \Exception("Sender module not installed");
        }
    
        if ( empty($unSubscribeList) )
        {
            throw new \Exception("Empty unSubscribeList param");
        }
    
        $contactId = Sender\ContactTable::addIfNotExist([
            'EMAIL' => $email
        ]);
    
        if ( !$contactId )
        {
            throw new \Exception("Contact by email not found and has error when creating");
        }
    
        $contact = new Sender\Entity\Contact($contactId);
    
        $data = $contact->getData();
    
        foreach ($data['SUB_LIST'] as $subscriptionId)
        {
            if ( in_array($subscriptionId, $unSubscribeList) )
            {
                $contact->unsubscribe($subscriptionId);
            }
        }
    
    }
    catch( \Exception $e )
    {
        var_dump( $e->getMesage() );
    }
    Ответ написан
    Комментировать
  • Как в массиве убрать дубль?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Что касается вопроса "в лоб": почему бы не использовать агрегирующую функцию SUM для вычисления общего количества и группировку по PRODUCT_ID?

    Что касается формальной стороны: это не лучший вариант, ведь у вас может быть 2 товара отпущенных по разной цене. Т.е. товар 3022 отпущенный по 130 рублей в количестве 2х штук и еще 1 шт. товара 3022 по 100 рублей (например при покупк 2х скидка на третью вещь 30 рублей).
    Ответ написан
    Комментировать
  • Как заблокировать работу в Битрикс24 до тех пор, пока пользователь не начнет рабочий день?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Сделайте регламент и укажите на портале часы, когда работник должен открыть рабочий день. Затем проверяйте его длительность.
    Если сотрудник не начал рабочий день - не учитывайте его при расчет ЗП - считайте как отгул, прогул и т.п.
    Рабочий день может быть начат с другим временем, но в таком случае руководитель данного сотрудника должен подтвердить данные изменения.

    Чисто программных методов от этого нет - иначе посыпятся агенты, внешние приложения и т.п.
    Ответ написан
    1 комментарий
  • Как посчитать кол-во отзывов в компоненте bitrix:catalog.comments?

    gromdron
    @gromdron
    Работаю с Bitrix24
    В \CIBlockPropertyTools::CODE_BLOG_COMMENTS_COUNT хранится название свойства элемента в котором хранится число комментариев к нему. Т.е. выполняете обычный getList с указанием этого свойства (PROPERTY_*) и выводите на страницу
    Ответ написан
  • Как вывести в календаре название проекта(группы) рядом с названием задачи в Bitrix24(коробка)?

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


    Вы имеете ввиду API? Где они лежат в базе?

    В каком файле компонента эта происходит?


    Весь рендеринг детальной вьюхи находится в компоненте bitrix:calendar.view.slider
    Ответ написан
    2 комментария
  • Хранилище данных для небольшой компании?

    gromdron
    @gromdron
    Работаю с Bitrix24
    На данный момент (2018 год) в Битрикс24 существует модуль "Облачные хранилища", который позволяет передавать загружаемые файлы на поддерживаемые хранилища.
    То есть, с точки зрения пользователя ничего не изменится - они будут пользоваться битриксом так же как и раньше, но все файлы будут храниться в подключенном облачном хранилище.

    На 2018 год поддерживаются следующие сервисы:
    - Amazon Simple Storage Service
    - Google Storage
    - OpenStack Object Storage
    - Rackspace Cloud Files
    - Clodo.ru
    - Selectel
    - HotBox

    Мы в компании (20 человек, 10 активно работают с файлами) используем вариант с Selectel и за 2 года 80+ ГБ (хранение+трафик) съело около 3-4 тысяч рублей.
    Ответ написан
    Комментировать
  • Как исправить ошибку прикрепления файла к лиду Битрикс24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Вы не отправляете файлы в Битрикс24.

    // получаем данные из полей и задаем название лида
        $postData = array(
            'TITLE' => $metka,
            'NAME' => $leadData['NAME'],
            'PHONE_WORK' =>$leadData['PHONE_WORK'],
            'COMMENTS' => $comments,
            'EMAIL_WORK' => $leadData['EMAIL_WORK'],
        'SOURCE_DESCRIPTION' =>$leadData['SOURCE_DESCRIPTION'],
            'SOURCE_ID' => $istochnik,
            'ASSIGNED_BY_ID' => $assigned,
        );
    Ответ написан
  • Как изменить заголовок страницы Bitrix 24 КП?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Предположим мы хотим заменить "Мой диск" на "Документы" для русского языка. Воспользовавшись документацией мы знаем, что нужно сделать следующее:
    1) Создать языковой файл
    2) Вынести все языковые фразы.

    Создаем файл: /local/php_interface/user_lang/ru/lang.php
    Со следующим содержимым:
    <?php
    
    /**
     * Из модуля disk
     */
    $MESS['/bitrix/modules/disk/lang/ru/lib/uf/controller.php']['DISK_UF_CONTROLLER_MY_DOCUMENTS'] = 'Документы';
    $MESS['/bitrix/modules/disk/lang/ru/lib/proxytype/user.php']['DISK_PROXY_TYPE_USER_TITLE_CURRENT_USER'] = 'Документы';
    $MESS['/bitrix/components/bitrix/disk.uf.file/lang/ru/component.php']['WD_MY_LIBRARY'] = 'Документы';
    $MESS['/bitrix/components/bitrix/disk.uf.comments.attached.objects/lang/ru/component.php']['WD_MY_LIBRARY'] = 'Документы';
    $MESS['/bitrix/components/bitrix/disk.bitrix24disk/lang/ru/component.php']['WD_DISK_HISTORY_OPEN_DISK'] = 'Открыть документы';
    
    /**
     * Из модуля intranet
     */
    $MESS['/bitrix/modules/intranet/lang/ru/public/docs/.left.menu_ext.php']['MENU_DISK_USER'] = 'Документы';
    $MESS['/bitrix/modules/intranet/lang/ru/public/.left.menu_ext.php']['LEFT_MENU_DISC'] = 'Документы';
    $MESS['/bitrix/modules/intranet/lang/ru/public_bitrix24/docs/.left.menu_ext.php']['MENU_DISK_USER'] = 'Документы';
    $MESS['/bitrix/modules/intranet/lang/ru/public_bitrix24/extranet/.superleft.menu_ext.php']['MENU_FILES'] = 'Документы';


    Сбрасываем кеш сайта и все.
    Ответ написан
    Комментировать