Битрикс как найти пользователя

Перечень полей пользователей Битрикс24, который будет получен в результате выполнения метода, зависит от скоупа приложения/вебхука. Подробности о доступе к данным пользователей можно узнать в статье.

Метод для получения списка пользователей с ускоренным поиском по персональным данным (имя, фамилия, отчество, название подразделения, должность). Работает в двух режимах: быстро с помощью Fulltext Index и более медленный вариант через

правый LIKE

USER_NAME LIKE «Текст%» — это называется правый лайк, когда поиск осуществляется только по тексту который начинается на заданную фразу, но может содержать разные окончания — такой поиск существенно быстрее чем у двухстороннего лайка «%текст%» или левостороннего «%текст» — за счет архитектуры хранения идексированных полей в БД


(поддержка определяется автоматически).

Параметры

Параметр Описание С версии
FILTER Массив может содержать поля в любом сочетании:

  • NAME — имя
  • LAST_NAME — фамилия
  • WORK_POSITION — должность
  • UF_DEPARTMENT_NAME — название подразделения
  • USER_TYPE — тип пользователя. Может принимать следующие значения:
    employee — сотрудник,
    extranet — пользователь экстранета,
    email — почтовый пользователь

Или FIND — поле которое будет искать во всех перечисленных полях (Это аналог режима старого CUser::GetList в котором можно было задать фильтр NAME_SEARCH и получить результат)

Метод может работать либо с фильтрацией с помощью ключа FIND или со всеми другими полями. Одновременно использовать FIND и любое другое поле — нельзя.

Метод наследует поведение метода user.get все параметры из этой функции так же доступны.

Пример

Результат:

{
  "result": [
    {
      "ID": "2",
      "ACTIVE": true,
      "EMAIL": "m.ivshina@example.com",
      "NAME": "Мария",
      "LAST_NAME": "Ившина",
      "SECOND_NAME": "",
      "PERSONAL_GENDER": "F",
      "PERSONAL_PROFESSION": "",
      "PERSONAL_WWW": "http://shelenkov.com/horse/events.html",
      "PERSONAL_BIRTHDAY": "1984-04-29T02:00:00+04:00",
      "PERSONAL_PHOTO": "http://www.hazz/upload/main/982/42-17082203.gif",
      "PERSONAL_ICQ": "431-874-61",
      "PERSONAL_PHONE": "",
      "PERSONAL_FAX": "",
      "PERSONAL_MOBILE": "",
      "PERSONAL_PAGER": "",
      "PERSONAL_STREET": "",
      "PERSONAL_CITY": "",
      "PERSONAL_STATE": "",
      "PERSONAL_ZIP": "",
      "PERSONAL_COUNTRY": "0",
      "WORK_COMPANY": "",
      "WORK_POSITION": "IT-"специалист"",
      "WORK_PHONE": "+7 495 188 46 29",
      "UF_DEPARTMENT": [
        51,
        55,
        84
      ],
      "UF_INTERESTS": null,
      "UF_SKILLS": null,
      "UF_WEB_SITES": null,
      "UF_XING": null,
      "UF_LINKEDIN": null,
      "UF_FACEBOOK": null,
      "UF_TWITTER": null,
      "UF_SKYPE": null,
      "UF_DISTRICT": null,
      "UF_PHONE_INNER": "4629"
    }
  ],
  "total": 1
}

1

Сообщение не промодерировано, возможны ошибки и неточности.

Вот пример, поиска пользователя по ФИО, только в вебхуке или приложении надо выдать права на user иначе будет ошибка

$result_user = CRest::call(
‘user.search’,
array(«FILTER» => array(«FIND» => «Пирожков Роман»))
);

