Изменение нескольких записей в разделе с помощью БП исходя из полей детали другого раздела

Здравствуйте,
на карточке “группы” есть поле “гид” и деталь “контакты группы”. Необходимо при изменении поля “гид” пройтись по всем контактам в детали и используя значение поля “сделка” из каждого контакта, изменить поле “гид” для всех соответсвующих сделок этих контактов в разделе “сделки”.
Реализовали данную задача с помощью БП, но меняется только одна запись, подскажите пожалуйста, как можно читать всю выборку записей из детали и для множества соответствующих записей в другом разделе менять поле.

Нравится

4 комментария

Здравствуйте!

Судя по описанию необходимо работать одновременно с коллекцией данных, а не первой выбранной записью.
Пока с коллекцией может работать только элемент "Добавить данные" в режиме выборки.
Для решения вашей задачи можно использовать [Задание-сценарий], написать в нем интересующий запрос.
Или создать циклический процесс, который будет обрабатывать 1 контакт за 1 итерацию в цикле.

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

int count = Get<int>("count");
int count2 = count - 1;
Set<int>("count", count2);
return true;

но изменение срабатывает несколько раз для одной и той же записи, не подскажите, пожалуйста, как в цикле перебрать все контакты?

Здравствуйте!

Алгоритм следующий:
А. Добавить в объект Контакты служебное поле с типом Логическое, например ForCycle.
Б. Первый процесс запускается по нужному событию и устанавливает для всех контактов ForCycle = true.
В. Второй процесс циклический:
1) читать кол-во контактов, у которых ForCycle = true
2) поток по умолчанию ведет к завершению процесса
3) условный поток: [Читать кол-во записей] > 0 - ведет к элементу Читать первый контакт, где ForCycle = true. На этом этапе мы получим Id первого интересующего контакта - > обрабатываем контакт - > устанавливаем ForCycle = false -> в конце поток перехода ведет к Пункт 1

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

Спасибо, получилось.

Показать все комментарии