- Приложение для Битрикс24 "Лаборатория роботов"
- Приложение для Битрикс24 "Сквозная аналитика 2.0"
- Приложение для Битрикс24 "Уничтожитель дубликатов"
- Приложение для Битрикс24 "Межпортальные задачи"
- Приложение для Битрикс24 "Немой чат-бот"
- Приложение для Битрикс24 "Доходы и расходы CRM"
- Приложение для Битрикс24 "Продуктивный Jivosite"
Поиск адресов
- Поиск адресов реквизита по типу (юридический, почтовый, фактический);
- Поиск адресов, привязанных к конкретному реквизиту (ENTITY_ID);
- Фильтрация адресов по городу, индексу, стране, строке адреса;
- Проверка наличия адреса перед созданием нового;
- Получение списка ID адресов для массового обновления или удаления;
- Поиск адреса по подстроке (ADDRESS_1, ADDRESS_2, CITY);
- Получение первого или последнего адреса из списка;
- Массовая обработка найденных адресов в цикле;
- Поиск адреса для подстановки в документы (счета, договоры);
- Условие по результату поиска (есть ли адрес у реквизита).
- Активити (робот) выполняет поиск через crm.address.list по заданным критериям (документация: crm.address.list);
- Условия формируются из заполненных полей. Пустые поля не участвуют в поиске. ENTITY_TYPE_ID = 8 (адреса реквизитов);
- Необходимо указать хотя бы один параметр. Если все пустые — ошибка «Не указаны параметры для поиска»;
- Результаты упорядочиваются по типу адреса (TYPE_ID). Возвращаются ID: массив, строка, первый, последний, количество, math_search_results;
- Если не найдено — math_search_results = N.
| Название поля | Описание и примеры использования |
|---|---|
| Тип адреса | Необязательный параметр. Поиск адресов только указанного типа (юридический, почтовый, фактический и т.д.). Примеры: - Выберите «Юридический» для поиска юридических адресов; - Оставьте пустым, чтобы не ограничивать поиск по типу. |
| ID реквизита | Необязательный параметр. Поиск адресов, привязанных к указанному реквизиту. Примеры: - {=Variable:REQUISITE_ID}; - {=A1988_22222_92566_99999:id_requisite} — из «Добавление реквизита»; - {=A1988_22222_92566_99999:search_result_first_string} — из «Поиск реквизитов». |
| Остальные поля для поиска | Поля (ADDRESS_1, ADDRESS_2, CITY, POSTAL_CODE, REGION, COUNTRY_CODE и др.) формируются из crm.address.fields. Поддерживаются операторы сравнения (=, !, %, >, < и т.д.). Заполняйте поля, по которым искать. Пустые не попадают в фильтр. Примеры: - ADDRESS_1 — поиск по подстроке адреса (например, %Москва%); - CITY — по городу {=Variable:CITY}; - POSTAL_CODE — по индексу. |
| Запускать от имени | Сотрудник, от имени которого выполняется действие. Рекомендуется администратор. |
| Устанавливать текст статуса, Текст статуса, Ожидать ответа, Период ожидания | Стандартные параметры активити (робота). |
| Описание примера | Решение |
|---|---|
| Найти адреса реквизита компании | ID реквизита — {=Variable:REQUISITE_ID}. Реквизит получите из «Поиск реквизитов» по ENTITY_ID — {=Document:COMPANY_ID}. В результате — search_results_array, search_result_first_string. |
| Поиск юридического адреса реквизита | Тип адреса — «Юридический», ID реквизита — {=Variable:REQUISITE_ID}. Используйте search_result_first_string в «Получение данных по адресному реквизиту» или «Изменение адресного реквизита». |
| Проверить, есть ли адрес, перед созданием | ID реквизита — {=Variable:REQUISITE_ID}, Тип адреса — «Юридический». Проверьте math_search_results: Y и count_search > 0 — адрес уже есть; N — создавайте через «Добавление адресного реквизита». |
| Получить первый адрес по типу | ID реквизита — {=Variable:REQUISITE_ID}, Тип адреса — «Почтовый». search_result_first_string — ID адреса для подстановки в документы. |
| Поиск по городу | ID реквизита — {=Variable:REQUISITE_ID}, CITY — «Москва» или {=Variable:CITY}. Вернёт адреса в указанном городе. |
| Массовая обработка найденных адресов | Задайте критерии (ID реквизита, Тип адреса и т.д.). Передайте search_results_array в итератор. В цикле для {=Iterator:Value} выполните «Получение данных», «Изменение» или «Удаление». |
| Поиск по подстроке адреса | ADDRESS_1 — «%ул. Ленина%» или {=Variable:STREET_PART}. Оператор % — поиск подстроки. Найдёт адреса, содержащие указанную строку. |
| Найти адрес для счёта на оплату | ID реквизита — {=Variable:REQUISITE_ID}, Тип адреса — «Юридический». search_result_first_string — ID адреса для «Получение данных по адресному реквизиту» и подстановки в шаблон счёта. |
| Поиск по индексу | POSTAL_CODE — {=Variable:INDEX} или «101000». Сузит поиск до адресов с указанным индексом. |
| Условие по результату поиска | Выполните поиск с нужными параметрами. В условии: если math_search_results = Y и count_search > 0 — ветка «Адрес найден»; иначе — «Добавить адрес». |
- math_search_results — Y (найдено) или N (не найдено или ошибка);
- count_search — количество найденных адресов;
- search_results_array — массив ID адресов (для итератора);
- search_results_string — строка ID через запятую;
- search_result_first_string — ID первого адреса в списке;
- search_result_last_string — ID последнего адреса в списке.
Используйте search_result_first_string или search_result_last_string как ID адреса. Для «Получение данных», «Изменение» и «Удаление» потребуются также Тип адреса и ID реквизита — при поиске по тем же параметрам используйте их. search_results_array передавайте в итератор для массовой обработки.
Параметры поиска: Хотя бы один параметр должен быть заполнен. Иначе — ошибка «Не указаны параметры для поиска», math_search_results = N.
Результаты не найдены: Ошибка «Результатов не найдено», math_search_results = N. Обрабатывайте в условии (ветка «Создать адрес»).
Адреса реквизитов: Поиск выполняется только по адресам, привязанным к реквизитам (ENTITY_TYPE_ID = 8). Для работы с адресами сначала создайте реквизит.
Операторы сравнения: Поддерживаются =, !, >=, <=, >, <, %, !% и др. Подробнее в документации crm.address.list.
Права доступа: Сотрудник «Запускать от имени» должен иметь права на просмотр адресов в CRM.