//result
Array
(
   [result] => Array
       (
           [0] => Array
               (
                   [ID] => 1
                   [XML_ID] => 46738392
                   [ACTIVE] => 1
                   [NAME] => Роман
                   [LAST_NAME] => Пирожков
                   [SECOND_NAME] =>
                   [EMAIL] =>

crm@calit.ru

                   [LAST_LOGIN] => 2023-02-15T09:52:49+03:00
                   [DATE_REGISTER] => 2022-12-28T03:00:00+03:00
                   [TIME_ZONE] =>
                   [IS_ONLINE] => Y
                   [TIME_ZONE_OFFSET] => 0
                   [TIMESTAMP_X] => Array
                       (
                       )

                   [LAST_ACTIVITY_DATE] => Array
                       (
                       )

                   [PERSONAL_GENDER] =>
                   [PERSONAL_WWW] =>
                   [PERSONAL_BIRTHDAY] =>
                   [PERSONAL_MOBILE] =>
                   [PERSONAL_CITY] =>
                   [WORK_PHONE] =>
                   [WORK_POSITION] => Исполнительный Директор
                   [UF_EMPLOYMENT_DATE] =>
                   [UF_DEPARTMENT] => Array
                       (
                           [0] => 1
                       )

                   [UF_USR_1673511597012] => +7 888 085-48-86
                   [USER_TYPE] => employee
               )

       )

   [total] => 1
   [time] => Array
       (
           [start] => 1676497622.4253
           [finish] => 1676497622.4831
           [duration] => 0.057794094085693
           [processing] => 0.014718055725098
           [date_start] => 2023-02-16T00:47:02+03:00
           [date_finish] => 2023-02-16T00:47:02+03:00
           [operating_reset_at] => 1676498222
           [operating] => 0
       )

)

1

Игорь Матвеев
01.11.2022 12:18:35

Сообщение не промодерировано, возможны ошибки и неточности.

Код
["FILTER"=> ["USER_TYPE"=>"extranet"]] 

Не работает. Получение пользователей экстранет возможно только по конкретному ID.

Код
["FILTER"=> ["ID"=>"extranet_user_id"]]

1

Олег Степанов
28.11.2021 01:07:36

‘ADMIN_MODE’: ‘True’ — только используя этот дополнительный параметр (например, так (это php): [«FILTER»=> [«USER_TYPE»=>»employee»],»ADMIN_MODE»=>»True»] ) Вы получите всех пользователей, включая Экстранет.

© «Битрикс», 2001-2023, «1С-Битрикс», 2023

Наверх

Данное активити позволяет найти сотрудника по заданным параметрам.

При настройке данного активити, доступно к заполнению довольно обширное количество пользовательских полей, заполнение этих полей опционально и является обязательным, при условии, что это одни из параметров, по которым будет осуществляться поиск.
Результатом работы данного активити, является вывод в ленту CRM ID искомого сотрудника, а так же данных его профиля, если таковые заполнены.

Сценарий работы активити бизнес-процесса

search_essence_user_lab.gif

ID: указание ID искомого сотрудника.
Данный пункт рассчитан на вывод данных только 1 сотрудника.
Подразделения: в данном поле указывается код подразделения, т.е его ID, так же можно выбрать подразделение из контекстного меню ««/ «Категории пользователей«/»Сотрудники и отделы«/ выбрать подходящий отдел. Подразделение/отдел или департамент, это по сути одно и тоже.
Пример заполнения: [D1] , где «1», это ID подразделения, так если выбирать через контекстное меню, то поле может быть заполнено так: BITRIX: Все сотрудники отдела [D1];

Какие параметры выводить: данное поле позволяет ограничить перечень доступных к выводу параметров. Варианты выбора: Только ID/Все данные/Сокращенный список параметров.
Только ID: активити выдаст только ID пользователя.
Все данные: Все доступные данные о пользователе.
Сокращенный список параметров: 24 поля , ID пользователя, e-mail, фамилия, имя , отчество, пол, должность, день рождения, номер телефона мобильный и рабочий, факс, сайт или ссылка на соц сети, улица, город, индекс, страна, номер подразделения в котором работает.

Уволен ли сотрудник(сотрудники)?: варианты да/нет, позволяет указать, уволен ли искомый сотрудник или нет.

Данное поле ЖЕЛАТЕЛЬНО к заполнению, если не указать уволен ли сотрудник или нет, то в результате поиска вы получите всех сотрудников, которые когда-либо работали в отделе, включая уволенных.

