Вопрос

Обход коллекции по сигналу в бизнес процессе

Здравствуйте, выполняю вот такое задание:

Реализовать следующую логику: 
при добавлении новой записи 
«Задолженности» должна производиться выборка всех договоров данного должника, 
суммирование значений полей «Общая сумма задолженности», 
«Основной долг», «Штрафы», 
«Проценты и комиссии» данных записей объекта 
«Договоры» и запись в соответствующие поля текущей записи объекта «Задолженности». 
Реализуется с помощью бизнес процесса, который запускается по событию «Добавление записи» текущего объекта

И не понимаю как мне в формуле обойти все договоры в цикле и суммировать значения полей?

 

У меня такой же вопрос

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

Добрый день!
Данные из коллекции нужно считывать так:
var entities = Get<ICompositeObjectList<ICompositeObject>>("ReadDataUserTask1.ResultCompositeObjectList");
Т.е. в вашем случае код будет таким:

var entities = Get<ICompositeObjectList<ICompositeObject>>("ReadDataUserTask1.ResultCompositeObjectList");
 
var result = 0;
 
foreach(var entity in entities) 
{
    	var sum = 0d;
    	if (entity.TryGetValue<double>("Sum", out sum))
    	{
    		result += sum;  
    	}
}

 

Сидоров Александр В.,

Т.е. мне надо использовать задание-сценарий? А как потом из него получить это значение для записи? Или мне все в одном сценарии можно выполнить?

Можно использовать не скрипт, а блоки чтения и изменения данных.

Действительно, как подсказал выше Александр  используя в элементе чтения данных параметр [СЧИТАТЬ ФУНКЦИЮ] = Сумма, а потом элемент Измtнить данные позволяет избежать кодирования :)

Войдите или зарегистрируйтесь, чтобы комментировать