Поиск элемента списка по нескольким полям
Активити "Групповой поиск элементов списка" предназначено для использования в бизнес-процессах и роботах, когда требуется найти элементы списка Битрикс24 по нескольким условиям одновременно.
Сценарий работы активити бизнес-процесса
Активити (робот) анализирует выбранный список и находит элементы, удовлетворяющие набору условий. Для каждого условия указывается тип поля, буквенный код, код сравнения и искомое значение. Результатом будет массив ID найденных элементов и ID первого элемента из списка найденных.
Где искать элемент: в выпадающем списке выберите местоположение искомого элемента. Если поле является списком, используйте ID элемента, а не его текстовое значение.
Чтобы определить ID элемента:
- Перейдите в режим редактирования элемента списка.
- Нажмите F12 и включите выбор элемента на странице.
- Укажите нужное поле списка.
- Внизу появится значение с нужным ID.
Если осуществляется поиск списка групп, поле "Где искать элемент" не заполняется.
Если после установки активити (робота) список не отображается в выпадающем меню, убедитесь, что активити переустановлено после создания новых списков, общее количество списков не превышает 100 и глубина вложенности разумная, а также учитывайте ограничение на отображение не более 50 элементов в выпадающем меню.
Описание параметров активити
| Название поля | Описание и примеры использования |
|---|---|
| Где искать элемент |
Выберите список, в котором выполняется поиск. Для поиска по групповым спискам поле оставьте пустым. Пример: lists_567. |
| ID группы |
Укажите идентификатор группы соцсети, если используется списочный инфоблок в группе. Пример: {=Variable:GROUP_ID}. |
| ID списка |
Задайте идентификатор инфоблока для поиска. Пример: {=Variable:IBLOCK_ID}. |
| Параметры поиска элемента(ов) |
Укажите одно или несколько условий в формате ТИП##КОД##УСЛОВИЕ##ЗНАЧЕНИЕ. Примеры:
|
| Тип условия для всех параметров |
Выберите тип агрегирования условий: 1 — все условия (И); 2 — любое условие (ИЛИ). |
| Делать отладочные сообщения в журнал БП |
Варианты: Да/нет. Включайте только при необходимости детальной диагностики, так как активити использует дополнительные запросы. |
| Запускать от имени |
Укажите сотрудника, от имени которого выполняется поиск. Рекомендуется задавать сотрудника с административными правами. Пример: {=Template:TargetUser}. |
| Устанавливать текст статуса |
Варианты: Да/нет. При выборе «Да» активити обновляет статус шага бизнес-процесса. |
| Текст статуса |
Текстовое описание текущего шага. Пример: Копия {=Document:TITLE}. |
| Ожидать ответа | Системное поле, определяет необходимость ожидания результата от приложения. |
| Период ожидания. Время ожидания ответа от приложения |
Укажите период ожидания (не менее 5 минут). Пример: 10m. |
Формат условий поиска
Условия задаются последовательностью: тип поля##буквенный код##код условия##значение.
Типы полей:
CODE — пользовательские поля;
NAME — название;
DETAIL_TEXT — детальный текст;
PREVIEW_TEXT — текст анонса.
Коды условий:
- Равно - 1 (=);
- Не равно - 2 (!=);
- Больше или равно - 3 (>=);
- Меньше или равно - 4 (<=);
- Больше - 5 (>);
- Меньше - 6 (<);
- Содержит - 7 (%);
- НЕ Содержит - 8 (!%).
Примеры условий:
- CODE##UF_SUMMA##1##{=Variable:TARGET_SUM}
- DETAIL_TEXT##7##СПБ
- NAME##7##Контракт {=Document:ID}
- PREVIEW_TEXT##8##Архив
Данные символы ставятся перед содержимым ячейки:
={%ваше значение} - содержит (можно искать буквы и цифры в выбранной вами строке).
Пример заполнения: ={%груша}, вернет все 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}}.
Для полей тип "дата" и "дата/время", при необходимости поиска диапазона "от и до" содержимое ячейки должно заполняться так:
Вид пользовательского поля##Код поля##{{01.03.2015 14:55:22}}##{{07.05.2015 14:55:22}}
Вид пользовательского поля: это тип пользовательского поля (строка, число и прочее смотря какой у вас) заполняется на английском.
Код поля: берется в настройках поля из адресной строки.
Пример заполнения:
datetime##UF_CRM_1611588337##{{01.03.2015 14:55:22}}##{{07.05.2015 14:55:22}}
Для полей типа число или дата диапазон задаётся повторением параметра CODE с разными кодами условий.
Пример:
Ищем элемент за период с 01.03.2025 09:00:00 по 03.03.2025 09:00:00.
Заполняем поле: CODE##UF_CRM_DATE##3##{01.03.2025 09:00:00} и CODE##UF_CRM_DATE##4##{03.03.2025 09:00:00}.
При использовании множественного параметра "Параметры поиска элемента(ов)" каждое поле ввода в форме добавляет строку в общий массив content_element_search.
Убедитесь, что условия заполнены последовательно, иначе активити (робот) вернет ошибку формата.
Примеры использования активити
| Описание примера | Решение |
|---|---|
| Поиск договора по названию и сумме с обязательным совпадением обоих условий |
|
| Нахождение заявок, в детальном тексте которых указан город СПБ |
|
| Выбор элементов, название которых содержит номер счёта документа |
|
| Поиск элементов с анонсом, не содержащим слово "Архив" |
|
| Поиск заявок с датой создания в диапазоне текущей недели |
|
| Получение списка элементов, где сумма больше значения из переменной |
|
| Поиск элементов с точным совпадением пользовательского поля "Статус" |
|
| Отбор элементов, у которых поле "Регион" не содержит значение {=Variable:REGION_BLOCK} |
|
| Поиск элементов по нескольким условиям с типом "ИЛИ" |
|
| Выбор элементов с детальным текстом, содержащим ссылку на текущий бизнес-процесс |
|
Сценарий работы активити робота
Возвращаемые параметры активити (робота):
- Соответствует условиям;
- Количество найденных элементов;
- Массив ID найденных элементов;
- Строка с ID найденных элементов через запятую;
- Первый ID из результатов;
- Последний ID из результатов;
Важно корректно заполнять множественные параметры: пустые строки условий могут привести к отсутствию результатов или ошибке формата. Перед запуском активити (робота) убедитесь, что у выбранного пользователя достаточно прав на чтение элементов указанного списка.