Итератор: как работать с множественными переменными в бизнес-процессах
Я долго ждала, и он появился!
Итератор: для чего он нужен, как настраивать и пример использования - всё по ссылке "Подробнее" :-)
Сделка оплачивается частями в произвольное количество этапов. Платежи фиксируются в множественном поле "Платежи". Нужно автоматом рассчитывать оставшуюся к оплате сумму, как разницу между суммой сделки и суммой платежей, и записывать ее в поле "Осталось оплатить".
Как настроить:
Для того, чтобы рассчитать уже оплаченную сумму, нужно последовательно сложить все значения из поля "Платежи".
В настройках итератора можно указать только переменную, поэтому сначала нужно значение поля "Платежи" скопировать в служебную множественную переменную "Платежи":
Добавляем из категории "Конструкции" новый блок "Итератор" в бизнес-процесс и настраиваем его на работу с переменной "Платежи":
Итератор сам последовательно пройдет каждое значение переменной и в дополнительные результаты вернет ключ и значение.
Для вычисления и хранения суммы платежей добавляем ещё одну переменную "Сумма платежей" (payment_sum) с типом "Число" и в итераторе к текущему значению суммы платежей прибавляем значение итератора:
Итератор: для чего он нужен, как настраивать и пример использования - всё по ссылке "Подробнее" :-)
Для чего нужен итератор
В Битрикс24 можно создавать множественные поля и переменные.
Всё хорошо, но в бизнес-процессе это поле/переменная представляется как список значений через запятую. Не было простой возможности обработать каждое значение отдельно.
Новое действие в редакторе бизнес-процессов "Итератор" эту проблему решает: он делает последовательный обход элементов множественного поля/переменной.
Новое действие в редакторе бизнес-процессов "Итератор" эту проблему решает: он делает последовательный обход элементов множественного поля/переменной.
Как настраивать итератор и пример использования
Пример:
Сделка оплачивается частями в произвольное количество этапов. Платежи фиксируются в множественном поле "Платежи". Нужно автоматом рассчитывать оставшуюся к оплате сумму, как разницу между суммой сделки и суммой платежей, и записывать ее в поле "Осталось оплатить".
Как настроить:
Для того, чтобы рассчитать уже оплаченную сумму, нужно последовательно сложить все значения из поля "Платежи".
В настройках итератора можно указать только переменную, поэтому сначала нужно значение поля "Платежи" скопировать в служебную множественную переменную "Платежи":
Добавляем из категории "Конструкции" новый блок "Итератор" в бизнес-процесс и настраиваем его на работу с переменной "Платежи":
Итератор сам последовательно пройдет каждое значение переменной и в дополнительные результаты вернет ключ и значение.
Для вычисления и хранения суммы платежей добавляем ещё одну переменную "Сумма платежей" (payment_sum) с типом "Число" и в итераторе к текущему значению суммы платежей прибавляем значение итератора:
Теперь осталось только из суммы сделки вычесть сумму платежей и записать значение в поле "Осталось оплатить":
В итоге схема бизнес-процесса должна выглядеть так:
Бизнес-процесс настраиваем на автозапуск при создании и изменении сделки.
Тестируем:
45 000 - (5 000 + 6 000 + 10 000) = 24 000
Идеально! :-)
Все здорово, только вот с задачами итератор работать не умеет. Нельзя просто так взять и поставить задачу каждому участнику группы с помощью бизнес-процессов. Потому что нет инструмента , который подготовит для итератора список пользователей. Это возмутительно так как с действием "ознакомление с документом" использование итератора возможно.
ОтветитьУдалитьАртём, здравствуйте!)
УдалитьНе совсем поняла Вашу задачу. Вам нужно каждому участнику определенной рабочей группы поставить задачу или задание "Ознакомление с документом"? С задачами не должно быть проблем: сохраняете список участников группы в множественную переменную с типом "Пользователь", по этой переменной запускаете итератор и в цикле итератора ставите задачи.
Если нужно использовать задание "Ознакомление с документом", то опишите, пожалуйста, подробнее, что нужно настроить.
К сожалению так не работает. При присвоении множественной переменной группы пользователей, присваивается именно идентификатор группы, а не список пользователей
УдалитьА возможно ли в описание одной задачи итератором подставлять ID файлов из полей лида (в ссылку)?
ОтветитьУдалитьНе совсем понятно как их разделить в этом случае
Как я поняла, нужно сформировать список из ссылок на файлы и поместить этот список в описание задачи.
УдалитьЕсли да, то можно создать переменную с типом "Многострочный текст" и в цикле итератора добавлять строку со ссылкой на файл в эту переменную. После завершения цикла добавить эту переменную в описание задачи.
Люба, здравствуйте!
УдалитьСкажите пожалуйста, можно ли через итератор настроить отправку смс роботом сразу всем контактам, прописанным в сделке, а не только первому?
Добрый день!
УдалитьОписывала в статье.
Этот комментарий был удален автором.
ОтветитьУдалитьсамые нужные фото к описанию не показывает страница(
ОтветитьУдалитьВроде бы отображается всё. Напишите, плиз, в каком браузере открываете, если остается проблема.
УдалитьКрасотка!
ОтветитьУдалитьКак с вами связаться? Написал вам на почту.
ОтветитьУдалитьОтветила в почте
УдалитьСпасибо вам!
ОтветитьУдалитьГод назад пытался разобраться с итератором. Очень помогла ваша статья.
Не думал, что вы тут отвечаете, был приятно удивлён )
Я некоторое время не занималась блогом, сейчас все комменты просматриваю и на все отвечаю)
УдалитьДобрый день, Люба, может вы в курсе по следующему вопросу?
ОтветитьУдалитьПолучаю по задаче утверждения комментарии пользователей из дополнительных результатов. По идее это многострочная переменная. Пытаюсь запустить по ней итератор, он срабатывает только один раз. Хотя если это значение в уведомления пользователя вывести, они выводятся в несколько строк, например:
test1 test1 (ch@lala.ru): Утвержден
Комментарий: 123
test2 test2(du@lala.ru): Утвержден
Комментарий: 456
test3 test3 (v@lala.ru): Отклонен
Комментарий: фыв.
Я через стороннюю программу формирую документ с комментариями и результатами утверждения. Все пишется в одну строку, без разделения.
Константин, здравствуйте!
УдалитьПроверила - да, комменты из Утверждения - это многострочный текст, а не Строка с множественными значениями. Поэтому и итератор срабатывает только один раз. Пока нет идей, как ее разделить.
Спасибо, может есть признак окончания строки в многострочной переменной?
УдалитьПроверяла "\n" и "[br]" - по ним разделить строку не получилось.
Удалить$a = explode("\n", $text); в php срабатывает, можно в админке в командной строке php проверить:
Удалить$text = "
User1: Утвержден
User2: Утвержден
User3: Отклонен
Комментарий: Требуется разместить последний проект договора с заполненным п.п. 3.1.1.
";
//print_r($text);
$a = explode("\n", $text);
$a = array_diff($a, array('', null));
print_r($a);
сравнение array_diff с нулем, чтобы убрать пустые строки из массива, если образуются.
👍
УдалитьДобрый день! отличная статья. Столкнулся с задачкой по итератору. Отправил Вам на почту более детально. Посмотрите пж, как время будет
ОтветитьУдалитьОтветила в почте
УдалитьЛюба, отправил Вам запрос на почту. Надеюсь ответите. Не получается запустить итератор с формулой:
ОтветитьУдалитьstaff_tmp ={=Variable:staff_tmp}+{=A64775_90163_3992_42294:Value}
staff_tmp - привязка к пользователю
A64775_90163_3992_42294:Value - перебор переменной - привязка к пользователю.
Что не так делаю. В конце БП staff_tmp пуст
Сергей, добрый день!)
УдалитьВместо ={=Variable:staff_tmp}+{=A64775_90163_3992_42294:Value} попробуйте:
{{=merge({=Variable:staff_tmp},{=A64775_90163_3992_42294:Value})}}
Проверила на своем упрощенном БП с двумя множественные переменными с типом Привязка к сотруднику: если использовать merge, то значения из переменной, по которой запускается итератор, последовательно копируются во вторую переменную.
Добрый день, в схожей ситуации в итератор загружаю переменную с несколькими сотрудниками, при добавлении нового сотрудника через "merge" из первой переменной берется только один пользователь (их там может быть 10).. в чем может быть проблема?
УдалитьДобрый день!
УдалитьПока не сталкивалась с такой ситуацией. Напишу, если будет решение.
Спасибо!!! "=merge" - это то, что нужно для создания переменно и использования ее в Итераторе!
ОтветитьУдалитьА скажите, можно без итератора как-то узнать количество значений в множественном поле, запустить цикл и обратиться последовательно к каждому полю? Задачка: хочу настроить график платежей по сделке. Накреативил два множественных списка: даты платежа и сумма платежа. Теперь хочу поставить ответственному по одной задаче на каждую такую пару. Итератор тут не подойдет.
ОтветитьУдалитьА почему итератор не подходит в данном случае? Он как раз нужен, чтобы последовательно обратиться к каждому значению множественного поля.
УдалитьА как такой кейс можно решить с помощью итератора если дано два множественных поля и нужно получить значения из полей (1ая строчка Дата платежа, 1ая строчка Сумма платежа) а таких строчек может быть 10 шт. и отправить ответственному данные только по 1ой?
УдалитьЗдравствуйте!
ОтветитьУдалитьКак вывести множественное значение в файл Word, чтобы каждый раз появлялась новая строка?
Есть процесс ознакомления - количество сотрудников изначально неизвестно, в шаблоне Word только одно поле для вывода ФИО и одно поле для указания даты ознакомления. Как добавить следующие значения в файл Word, чтобы получился список ознакомившихся с датой?
Здравствуйте! Каким образом формируется документ: действием Создание Документа CRM или какими-то активити из маркетплейс?
УдалитьШаблон лежит на Диске, используем "Генератор документов" из маркетплейс.
УдалитьНе подскажу. С Генератором документов работала, но конкретно с такой задачей не сталкивалась.
УдалитьДобрый день Тинаева Люба, подскажите, как прибавить в конец первой переменной (строки) значение второй переменной (тоже строка)?
ОтветитьУдалитьИз примеров выше всё понятно "={=Variable:staff_tmp}+{=A64775_90163_3992_42294:Value}" это сложение.
А как сложить строки. Аналог в php ""
$val=$val . " " . $val2;
УдалитьА просто через пробел должно работать. То есть вот так ={=Variable:staff_tmp} {=A64775_90163_3992_42294:Value}, если бы нужно было в строку объединить значения, а не посчитать сумму
УдалитьСпасибо большое! Очень помогли.
УдалитьДобрый день ! Возможно это не совсем в эту ветку .Я так и не нашел есть ли такая возможность присваивать переменной значение из массива по ключу примерно так как в обычном языке программирования
ОтветитьУдалитьi = 3 // Ключ
y = x [i] // значение по ключу
В итераторе есть и ключ и значение , но можно ли ими как то пользоваться кроме как присваивать их значения?
Добрый день!
УдалитьНе поняла вопрос. В дополнительных результатах итератора есть и ключ и значение, их можно записать в переменные, если требуется.
Да это я понял, вопрос в том если я хочу взять значение из массива допустим по ключу 3 (четвертый элемент по счету в массиве ) не через итератор путем перебора всех значений массива, допустим директивно так пример блока изменения переменной "Переменная " = {=Variable:Array[3]} . Но так не сохраняет блок изменение переменной Битрикс значит это не возможно, есть ли такая возможность в принципе?
УдалитьТеперь поняла вопрос. Насколько я знаю, ключ и значение только на текущей итерации можно получить. После завершения работы итератора обратиться к значению по ключу не получится.
УдалитьСпасибо, то есть к массиву ни как не обратиться на прямую без итератора?
УдалитьДумаю, что никак.
УдалитьДобрый день. Есть компания в которой несколько контактов, стоит задача, чтоб при смене ответственного в компании, менялся ответственный во всех контактах. Это можно как-то реализовать через итератор?
ОтветитьУдалитьДобрый день!
УдалитьДа, можно реализовать через итератор. В переменную нужно записать значение поля "Контакты компании" и по этой переменной запустить итератор. В итераторе последовательно обновить контакты: можно с помощью запуска бизнес-процесса для контакта.
День добрый. А можно чуточку подробнее? Каким образом мне в переменную вписать все контакты, принадлежащие этой компании?
УдалитьВ бизнес-процессе для компании нужно создать множественную переменную с типом "Целое число", в нее записать значение поля "Контакты компании" скрин. По этой переменной запустить итератор.
УдалитьИнтересно, у меня такого пункта нет, возможно он называется Контакты https://prnt.sc/sotuv4. БП так должен выглядеть https://prnt.sc/sotvbe https://prnt.sc/sotw20? А то как то не заработал. Спасибо
УдалитьНа Вашем первом скриншоте показана настройка бизнес-процесса для сделки и, соответственно, список полей сделки. В сделке список связанных контактов находится в поле Контакты. Вам нужно настроить смену ответственного в контактах при изменении ответственного в сделке или в компании? Если в компании, то бизнес-процесс наверно правильнее настроить для компаний, а не для сделок. В бизнес-процессе для компании список связанных контактов будет в поле Контакты компании.
УдалитьЯ бы настроила так:
1. Бизнес-процесс в компании, который запускается на любое изменение компании, проверяет, изменилось ли поле Ответственный и, если изменилось, то запускает бизнес-процесс из п.2
2. Бизнес-процесс с параметром в контактах. В параметр передавать ID нового ответственного. Этот БП состоит из одного действия: меняет в контакте ответственного на значение параметра.
Я планировал менять ответственного в контактах, при изменении в сделке. Т.к. к сделке уже прикреплена и Компания и Контакты компании
УдалитьТогда БП по сделке, но в остальном принцип тот же.
УдалитьЗдравствуйте. У меня вопрос такой. Можно ли в блоке итератора в активити Согласование отминусовать Автора документа?
ОтветитьУдалитьВсе пользователи записаны в переменную и в это переменной есть еще и автор. (из переменной его не удалить, так как пользователи берутся из поля где записаны подразделения)
И есть в блоке итератора активити согласования.
Согласуют все сотрудники которые были выявлены с помощью итераций.
НО! Согласует еще и Автор.
Добрый день! Фото не открываются (не видны совсем) ни в каком браслете: chrome, yandex, Mozilla. Замените, пожалуйста.
ОтветитьУдалитьДобрый день! А какой у Вас провайдер интернета? Через некоторые провайдеры есть такая проблема.
УдалитьЛюба, добрый день. Я правильно понимаю, что итератор может работать только с одним параметром, допустим перебрать названия товаров и вывести их в список. А чтобы получить к примеру еще и ID товаров, нужно делать еще один итератор. А как потом совместить ID товаров и их названия в одном месте, типа таблицы, не подскажете?
ОтветитьУдалитьДобрый день!)
УдалитьИтератор работает с одной множественной переменной. А какая у Вас задача, с каким полем/переменной работаете и что хотите получить в итоге?
Здравствуйте.
ОтветитьУдалитьМожете помочь решить задачу?
У нас есть скопированные сделки-Дочки.
Необходимо в карточке основной Сделке внести их Название, ID, стадию сделки-дочки в динамике.
Но в такой скопированной сделке необходимо добавить признак, по которому бизнес-процесс определит, что именно она скопированная.
Как добавить этот признак? нужно ввести переменную? делать через Итератор
и настроить цикл в процессе, чтобы найти нужную?
но у меня сейчас 5 направлений по сделкам.
Как задать переменную, чтобы она отделила именно скопированные-дочерние сделки?
может как-то попроще можно?
буду благодарна если поможете 😳
я так поняла что это на объем статьи катит?( может сможете помочь реализовать?
или может хотя бы объясните простым языком как добавть ID в карточки сделок?:
Для того чтобы была связь основной и дочерней сделки, необходимо записывать их ID.
Татьяна, здравствуйте)
УдалитьМожно более простой вариант сделать:
1. Добавить в сделках множественное пользовательское поле "Дочерние сделки" с типом "Привязка к элементам CRM", сущность Сделки. В основных сделках указывать все их дочерние сделки.
2. Добавить в сделках пользовательское поле "Дочерняя сделка" с типом Да/Нет. Для дочерних вручную устанавливать в Да. Если в сделке есть какой-то другой признак, что она является дочерней, например, она в каком-то отдельном направлении, то это поле можно не создавать.
3.Чтобы информация о каждой дочерней сделке была в виде "Название - ID - стадия" нужно написать бизнес-процесс с запуском на создание и изменение, который будет по признаку "Дочерняя сделка"=Да в Название сделки записывать строку "Название - ID - стадия". При этом в основной сделке всегда будет отображаться список ссылок на дочерние сделки с актуальными названиями, которые уже содержат всю необходимую инфу.
Добрый день, помогите решить задачу.
ОтветитьУдалитьНеобходимо получать значение из определенного поля,к примеру email, у всех сотрудников определенного отдела. С помощью итератора пытаюсь настроить но в итоге получаю значение типа "D30_все сотрудники отдела", можно как то из этого значения вытащить каждого сотрудника?
Добрый день!)
УдалитьПроверила на тестовом портале - у меня так же получается, как и у Вас. Если найду какое-то хорошее решение - напишу.
Отличная штука - итератор! Выше уже был совет по задаче, я хочу подтвердить.
ОтветитьУдалитьВ элементе бизнес процесса есть множественное поле с типом "Привязка к сотруднику". Предположим, его заполнили тремя сотрудниками. Далее возникает необходимость автоматически поставить одну и ту же задачу всем трем сотрудникам. Я указываю в поле "Ответственный" то самое множественное поле. Но задача ставится только одному, первому выбранному. Пробовал через множественную переменную - то же самое.
Взял итератор.
Сначала обязательно помещаем множественное поле, содержащее список сотрудников в множественную переменную (активити "Изменение переменных"). Затем ставим активити "Итератор", в нем выбираем нашу множественную переменную. Затем помещаем в цикл итератора задачу. В поле "Ответственный" выбираем из дополнительных результатов "Итератор - значение".
Все. Задача будет поставлена всем, кто содержался в множественном поле.
Спасибо!
Люба добрый вечер! подскажите как решить задачу в облачном Б24
ОтветитьУдалитьЕсть бизнес процесс, в нем есть множественное поле с типом строка (Например: Форма)
в этом поле указано три и более значений (Например: 1ая строчка - круг , 2ая строчка - овал, 3ая строчка - квадрат)
как получить через бизнес процессы в новое поле значение содержащиеся во второй или любой другой строчке?
пример с формой это только пример, в реальности будут каждых раз новые значения которые указывает пользователь
Получилось так сделать: первый БП (основной) https://prnt.sc/u7574z , в нем добавляем итератор на множественное поле. Итератор 1) создает элемент списка (БП вспомогательный создан для хранения полученных данных от итератора) в который передает ID родителя (БП основной), Полученное значение, Ключ значения (он же номер строки) и 2) запускает БП вспомогательный по созданному элементу списка (в параметре ID указываем значение из Дополнительные результаты https://prnt.sc/u759kn . во вспомогательном БП читаем элемент по ID родителя (основной БП) и уже по конструкции выполняем условие и добавляем необходимое значение в нужное для задачи поле, пример быстро накидал для теста https://prnt.sc/u75aub , а это условие на номер строки https://prnt.sc/u75ayu . Все получилось как было задумано)
УдалитьХорошо, что разобрались 👍
Удалитьстолкнулся с необходимостью выделить уникальные данные между массивами 1 и 2. Сделал это следующим образом (высылайте оптимизированную версию в ответ, если придумаете) https://a.radikal.ru/a04/2103/cf/df5bc050b49d.jpg
УдалитьЕсли будет аналогичная задача - выложу пример в блоге.
УдалитьЛюба, здравствуйте. Подскажите пожалуйста, как все значения итератора занести в 1 переменную если используется несколько списков? Или создать поле в сделке, в которое вносить все строки списков?
ОтветитьУдалитьАндрей, здравствуйте!
УдалитьЯ не поняла Ваш вопрос. Опишите, пожалуйста, подробнее: какую переменную обрабатывает итератор, что значит "используется несколько списков"?
Добрый день! Подскажите пожалуйста, как с помощью итератора возможно выбрать совпадение телефона в контактах или компаниях?
ОтветитьУдалитьДобрый день!
УдалитьЯ думаю, что тут без использования плагинов из маркета или программных доработок не получится.
Можно, при этом программирование БП Битрикс-занятие не для слабонервных.
УдалитьА работа с массивами организована через одно место.
Делаем так:
1) В итераторе каждый цикл увеличиваем переменную n на 1 и на выходе получаем число элементов.
2) Заводим переменные a,b,c,d,e и если n=1, то a=значение, если n=2, то b=значение.
3) на выходе сравниваем a<b?, a<c?, b<d? или любой удобный вам режим поплавка. Если одинаковые, удаляем значение.
До пяти еще можно, но большее количество номеров - уже ад с проклятиями студентов с бодуна, писавших ЭТО НЕЧТО.
Добрый день! Подскажите пожалуйста, как можно вывести множественную переменную в описание блока "Запрос дополнительной информации" списком, а не через запятую. Дело в том, что пользовательское поле содержит массив из адресов, и эти адреса требуется вывести списком, друг под другом.
ОтветитьУдалитьИли можно как-то по-другому возможно решить эту задачу
Добрый день!
УдалитьСоздайте переменную с типом "Текст" например "Список адресов". Запустите итератор по своей исходной множественной переменной и на каждой итерации нужно добавлять к переменной "Список адресов" значение итератора скрин. В запрос доп инфы выводите итоговое значение переменной "Список адресов".
Спасибище вам огромное!!!! Со вчера сижу с этим, а оказывается вот как надо :) Всего вам хорошего! Спасибо! И так ответили быстро!
Удалить👍
УдалитьЛюба, добрый день! Может и мне сможете помочь. В запросе доп. информации менеджер должен заполнять 3 поля для одного выезда инженера - район (тип "Список"), адрес (тип "Адрес Google карты") и количество замеров (тип "Число"). После этого автоматически создается сделка в в отдельной воронке с названием "Район, адрес, количество замеров". Выездов инженеров можете потребоваться от 1 до 50 по разным адресам, то есть максимум менеджеру нужно будет заполнить 150 полей. Возможно ли добавлять эти заветные три поля при необходимости, а не создавать отдельно 150 полей с похожими названиями? И как с помощью итератора можно будет запускать процедуру создания новой сделки с названием, соединенном из трех полей?
ОтветитьУдалитьДобрый день!) Хочу помочь, но не оч поняла задачу.
УдалитьА как менеджер получает запрос доп информации? Как-то в цикле настроено, чтобы 50 раз отправить этот запрос?
Добрый день.
ОтветитьУдалитьИспользую итератор для пробега по списку. Но в списке скоро буднт около 150 записей и постоянно вводят новые. Нужно постоянно добавлять новые записи по умолчанию. Как пробежать по всех элементах списка без указания значений по умолчанию(Нужно организовать цикл по списку и вытянуть ID каждого элемента). Спасибо
Добрый день!
УдалитьБез программирования вот этим плагином из Маркета https://kosas.ru/manuals/course1/contents/#LE69 можно получать элементы списка.
Здравствуйте. Мне необходимо отправлять уведомления пользователям которые не проголосовали. Никак не могу понять, как вычислить этих пользователей :(
ОтветитьУдалитьДобрый день!
УдалитьА как задаете пользователей в задании на утверждении? Это какая-то переменная или просто список сотрудников?
Здравствуйте. Переменная USERS.
УдалитьЯ бы попробовала сделать так:
УдалитьИспользовать параллельное выполнение, в одной ветке задание, а в другой пауза и после нее поиск тех, кто не проголосовал. Если такие есть, то отправить им уведомление. Как искать: в переменную, например, VOTED_USERS сохранить из дополнительных результатов тех, кто уже утвердил плюс тех, кто уже отклонил задание. Пройти итератором по переменной USERS и на каждой итерации запускать итератор по переменной VOTED_USERS. Внутри второго итератора проверять, совпадают ли значения. Если да, значит сотрудник проголосовал. Если нет, значит добавить его в переменную, где будут храниться не проголосовавшие.
Как то так)
Любовь, огромное вам спасибо! )
Удалить😀
УдалитьЗдравствуйте Любовь! Скажите пожалуйста решает ли итератор проблему перехода сделки из одной воронки в другу сразу в нужную стадию?
ОтветитьУдалитьАлексей, добрый день! Нет, для этой задачи нет необходимости использовать итератор.
УдалитьДоброго утра, Люба
ОтветитьУдалитьСейчас занимаюсь вопросом учета платежей, создал раздел Платежи, добавил четыре поля Сумма, Дата, Способ, Оплачено, в Оплачено каждый раз при сохранении прибавляется цифра из поля сумма, все платежи заносятся в Универсальный список, ИД сделки,Дата,Сумма,Способ,Пользователь. Возник вопрос внесения дублирующихся платежей, один сотрудник внес, потом другой, решил сделать проверку платежа, функции поиска в списке в БП не нашел, думаю можно итератором пройти по списку, не пойму как в переменную сохранить массив списка, подскажите или может есть другой способ поиска по спикам
Владимир, добрый день!
УдалитьШтатными средствами наверно не получится пройти по списку элементов. Можно это сделать приложениями из Маркета:
https://www.bitrix24.ru/apps/?app=itsolutionru.restactivity или https://www.bitrix24.ru/apps/?app=kosas.robots - есть активити для поиска элемента в списке.
Добрый день! можно ли с помощью итератора выводить зависимые списки значений? Например, в карточке лида создано поле категория товара и поле наименование товара. при выборе в категории товара значения двери во втором поле "наименование товара" выводить список дверей, а при выборе в категории товара окна выводить только иды окон?
ОтветитьУдалитьДобрый день!
УдалитьНет, так не получится.
Люба, добрый день! Новичок я в битриксе (облачный), пытаюсь разобраться как написать бизнес процесс на сделку. Суть такова: при создании сделки определенного направления необходимо просмотреть значение одного пользовательского поля у всех связанных со сделкой контактов и при наличии хотя бы у одного связанного контакта определенного значения поменять название сделки на указанное, если значение не найдено то изменить наименование на "Очередная работа". Создал бизнес процесс в сделках запускающийся на ожидание статуса сделки - далее условие (описал условие) - далее изменение документа в зависимости от условий. Работает только на первый связанный со сделкой контакт.... Возможно итератор решит мою проблему НО не знаю куда его втиснуть и как его написать! не дается он мне :(
ОтветитьУдалитьДобрый день!
УдалитьОчень похожий пример описывала в статье. Там в первом бизнес-процессе для сделки итератор проходит по всем связанным со сделкой контактам.
Т.е. моя задача так же будет состоять из двух последовательных бизнес-процессов с выбором в первом "данных crm"?
УдалитьНет, для вашей задачи достаточно одного бизнес-процесса в сделках. Итератором обойдете связанные контакты и для каждого контакта с помощью выбора данных CRM получите значение нужных полей. В статье второй бизнес-процесс нужен только для отправки смс-сообщения.
Удалитьон получает значения нужных полей здесь и сейчас при каждом цикле, НО не запоминает их. Правильно? так как же по итогам работы итератора произвести оценку наличия\отсутствия выбранного значения по условию и изменить наименование сделки? или все же хранит где-то значения для возможности последующей обработки!?
УдалитьИтератор после обхода множественной переменной данные больше не хранит.
УдалитьДля решения можно сделать так:
- создать переменную, например, "Значение найдено" с типом "Да/Нет", по умолчанию установите "Нет"
- в теле итератора на каждой итерации в Условии проверяете, нашли то, что искали или нет
- если нашли, то переменную "Значение найдено" устанавливаете в "Да"
- после завершения работы итератора проверяете в Условии переменную "Значение найдено"
- если "Значение найдено"="Да", то меняете название сделки
Да! Отлично! Работает! Спасибо!
Удалить😀
УдалитьЗдравствуйте. А можно ли сделать итератором всех пользователей и все подразделения?
ОтветитьУдалитьЕвгений, добрый день! Сталкивалась с такой задачей, но пока не знаю, как ее решить.
УдалитьДобрый вечер, помогите понять. При переходе на стадию забускаеться БП с двумя итераторами в параллельном выполнении, в результате создаются сделки в разных направлениях, проблема в том, что в в одном направление создаются сделки, в другом есть сообщения создавшихся сделок но на самом деле их нет, если создать отдельный БП и запустить в конце все ок, смущают что криво сделано.
ОтветитьУдалитьИрина, добрый день!
УдалитьА можете скинуть скрин схемы БП, где параллельно работают итераторы, чтобы было понятно, какие еще действия выполняются?
Люба, добрый день! https://prnt.sc/z3s5lt скрин БП
УдалитьДобрый день!
УдалитьПо схеме БП вроде бы всё корректно.
А в лог бизнес-процесса никакая ошибка не пишется у Вас?
Добрый день, Любовь.
ОтветитьУдалитьУ меня есть 2 множественные переменные (товар и количество)
Нужно их попарно объединить в поле документа в виде:
товар 1 - количество 1
товар 2 - количество 2 и т.д.
В каждом документе количество таких пар может быть разное.
Никак не могу разобраться как это сделать, кажется что нужно применить итератор, но не пойму как ((
Если сталкивались с подобной задачей или знаете как решить, подскажите, пожалуйста.
Добрый день!
УдалитьПопробуйте так:
- Создаете множественную переменную Итог
- Первый итератор запускается по переменной Товар
- Второй итератор запускается по переменной Количество внутри первого итератора
- Внутри второго итератора проверяете: если Ключ первого итератора равен Ключу второго итератора, то в переменную Итог добавляете строку "Значение первого итератора - Значение второго итератора".
- После всех итераторов В поле документа записать переменную Итог
Должно всё получиться)
Да, все работает!
УдалитьЛюбовь, огромное спасибо Вам за помощь и за статьи.
👍
УдалитьЗдравствуйте!
ОтветитьУдалитьСоздаю в БП документ по шаблону. Интересует, есть ли метод вывода в него значений множественной переменной в виде списка (как список товаров в счёте и т.п.)?
Увидел ответ на подобную задачу чуть выше, но так понял, что там данные предполагается выводить в документ простым текстом, каждую позицию просто с новой строки? А таблицей как-то можно?
УдалитьДобрый день!
УдалитьНе очень много в последнее время работаю с созданием документов из БП, поэтому не могу подсказать по этому вопросу.
Очень жаль... В целом-то вопрос лишь в том, возможно ли в метку шаблона, скажем, {ProductsProductName} передать множественную переменную из БП именно как массив значений, а не строку с их перечислениями... Если что-то припомните по этой теме, был бы благодарен... а то везде молчат... %))
УдалитьХорошо) напишу, если похожий пример будет в работе
УдалитьЛюба добрый день.
ОтветитьУдалитьПодскажите пожалуйста сталкивались с такой ситуацией...?
задача вывести переменную списком из переменной а не строкой
пытался в порядке бреда сделать так:
- Работаю с универсальным "списком 1". В этом списке есть привязка к универсальному "списку 2". соответственно в в с "списке 1" хранятся номера ID из "списка 2".
- организовал перебор этих ID в итераторе для получения буквенных значений из "списка2"
- для этого создал переменную 1 (привязка к элементам в виде списка) и внес туда поле из "списка 1". эту переменную поместил в итератор. на каждом витке итератора выбираю значение.
- отдельно в БП создал переменную 2 (множественный список) и на каждом витке итератора вношу туда текстовое значение.
как результат записывает только последнюю запись)))
может знаете как вставить после каждого значения перенос строки?
Добрый день!)
УдалитьЯ правильно поняла, что в итоге надо получить текстовые значения из списка2 в виде:
aaa
bbb
ccc
и тд
?
да, совершенно верно!
УдалитьА просто записывать их в строку перемежая BBCode типа [br] не получается?
УдалитьДобрый день!
УдалитьМожно попробовать с помощью переменной типа "Многострочный текст":
Создать переменную с типом "Многострочный текст" например "Буквенные значения из списка 2". В итераторе получаете очередное буквенное значение из списка 2 и добавляете его в переменную "Буквенное значение из списка 2"
пока не выходит... но уверен, что выход где-то есть)
Удалитьбуду признателен за уделенное время!
ОтветитьУдалитьЗдравствуйте!
ОтветитьУдалитьПрошу помочь разобраться. Есть множественная переменная типа "Строка", которая содержит значения "Наталья" и "Чекалова". Как с помощью итератора можно записать первое значение в поле документа "Имя", а второе в поле документа "Фамилия"?
Добрый день!
УдалитьИтератор возвращает в дополнительные результаты Ключ и Значение. Ключ - это просто порядковый номер итерации, начиная с 0. В теле итератора можно сохранять Ключ в доп переменную и проверить: если она равна 0, то записать Значение в поле Имя, если равна 1 - записать в Фамилия.
добрый день вы уточнили что «сумма платежей» должна быть как тип «число». Можете подсказать какой тип использовать для всех других переменных и полей.
ОтветитьУдалитьДобрый день! Все поля с типом Число в моем примере.
УдалитьЛюба, добрый день.
ОтветитьУдалитьЕсть множественное поле Сделки типа "Привязка к элементам CRM". Там хранятся дочерние Сделки.
Нужно, имея ID дочки, удалить эту дочку из значений.
Вроде бы простая история, а я голову сломал...
Можете помочь?
Сергей, добрый день!
УдалитьМожно создать 2 множественные переменные с типом Привязка к элементам CRM:
1. В первую записать значение поля, в котором хранятся дочерние сделки
2. Во вторую будем сохранять дочерние сделки, которые нужно оставить.
Потом пройти итератором по первой переменной. В итераторе проверять, если это НЕ идентификатор дочерней сделки, которую надо удалить, то текущее значение итератора во вторую переменную записываем.
После завершения работы итератора пересохранить в поле сделки то, что во второй переменной.
Ох, спасибо вам огромное!
УдалитьВек живи – век учись. 💖
Небольшой оффтоп: Есть необходимость в шаблоне документа выводить число (а можно и строку) с неким форматированием, скажем, с пробелами между разрядами, т.е. вместо "123456" выводить "123 456". Это возможно?
ОтветитьУдалитьДобрый день!
УдалитьДля шаблона документа не видела такого модификатора данных. Можно попробовать в бизнес-процессе в копии поля разделять разряды. Например, функцией numberformat.
Здравствуйте, а можно написать вам по поводу БП на почту?
ОтветитьУдалитьЗдравствуйте. Да, моя почта luba.tinaeva@bitrix24.ru
УдалитьДобрый день! Подскажите пожалуйста. Наверняка вопрос элементарный, но не для меня. Как настроить БП чтобы автоматически или при изменении он заменял один знак (или символ) на другой в выбранных полях сделки? Грубо говоря: менеджеры ставят запятую или "/" там, где должна быть точка и все ломается
ОтветитьУдалитьДобрый день!)
УдалитьМожно попробовать так, поменять пользовательское поле, например, {{Адрес}}:
1. с помощью функции explode разделить значение поля по тому символу, который нужно заменить. Например, по "/": {{=explode("/",{{Адрес}})}}.
2. соединить то, что получили в п.1 по тому символу, на который нужно заменить. Например, {{=implode(".",{{значение_из_п.1}})}}
3. записать то, что получилось в п.2 в исходное поле сделки
Спасибо, будем пробовать!
УдалитьПодскажите, а нельзя как-то использовать функцию str_replace ? Так не будет проще?
Добрый день!
ОтветитьУдалитьПодскажите, пожалуйста, есть ли возможность заполненные поля из бизнес-процесса автоматически подставить в поля СРМ-формы?
Наталья, добрый день!
УдалитьОпишите подробнее задачу, не поняла какие поля заполняются из бизнес-процесса.
Добрый день!
УдалитьНапример, сотрудник запускает БП из живой ленты и указывает значение требуемых полей при добавлении (название обучения, дата начала и конца обучения и т.п.), а также указывает ссылку на СРМ-форму. Нужно, чтобы сотрудник, перейдя по этой ссылке имел в СРМ-форме ряд автоматически заполненных полей, которые до этого были заполнены сотруником при запуске БП (название обучения, дата начала и конца обучения и т.п.).
Добрый день!
УдалитьМожно на основе заполненных данных создавать сделку, например, в какой-то отдельной воронке. А потом для этой сделки использовать CRM-форму с заполненными по умолчанию полями. То есть я думаю, что надо идти от сделки в данном случае.
Добрый день!
УдалитьТо есть получается после запуска БП создается сделка. А срм-форму тоже из сделки запускаем?Как тогда связать поля срм-формы и сделки?
Добрый день!)
УдалитьПосмотрите описание персонализированных CRM-форм. В бизнес-процессах в форме Вставка значений доступна ссылка на форму, при заполнении которой данные автоматом поступят в сделку.
Добрый день. Не подскажите на ко множественной переменной добавить в конец ОДНО значение?
ОтветитьУдалитьЧерез функцию merge?
Удалить= merge({=массив_1}, {=массив_2});
Люба, можно вопросик не про итератор? 🙄
УдалитьКак в коробке задать паузу в БП длиной 1-2 секунды?
Задаю 1 секунду, пауза длится не менее 30 секунд 🥴
В настройках модуля поставил минималку — 1 сек.
Сергей, здравствуйте)
УдалитьНе подскажу - с такой задачей не сталкивалась.
Уже пообщались с ТП Б24. Совместно пришли в неутешительному выводу: штатного механизма для вставки в БП короткой (1-2секунды) паузы, нет.
УдалитьДобрый день помогите пожалуйста советом, есть строка с множественными значениями
ОтветитьУдалитьв в описании задания бизнес процесса нужно вывести значения этой строки списком, как это можно сделать?
Сейчас в описании задания стоит:
{{Список дистрибьюторов региона (system)}}
И вывод выглядит так:
ООО «Лидер» / г. Москва и Московская обл., ООО Интереттехнологии / г. Москва и Московская обл., ООО «Триал Маркет» / г. Москва и Московская обл., ПТГ «МИСТЕРИЯ» / г. Москва и Московская обл., ГК «ОптиКом» / г. Москва и Московская обл., ООО «U2B» / г. Москва и Московская обл., ООО «Чебоко» / г. Москва и Московская обл., ООО «Деловая Русь» / г. Москва и Московская обл., ГК «Гудвин» / г. Москва и Московская обл., ООО «Сапплз» / г. Москва и Московская обл.
А очень хочется его вывести следующим образом:
ООО «Лидер» / г. Москва и Московская обл.
ООО Интереттехнологии / г. Москва и Московская обл
ООО «Триал Маркет» / г. Москва и Московская обл.
чтобы каждое значение с новой строки было
Это возможно?
Добрый день)
УдалитьНадо создать переменную с типом Многострочный текст. Потом исходную строку надо поместить в итератор и на каждой итерации к новой созданной переменной добавлять значение итератора с переходом на новую строку. Полученную переменную уже использовать в задачах/заданиях.
Спасибо большое! Вы мне очень помогли)
УдалитьДобрый день! у меня большая просьба подсказать! Есть БП который запускается каждый день и проверяет какои сеичас день, в результате создает сделку для доставки, доставку определяет по региону и дню недели. Сделку создает если доставка завтра. Итератором считывает дни недели со списка https://prnt.sc/1hnfz2g, https://prnt.sc/1hni02v, затем эти дни переносим в переменную дни доставки https://prnt.sc/1hnigiy и другие переменные https://prnt.sc/1ho1kcl. И тогда идет проверка итератором https://prnt.sc/1ho2qvw, https://prnt.sc/1ho2x0k, https://prnt.sc/1ho34tf, В зависимости от региона осуществляется доставка в эти дни. проблема в том что одну неделю работает так как надо, а следующую неделю сделки создаются неправильно, потом снова правильно и незнаю в чем проблема. троха запутано надеюсь поможете https://prnt.sc/1ho889c
ОтветитьУдалитьИрина, добрый день!
УдалитьК сожалению, сейчас по времени нет возможности изучить задачу.
Здравствуйте, с бизнес-процессами сталкиваюсь впервые. Нужно настроить так, чтобы при переходе лида в статус сделки, клиенту отправлялось сообщение в Whatsapp через Wazzup и если у клиента нет Whatsapp отправлять sms сообщение. С чего начать мне нужно? может есть статьи на эту тему почитать? Пока что нет понимания как правильно прописать переменные и т.д. Каким должен быть алгоритм понимаю, но как это выполнить?
ОтветитьУдалитьДобрый день!)
УдалитьНу тут надо наверно с документации по бизнес-процессам начать: когда запускаются и т.д)
Можно создать бизнес-процесс на создание сделки, в нем делать отправку. Но я точно не скажу, можно ли с помощью активити для отправки сообщения в Wazzup узнать статус отправки: есть у клиента Whatsapp или нет. Если как-то узнать можно, то проверить этот статус и доотправить смс.
добрый день! Вы можете подсказать как можно в поле Ответственный вставить значение с списка, но чтобы он пеменял на того кто был выбран в списке
ОтветитьУдалитьДобрый день!
УдалитьА в каком виде хранятся значения в списке: ФИО, ID сотрудников?
День добрый!
ОтветитьУдалитьПожалуйста, подскажите как сотрудников отдела поместить в множественную переменную (какого типа?), чтобы использовать её в итераторе ?
Михаил, добрый день!
УдалитьЯ пробовала поместить в множественную переменную с типом Пользователь/Привязка_к_сотруднику, но в итоге с ней работать через итератор не получилось.
Спасибо. И техподдержка подтвердила, что не получится.
УдалитьДобрый день! Можно ли итератором выполнить операции со множеством значений одного пользовательского поля в разных сделках. Допустим у меня есть значение которое представляет собой лимит полученных средств и привязывается к одной сущности компании исполнителю #1. И есть множество сделок c компаниями заказчиками #2..10, сделки которых по полю сумма составляют объема установленного лимита для компании #1. Возможно ли в БП сделать обход всех сделок по фильтру и сложением значений полей сумм сделок проверить превышен ли лимит или нет перед созданием новой сделки?
ОтветитьУдалитьИван, добрый день!)
УдалитьКак я поняла, создается новая сделка, в ней указывается компания-исполнитель, и нужно при создании проверить, на какую сумму в данный момент существует сделок, у которых указана та же компания-исполнитель.
Если так, то для облака я не знаю, как решить задачу без Маркета или доработок. Если есть подписка на Маркет, то можно получить список id сделок плагинами, например, Лаборатория роботов или REST Активити Б24.
Здравствуйте!
ОтветитьУдалитьЛюба, не сталкивались вы с задачей -
из множественной переменной исключить текущее значение итератора?
Александр, добрый день!)
УдалитьНе совсем поняла.
Например, есть множественная переменная с значениями 100, 200, 300, 400 и есть еще одна множественная переменная с значениями 300, 400, 500, 600, по которой запущен итератор. Нужно, чтобы в первой переменной остались значения 100, 200?
Любовь, добрый день!
УдалитьДа примерно так.
Опишу прототип БП более детально.
Есть номера заявок 1,2,3 (по сути это элементы списка стороннего)
Итератор проходит по этим элементам (внутри итератора можно размещать такие блоки как чтение элемента списка и блок насыщаться сведениями) и спрашивает у Ответственного работа выполнена? Да, Нет.
Далее хотелось бы в ветке ДА текущее значение которое итератор обрабатывает в текущий момент времени, например 1 исключать из множественной переменной.
В свою очередь в ветке НЕТ оставлять значения 2 и 3 если ответственный по ним нажал НЕТ.
Забыл добавить - мы поместили итератор в цикл, после итератора в цикле 1 час паузу. через час итератор запускается по оставшимся элементам 2,3 и спрашивает ответственного ДА или НЕТ.
Цикл молотит до тех пор пока по элементам 1,2,3 не будет ДА
Все бы хорошо, но пока я не понял как текущее значение из итератора исключить из множественной переменной.
ТП битрикса ответила что в разработке, даже функции новые появились:
firstvalue Возвращает первое значение множественного поля.
Но удалить то как)))
На самом деле кейс мне показался очень привлекательным. В сочетании с приложением задания в карточках ЦРМ можно очень интересные обработки делать при чем удобные для пользователя.
п.с. сам по себе итератор !БОМБА! благодаря ему мы перебираем элементы списков, а по их ID вынимаем все остальное. не городя при этом кучу веток различных условий)
Александр, здравствуйте!)
УдалитьТеперь поняла. Я несколько похожих примеров по работе с итератором хотела описать в отдельной статье.
Можно попробовать так:
1. Создать дополнительную множественную переменную с тем же типом данных, что и исходная (где хранятся номера заявок).
2. Итератор идет по исходной переменной.
3. Если для текущего значения итератора Ответственный выбирает Да, то это значение НЕ добавляется в новую множественную переменную. Если НЕТ, то добавляется.
4. После того, как итератор отработает значение исходной переменной заменить на значение доп переменной, доп переменную обнулить.
Любовь, добрый день!
УдалитьВ новую множественную переменную значения перезаписываются а не дополняются
https://yadi.sk/i/KGFv5Q9Ay83EtQ
вот такая конструкция
https://yadi.sk/i/t0-zxyPwxSPg3Q
Видимо нужно сначала писать в техническое поле документа Оставшееся приборы действием Изменение документа с параметром Дополнить множественные поля вместо перезаписи=Да, а уже потом писать из поля документа в переменную. И потом очищать поле документа....
Александр, каким оператором пытаетесь добавить оставшиеся?
Удалитьmerge пробовали?
Не merge не пробовал
УдалитьСейчас так
https://yadi.sk/i/73G99iIiDiPwPQ
С другой стороны как merge поможет?
= merge({=значение итератора}, {=значение итератора}) так? а если значений не два а 5... или 10
Пробую сейчас через поле документа
Люба, вопрос. Не знаю в тему или нет. Но может быть интересно многим.
УдалитьЕсли в итератор засунуть действие
Запуск бизнес-процесса для указанного документа (при этом в обрабатываемой переменной сидит ID элемента универсального списка)
И поставить флаг Ожидать завершения бизнес-процесса....
БП будет ждать завершения запущенных БП по каждому элементу?
Александр, добрый день!)
УдалитьИтератор остановится на время выполнения БП для документа и только после завершения выполнения БП перейдет к следующей итерации.
Добрый день! Подскажите пожалуйста как нужно настроить Бизнес процесс чтобы при смене ответственного в сделке также менялся ответственный в контакте?
ОтветитьУдалитьДобрый день!)
УдалитьМожно настроить процесс на изменение сделки и в нем добавить активити Изменение контакта.
Перед этим действием можно дополнительно с помощью активти Выбор данных CRM получить текущее значение Ответственного в связанном контакте и, если ответственные в сделке и в контакте разные, то сделать изменение контакта.
Спасибо большое получилось! Теперь подскажите как сделать чтобы запускался Бизнес процесс при изменении поля ответственного в сделке?
УдалитьВ параметрах БП ставите запускать при изменении а внутри бп пишите условия... или роботом.... роботы ИЗМЕНЕНИЕ ПОЛЕЙ вроде чувствуют... но почему то я их не оч люблю))) в дизайнере как то наглядней все
УдалитьАлександр, можете расписать какие условия я должен расписать? Роботом это не получится сделать
УдалитьТинаева Люба, не могли бы вы мне помочь по вопросу выше
УдалитьАсет, добрый день!)
УдалитьБизнес-процесс не получится настроить на изменение какого-то конкретного поля. Можно, как выше написал Александр, в параметрах процесса поставить запуск на любое изменение сделки, а в самом бизнес-процессе прописать условие изменения.
Отследить изменение именно Ответственного можно так:
1. Создать в сделке пользовательское поле "Ответственный (служебное)" с типом "Пользователь".
2. При запуске бизнес-процесса проверять: если "Ответственный" Равно "Ответственный (служебное)", то ничего не делать в этой ветке. Если НЕ равно, то считаем, что ответственный изменился и нужно выполнить то, что у вас по ТЗ (изменить ответственного в контакте). После этого в поле "Ответственный (служебное)" записать значение из поля "Ответственный".
Но, если у вас задача просто чтобы Ответственный в контакте всегда был равен Ответственному в сделке, то я бы не стала отслеживать изменение Ответственного в сделке. Просто проверила бы при запуске процесса: если Ответственный в контакте не равен ответственному в сделке, то поменять ответственного в контакте.
Люба, здравствуйте!
ОтветитьУдалитьЯ в Битриксе новичок, подскажите пожалуйста, как настроить бизнес процесс. Задача следующая: есть Смарт процесс, привязанный к сделке, в котором указываются адреса и виды работ (из каталога товаров) по каждому адресу. Нужно, чтобы при привязке Элементов смарт-процесса к сделке, в неё добавлялись товары из смарт-процесса.
Делаю так: БП создаю в сделке, создал множественную переменную, далее через активити "Чтение элемента смарт-процесса" получаю информацию по разделу Товары, после этого меняю переменную - указываю поле из Дополнительно "Товары". Потом в итераторе создаю элемент "добавить товарную позицию" со значением итератора, но товар не добавляется, что я делаю не так?
УдалитьЕвгений, добрый день!
УдалитьПока нет возможности проверить. Напишу, как проверю.
Люба, очень добрый день!
ОтветитьУдалитьПодскажите, как решить такую задачу. Нужно переводить по 10 сделок на следующую стадию с паузой 5 минут, пока все сделки не уйдут с первой стадии, и второй вопрос сразу, почему после рассылки e-mail (по сегментам) не срабатывает триггер на отправку письма? Извините, что вопрос не в тему.
небольшое уточнение, почему после рассылки e-mail (по сегментам) не срабатывает триггер перехода на стадию "письмо отправлено", то есть я запускаю e-mail рассылку, письма отправляются, но сделки не двигаются с места.
УдалитьНаташа, добрый день!
УдалитьА рассылке не подскажу - нет возможности протестировать.
Насчет перевода сделок.
Это нужно однократно сделать для существующих сделок, находящихся в первой стадии? Или постоянно поступает большое количество сделок на первую стадию, и с ними непрерывно нужно проводить эту операцию?
Добрый день, однократно.
УдалитьМожно сделать так:
Удалить1. создать процесс в ленте. Он будет служебным, и в нем будет достаточно создать 1 элемент
2. для этого процесса настраиваем бизнес-процесс. БП получает сделки с помощью стороннего приложения, например, этого или этого. Тут точно не знаю, можно ли выбрать этими приложениями 10 сделок или только все сразу, надо тестировать. Если только все сразу, то на следующем этапе можно ограничиться 10 сделками
3. полученные id сделок помещаем в итератор, в итераторе каждой сделке меняем стадию
4. ставим паузу на 5 минут
5. все пункты 2, 3, 4 помещаем в цикл и повторяем до тех пор, пока сделки не закончатся
Добрый день
ОтветитьУдалитьУ меня проблема. Нужно запустить бизнес процесс сразу по всем элементам списка, вручную это долго. Пытаюсь сделать это с помощью Итератора, но почему-то не срабатывает. Создаю переменную список, загружаю в нее id элеменов списка. В Итераторе выбираю эту переменную. И в цикле создаю активити Запуск бизнес-процесса. Но почему-то этот процесс не отрабатывает. Помогите с настройками может что не так делаю. в Активити выбираю ID документа - результат итератора, Сущность список, тип документа Сам спискок, шаблон - Шаблон нужного процесса.
т.е. отрабатывает по элементу со значением ID по умолчанию
Удалитьвопрос закрыт. нашел ошибку
Удалить👍
УдалитьДобрый день!
ОтветитьУдалитьПодскажите пожалуйста, в какую сторону "копать" :)
Есть такая задача.
1. Есть материнская сделка с множественным полем тип - привязка к сущности СRM сделка, в котором записываются дочерние сделки на определенном этапе, с определенной суммой по каждой сделке, которые суммируются в отдельном поле "Общая сумма дочерних сделок".
2. Когда дочерняя сделка завершается, то ее необходимо убрать в материнской сделке из общего списка сделок и вычесть сумму сделки из "Суммы дочерних сделок"
Вопрос по п.2.
Каким образом это можно реализовать через итератор ?
Определить по ID сделки есть ли она в общем перечне и потом ее убрать из общего списка в материнской сделке?
Люба мне выше отвечала на такой же вопрос 🤗
Удалитьhttps://luba-tinaeva-b24.blogspot.com/2018/04/blog-post.html?showComment=1617979728644&m=1#c4018197145170425246
Ага, т.е. грубо говоря перебираем итератором значения сделок в поле со сделками дочерними и перезависываем их в новое поле, если попадается нужна сделка, то ее не перезаписываем. :) . Сергей, спасибо вам и Любе, само собой ! :) Пойду пробовать.
УдалитьДа, всё верно!
УдалитьСергей спасибо!)
И еще вопрос, есть что-то наподобие функции merge ( она добавляет значения в массив) , а функция противоположного формата чтобы удалять значение из множественного массива?
ОтветитьУдалитьДобрый день!
УдалитьНет, такой функции нет. Как вы писали выше - нужно перезаписать значения массива в доп поле/переменную, исключив ненужные.
Люба, добрый день! Большое спасибо за ответ! И еще, подскажите , а можно из сделки подобным образом ( через итератор) информацию по товарам получить ? К примеру, у нас есть сделка с 10 товарами и мне нужно выбрать все ID товаров итератором.
УдалитьДобрый день!
УдалитьВ списке доступных функций такой не вижу.
Большое спасибо за помощь! :)
ОтветитьУдалитьЛюбовь, здравствуйте!
ОтветитьУдалитьПодскажите, пожалуйста, а можно ли в БП на облаке решить задачу поиска конкретного значения в универсальном списке.
Список состоит из двух полей:
1) Менеджер по категории - привязка к сотруднику
2) Категория товара - строка
В сделке есть поля "категория", которое привязано к этому списку. Нужно по этому названию как-то найти менеджера по этой категории товара, чтобы отправить ему сообщение. Бьюсь уже более месяца...
Спасибо!