На практике часто бывает нужно работать с массивом, каждый элемент которого содержит структуру. При этом было бы хорошо иметь несколько универсальных функций, которые могли бы решать следующие задачи:
1) Поиск элемента массива структур по одному значению;
2) Поиск элемента массива структур по двум значениям;
3) Поиск минимального и максимального значения в массиве структур.


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

Исходные данные:
1. Учебная конфигурация;
2. Платформа 8.3.19.1150.
Решение задачи "Поиск элемента массива структур по одному значению":

Пояснение:
В цикле обходим каждый элемент массива структур:

Во вложенном цикле обходим структуру, где "Ключ" это наименование столбца в запросе, а "Значение" его значение:


Далее проверяем, если "Ключ" равен ключу, который мы ищем, и значение равно значению, которое мы ищем, фиксирует результат и прерываем цикл.
В результате получаем:

Решение задачи "Поиск элемента массива структур по двум значениям":

Пояснение:
В цикле обходим каждый элемент массива структур.
Если второй ключ для поиска не указан, обходим структуру текущего элемента массива и проверяем, есть ли в ней нужное значение.
Если второй ключ для поиска указан, в переменные "ЗначениеСтруктуры" и "ЗначениеСтруктуры2" помещаем соответствующие значения искомых ключей и сравниваем их с искомыми значениями:



В результате получаем:

Решение задачи "Поиск минимального и максимального значения в массиве структур":

Пояснение:
В цикле обходим элементы массива. Во вложенном цикле обходим структуру и сравниваем минимальное значение со значением в текущей итерации.
В результате получаем:

Аналогичным образом ищем максимальное значение:

В результате получаем:

