Рассмотрим пример работы с функциями в Калькуляторе для работы со списками.
Важно!
Необходимо скопировать/сохранить номер нового списка, чтобы работать с ним далее.
Чтобы узнать ID списка:
- перейдите в соответствующий раздел "Списки и метки";
- нажмите на необходимый список, чтобы открылось правое меню;
- и скопируйте ID списка.

Также можно создать список прямо в калькуляторе в разделе "Конструктор" и присвоить ID нового списка переменной. Для этого:
- Пропишите переменную в калькуляторе в блоке, например, list_id;
- Далее приравняйте переменной функцию create_list('название вашего списка');
- Передайте переменную #{list_id} с хешом и фигурными скобками в поле "Сообщение":

- Запустите блок в режиме тестирования:

Теперь в переменной list_id лежит значение ID нового списка.
Очень удобно использовать списки при выводе статистических данных:

Часто возникает необходимость получить общее количество уникальных записей в наборе списков - это легко достичь применением функции lists_joint_count()

аа
Создать новый список
create_list()
Описание
Укажите в поле Калькулятор в настройках блока функцию
create_list(spisok) - создание нового списка. Результат - номер списка
Параметры:
! spisok - наименование списка. Наименование задается в одинарных кавычках
Пример
list_id = create_list("зарегистрировались")

Создание списка из блока без создания дубля
create_list_if_not_exist()
Описание
create_list_if_not_exist('list_name') - создает новый список, если с таким именем еще нет и возвращает идентификатор или вернет идентификатор существующего
Обязательный параметр:
list_name - Название для создания нового списка
Пример

new_list = create_list_if_not_exist('Список участников')
Добавление клиента в список
add_to_list()
Описание
add_to_list(spisok, client_id)- добавление клиента в список. Результат функции - none
Параметры:
! spisok - номер списка. Можно передавать как один идентификатор "1567", так и список идентификаторов - [1567, 1672, 1980]
client_id - идентификатор клиента Salebot. Если не передан, то используется идентификатор текущего клиента
Перемещение клиента в список
move_to_list()
Описание
move_to_list(spisok, client_id) – перемещение клиента в список (Важно! клиент удаляется из всех других списков и перемещается в указанный). Результат - булево значение (True или False)
Параметры:
! spisok - номер списка. Можно передавать как один идентификатор "1567", так и список идентификаторов - [1567, 1672, 1980]
client_id - идентификатор клиента Salebot. Если не передан, то используется идентификатор текущего клиента
Удаление клиента из списка
remove_from_list()
Описание
remove_from_list(spisok, client_id) – удаление из списка клиента с заданным client_id
Параметры:
! spisok - номер списка
client_id - идентификатор клиента Salebot. Если не передан, то используется идентификатор текущего клиента
Удаление списков
remove_list_from_project(list_id, clear_list)
First Tab
! list_id — обязательный параметр, это id списка, который нужно удалить
clear_list — необязательный параметр, принимает 2 значения True или False (по умолчанию False), если не передавать его и если список содержит клиентов, вы получите ответ следующего вида:
«Can't delete list, list not empty»
если список пустой, то список спокойно удалится, если же в clear_list установить значение True, то список удалится в независимости от того, есть там клиенты или нет.
Удаление меток
remove_label_from_project(list_id, clear_list)
First Tab
! list_id — обязательный параметр, это id метки, которую нужно удалить
clear_list — необязательный параметр, принимает 2 значения True или False (по умолчанию False), если не передавать его и если клиентам присвоена данная метка, вы получите ответ следующего вида:
«Can't delete list, list not empty»
если список пустой, то метка удалится, если же в clear_list установить значение True, то список удалится в независимости от того, есть там клиенты или нет
Очистить список клиентов
clear_list()
Описание
clear_list(list_id) - очистка списка клиентов
Параметры:
! list_id - номер списка. После использования все клиенты будут удалены из указанного списка.
Узнать количество клиентов в списке
list_size()
Описание
list_size(spisok) – для подсчета общего количества клиентов в списке
Параметры:
! spisok - номер списка
Подсчитать количество уникальных записей о клиентах в нескольких списках
lists_joint_count()
Описание
lists_joint_count(massive_list) – для подсчета общего количества уникальных записей о клиентах, которые находятся в нескольких списках. На вход функция принимает массив с номерами списков. Результат - число.
Параметры:
! massive_list - массив с перечнем списков, в котором будем производить подсчет уникальных записей клиента. Записывается в формате: '[list_id1, list_id2, ..., listidN]'
Пример кода для копирования
/*Создание списка*/
list_id = create_list('Новенький списочек')
/*проверяем состоит ли клиент в списке*/
k=inlist(list_id, client_id)
/*вывод размера списка - общее количество клиентов списка*/
razm=list_size(1)
/*Получение общего количества уникальных записей в списках*/
k=lists_joint_count('[144636,144634]')
Видеоразбор
Проверить есть ли клиент в списке
inlist()
Описание
inlist(spisok,client_id) - для проверки наличия пользователей в списке. Результат - булево значение (True или False)
Параметры:
! spisok - номер списка
client_id - идентификатор клиента Salebot. Если не передан, то используется идентификатор текущего клиента
Проверить состоит ли участник чата в определенном списке
some_client_in_list()
Описание
some_client_in_list(list_id, recepient)
Параметры:
! list_id - номер списка;
! recepient - это значение id в мессенджере проверяемого (platform_id). Для чатов значение переменной chat_member_id.
Возвращаемый результат:
True - клиент есть в списке;
False - клиента нет в указанном списке.
Пример


Пример кода для копирования
/*пример проверки наличия в списке для участников чата, где первый параметр - номер списка, второй - ID пользователя в чате*/
r = some_client_in_list(123456, chat_member_id)
Видеоразбор
Возвращение элементов из списка
count_occurrences()
Описание
count_occurrences(array, element) - возвращает число указанных элементов, содержащихся в списке
array - обязательный параметр, список элементов
element - обязательный параметр, элемент, который необходимо посчитать
Получение случайного ID клиента из списка
random_list_member(list_id)
Описание
random_list_member(list_id) - возвращает случайный id одного из клиентов, находящихся в указанном списке.
list_id - обязательный параметр, id списка.
ID списка, в котором лежат ваши клиенты, берется в разделе "Списки":

Получить массив ID всех списков клиента
get_all_client_list_ids(client_id)
Описание
get_all_client_list_ids(client_id) — возвращает массив с ID всех списков, в которых состоит клиент.
Если клиент не состоит ни в одном списке — возвращает пустой массив [].
Параметры:
client_id — идентификатор клиента Salebot. Если не передан, используется идентификатор текущего клиента.