Данные символы ставятся перед содержимым ячейки:
={%ваше значение} — содержит (можно искать буквы и цифры в выбранной вами строке).
Пример заполнения: ={%груша}, вернет все ID сущностей, в которых, в выбранном вами поле, содержится слово «груша».
={!%ваше значение} — не содержит.
Пример заполнения: ={!%123} , это значит, что значение в выбранном поле не содержит 123 (можно искать буквы и цифры в выбранной вами строке).
={ваше значение} — равно.
Пример заполнения: ={123} , это значит, что значение в выбранном поле равно 123. (только для поля тип «строка» и «число»).
Если в поле используется текст, то этот текст должен совпадать символ в символ, иначе вы ничего не найдете.
={!ваше значение} — не равно.
Пример заполнения: ={!123} , это значит, что значение в выбранном поле не равно 123 (только для поля тип «строка» и «число»).
={>ваше значение} — больше.
Пример заполнения: ={>123} , это значит, что значение в выбранном поле больше 123 (только для поля тип «число»).
={<ваше значение} — меньше.
Пример заполнения: ={<123} , это значит, что значение в выбранном поле меньше 123 (только для поля тип «число»).
={=> больше или равно.
Пример заполнения =>123 , это значит, что значение в поле больше или равно 123 (только для поля тип «число»).
={=<  меньше или равно.
Пример заполнения =<123 , это значит, что значение в поле меньше или равно 123 (только для поля тип «число»)..


Если поле не является строкой, то содержимое ячейки должно заполняться так: 
={=>14.03.2020 15:10}в фигурных скобках указывается необходимый символ.
В случае с переменной, содержимое ячейки должно заполняться так: ={=>{=A1988_22222_92566_99999:search_results}.

Какие параметры выводить: в данном пункте доступны варианты выбора из выпадающего списка.
1. Только ID:
в результате поиска выводит только ID искомого сотрудника.
2. Все данные:
выводит все доступные данные о сотруднике.
3. Сокращенный список параметров:
выводятся только основные параметры о сотруднике(ID, имя, e-mail).

Если какие-либо данные у сотрудников будут совпадать, то активити будет выводить данные сотрудников, у которых эти данные совпадают.
Т.е если у 2 сотрудников совпал телефон или e-mail, то в результате активити выдаст ID этих пользователей.
Однако изначально активити рассчитано на поиск 1 сотрудника.
Если вы хотите вывести один из возвращаемых параметров «Результат..» , то вам необходимо выбрать из выпадающего списка параметр «Все данные».

Если нужно осуществить поиск по полю «Рабочий телефон», то в активити это поле называется «Телефон компании».

 

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

Запускать от имени: данное поле необходимо для того, чтобы установить сотрудника, с правами которого выполнять действие данного активити. Если у сотрудника не будет прав на выполнение действия, то активити не сработает. Рекомендуем выбирать всегда сотрудника с правами администратора системы.

Устанавливать текст статуса: данное поле позволяет включать возможность установки статуса бизнес-процесса. Это необходимо для того, чтобы во время работы активити информировать пользователя в истории о том, что бизнес-процесс остановился на конкретном шаге. Это особенно важно в момент отладки и выяснения причин неполадок в работе механизма.

Текст статуса: в данном поле указывается текстовый вариант статуса, который Вы можете изменять.

Ожидать ответа: данное поле Вами не управляется. Оно необходимо для того, чтобы определить, нужно ли ожидать реакции от нашего активити после запуска.

Период ожидания. Время ожидания ответа от приложения: Указывается в секундах, минутах, часах, днях, но не менее 5 минут и желательно не более 1 часа. 

Это поле нужно для аварийного завершения активити, и если ответ не получен в течении того количества времени, то активити завершается.

Если вы хотите использовать результат работы активити (возвращаемый параметр) в другом активити, в котором параметр — простое число, то несколько чисел разделенных запятыми работать не будут, так как параметр ждет только одно число.
Если параметр простой — строка, то туда не нужно вставлять результат работы в виде массива для итератора, так как данный параметр предназначен для полей с типом заполнения «множественное».

Сценарий работы робота

search_essence_user_lab.gif

Возвращаемые параметры для данного активити:
— Результат..(ID,EMAIL и пр.)
— ID сотрудника.
— Данные, которые указаны в учетной записи сотрудника(Ф.И.О., почта, телефон и пр.). 

При работе с большим объемом информации в CRM важно быстро находить и фильтровать нужные элементы.

В этой статье вы узнаете:

  • как найти элемент по номеру телефона,
  • как найти элемент по имени и электронной почте,
  • как работает фильтр,
  • как найти элементы с незаполненным полем,
  • как использовать поля из контактов и компаний в фильтре сделок.
  • Поиск работает очень просто — начните вводить запрос в строку поиска, и отфильтрованные данные тут же появятся у вас на экране.

    поиск_контакт.png

    Как найти элемент по номеру телефона

    Если мы введём в строку поиска цифры, то CRM найдет элементы по номеру телефона, даже если цифры разбиты разделителями — пробелами, скобками и дефисами.

    Для корректного поиска желательно вводить не менее трех цифр.

    контакт_телефон.png

    Как найти контакты без номера телефона

    Теперь очень просто найти контакты, в которых сотрудники забыли указать номер телефона клиента. В фильтре нажмите Добавить поле и выберите поле Задан телефон.

    задан_телефон.png

    Далее выберите значение Да или Нет. Таким образом, вы получите список клиентов без номера телефона.

    телефон_не_задан.png

     

    Как найти элемент по имени и электронной почте

    Если мы введём в строку поиска буквы, то фильтр будет искать элементы по имени, фамилии, отчеству клиента или ответственного. Также поиск учитывает и адреса электронной почты.

    Вы можете ввести любое количество букв, но фильтр будет искать их в начале слова или как отдельное слово. То есть по запросу «ха» Битрикс24 найдет значения: Харитон, Харламов и Ю Чжэ Ха, но не найдет Кухарин.

    поиск_имя.png

    Как работает фильтр

    Фильтр — более гибкий вариант поиска по конкретным полям.

    Если вы не указали значения полей, пустой фильтр по умолчанию покажет все элементы.

    фильтр.png

    Как только вы укажете, что хотите найти например, всех обладателей джипов, фильтр покажет только подходящие элементы.

    фильтр_поле.png

    Фильтр найдет элементы даже по фрагменту значения.

    поиск_директор.png

    Как найти элементы с незаполненным полем

    В Битрикс24 есть возможность фильтровать поля в элементах по признаку заполнено или не заполнено.

    Допустим, вы решили привести базу данных в порядок и хотите найти всех клиентов, у которых не заполнено поле фамилия.

    Опция работает для всех типов полей, кроме файлов, списков, бронирования ресурсов и различных связей.

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

    поле_заполнено.png

    После того как выберите одно из значений, CRM выдаст результат поиска.

    результат_поиска.png

    Как использовать поля из контактов и компаний в фильтре сделок

    Сделки можно фильтровать по полям из связанных компаний и контактов. Эта возможность будет полезна, если нужно найти сделки с компаниями определенной сферы деятельности или с контактами, которые создал конкретный сотрудник.

    Чтобы выбрать поля из контактов и компаний, нажмите Добавить поле в фильтре сделок. В верхней части окна вы увидите три кнопки, которые включают и выключают поля из элементов CRM. Отметьте нужные элементы, а затем выберите поля, которые хотите добавить в фильтр.

    кнопки_фильтр.png

    Существует лимит по количеству сделок для поиска и фильтра по полям Контактов и Компаний. Поиск не работает по полям E-mail и телефон. Количество сделок, при котором будет работать поиск, считается по всем воронкам.

    • Бесплатный — 1 000 сделок.
    • Базовый — 50 000 сделок.
    • Стандартный — 50 000 сделок.
    • Профессиональный — 50 000 сделок.
    • Энтерпрайз — 100 000 сделок.

    Спасибо, помогло!

    Спасибо :)


    Это не то, что я ищу


    Написано очень сложно и непонятно


    Есть устаревшая информация


    Слишком коротко, мне не хватает информации


    Мне не нравится, как это работает

    Данная запись является шпаргалкой по работе с пользовательскими полями. В записи представлены конструкции кода для работы с полями пользователя, условиями для проверки типа пользователя и примерами запросов для изменения данных пользователя через API

    Получаем пользователя по ID

    Для получения информации о пользователе вы можете написать следующий запрос.

    Для получения всех стандартных полей укажите в select -> ‘*’

    Для получения всех дополнительных полей укажите в select -> ‘UF*’

    $dbUser = BitrixMainUserTable::getList(array(
        'select' => [
            'ID', 
            'NAME', 
            'PERSONAL_PHOTO', 
            'PERSONAL_WWW'
         ],
         'filter' => [
             'ID' => $USER->GetID()
         ]
    ));
    if ($arUser = $dbUser->fetch()){
        var_dump($arUser);
    }

    Стандартная проверка на поискового бота

    BitrixCatalogProductBasket::isNotCrawler() вернёт false если это бот.

    if (!BitrixCatalogProductBasket::isNotCrawler()) {
        $skipUserInit = true;
    }

    Получаем пользователя по ID

    //D7
    use BitrixMainUserTable;
    
    $user = UserTable::getList([
        'select' => ['ID'],
        'filter' => ['EMAIL' => 'user@mail']
    ])->fetch();
    
    echo $user['ID'];
    
    //old
    $cUser = $USER::GetList(
        $by="ID",
        $order="desc",
        [
            'EMAIL' => 'user@mail'
        ],
        [
            'SELECT' => ['ID']
        ]
    )->fetch();
    
    echo $cUser['ID'];

    Создание нового пользователя

    // создадим массив описывающий изображение 
    // находящееся в файле на сервере
    $arIMAGE = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/photo.gif");
    $arIMAGE["MODULE_ID"] = "main";
    
    $user = new CUser;
    $arFields = [
      "NAME"              => "Сергей",
      "LAST_NAME"         => "Иванов",
      "EMAIL"             => "ivanov@microsoft.com",
      "LOGIN"             => "ivan",
      "LID"               => "ru",
      "ACTIVE"            => "Y",
      "GROUP_ID"          => [10,11],
      "PASSWORD"          => "123456",
      "CONFIRM_PASSWORD"  => "123456",
      "PERSONAL_PHOTO"    => $arIMAGE
    ];
    
    $ID = $user->Add($arFields);
    if (intval($ID) > 0) {
        echo "Пользователь успешно добавлен.";
    } else {
        echo $user->LAST_ERROR;
    }
    

    Изменение полей пользователя

    $user = new CUser;
    $fields = [
        "NAME" => "Сергей",
        "LAST_NAME" => "Иванов",
        "EMAIL" => "ivanov@microsoft.com",
        "UF_PROD_NAME" => "Тестовый товар"
    ];
    $user->Update($USER->GetID(), $fields);
    $strError .= $user->LAST_ERROR;

    Для обновления пользовательского поля, вида «список» (где 11,12,13 — это ID значений списка.):

    $user = new CUser;
    $fields = [
        "UF_SHOP" => [11,12,13], 
    ]; 
    $user->Update($ID, $fields);

    Авторизовать пользователя по ID

    $USER->Authorize($user['ID']);

    Получаем список групп

    $result = BitrixMainGroupTable::getList([
        'select'  => [
            'NAME',
            'ID',
            'STRING_ID',
            'C_SORT'
        ],
        'filter'  => ['!ID'=>'1']
    ]);
    
    while ($arGroup = $result->fetch()) {
    	//Обрабатываем результат
    }

    Перенос пользователя в другую группу

    BitrixMainUserGroupTable::add([
        "USER_ID" => $USER_ID,
        "GROUP_ID" => 10,
    ]);

    Получаем список активных пользователей в группе

    $result = BitrixMainUserGroupTable::getList(array(
        'filter' => ['GROUP_ID'=>5,'USER.ACTIVE'=>'Y'],
        'select' => [
            'USER_ID',
            'NAME'=>'USER.NAME',
            'LAST_NAME'=>'USER.LAST_NAME'
        ],
        'order' => [
            'USER.ID'=>'DESC'
        ],
    ));
    
    while ($arGroup = $result->fetch()) {
        //Обрабатываем результат
    }

    Удалить пользователя из группы

    BitrixMainUserGroupTable::delete([		 
    	"USER_ID" => $REQUEST['USER_ID'], 
    	"GROUP_ID" => 5, 
    ]);

    Получить ID текущего авторизованного пользователя

    BitrixMainEngineCurrentUser::get()->getId()

    Проверить, авторизован ли пользователь

    if(BitrixMainEngineCurrentUser::get()->getId()) {
        // выполняем код
    }

    Проверить, является ли пользователь админом

    BitrixMainEngineCurrentUser::get()->isAdmin()

    Получить логин текущего пользователя

    BitrixMainEngineCurrentUser::get()->getLogin()

    Получить массив групп текущего пользователя

    BitrixMainEngineCurrentUser::get()->getUserGroups()

    Получить полное имя текущего пользователя

    BitrixMainEngineCurrentUser::get()->getFullName()

    Получить имя текущего пользователя

    BitrixMainEngineCurrentUser::get()->getName()

    Получить фамилию текущего пользователя

    BitrixMainEngineCurrentUser::get()->getLastName()

    Получить отчество текущего пользователя

    BitrixMainEngineCurrentUser::get()->getSecondName()

    1

    10.09.201412:0510.09.2014 12:05:01

    Напишите, в какой сфере вы работаете, чтобы получить примеры автоматизации с кейсами внедрений по тематике вашего бизнеса.

    Установите приложение Пинкит, чтобы расширить возможности вашего портала на Битрикс24:

    Рассмотрим применение функционала поиска в контактах.

    Фильтр

    К поиску необходимых контактов можно приступить находясь в разделе Контакты при помощи графы поиска, находящейся над контекстной панелью

    К поиску необходимых контактов можно приступить в разделе Контакты при помощи графы Поиск, находящейся над панель с контекстом:

    Можно использовать при поиске как параметры по умолчанию, так и персонализировать настройки поиска:

    • Найти — начните вводить имя, фамилию, электронную почту либо телефон, потом в рядом стоящем поле, щёлкнув по полю со со стрелочками, выберите, среди какой группы контактов осуществлять поиск:
    • Список компаний — при нажатии на Выбрать осуществиться переход на Поиск, где у вас появится возможность выбора компании связанные с которой контакты вы хотите найти. Так же, здесь существует система предугадывания слов:

    Вкладка Последние отобразит компании, выбранные за последние время.

    • Тип контакта — выберите при помощи щелчка мыши, по какому типу контактов стоит производить поиск. При зажимании ctrl имеется возможность выделения нескольких видов.
    • Дата изменения — при помощи выпадающего списка укажите конкретную дату или определённый период времени, за который произошло добавление искомого контакта.

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

    При помощи функции точно в рядом стоящем поле имеется появляется возможность указания точной даты:

    Указании периодов позже либо раньше, вам необходимо ввести дату, соответствующую задаваемым временным промежуткам.

    При помощи функции Интервал имеется возможность задания временного промежутка, в течение которого был внесён искомый контакт.

    При помощи Отмена у вас имеется возможность очистки всех заполненных полей.

    При нажатии на Найти начнётся поиск. Вам будут представлены контакты, удовлетворившие заданные в поиске условия.

    Если таких контактов не существует, то вам выведется сообщение:

    Пресеты

    У системы так же есть в наличии фильтры: Измененные мной и Мои контакты, при нажатии на которые появляется возможность произведения поиска по уже задаваемым параметрам:

    Для пользователя Битрикс24 имеется возможность сохранения фильтров с самостоятельно настроенными параметрами для поиска (нужно нажать на +):

    Укажите название созданного предустановленного фильтра и сохраните, после чего вы сможете использовать его при поиске.

    Для корректировки настроек фильтра и его деинсталляции используйте кнопку снизу:

    Есть возможность добавлениеудаление новых условий на панель фильтра.

    Для снятия параметров поиска нажмите на пункт Скрыть все условия. Для отображения выбранных параметров, выберите Показать все условия.

    Примечание: имеется возможность отфильтровать сущности по полям пользователей, а сделок и лидов — по товарам.

    Использование поиска Битрикс24

    На любой вкладке Битрикс24 имеется специализированный поиск по сущностям, который не отобразит в своих результатах «лишних» данных:

    Также сущности Битрикс24 можно найти при помощи общего поиска:

    Установите приложение Пинкит, в состав которого входит множество интеграций для автоматизации:

    Для этого выбираем нужный регион и устанавливаем Пинкит на свой Битрикс24:

    Остались вопросы или нужна помощь?

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

    Понравилась статья? Поделить с друзьями:
  • Как найти навоз в игре webbed
  • Как составить расписание тренировок в зале
  • Синий экран смерти windows 7 0x0000001e как исправить
  • Как найти избранные линзы в снапчате
  • Как составить задачи круги эйлера