Перейти к основному содержимому

Обходимое

Стд::Обходимое<ТипЭлемента>

ТипЭлемента: тип обходимых элементов.

Объект предоставляет возможность обхода своих элементов в цикле для из. Возможность повторного обхода не гарантируется.

Сравнение

Ссылочное

Иерархия типа

Базовые типы: Объект

Дочерние типы: ЧитаемаяКоллекция, ЧитаемоеСоответствие


Методы

ВМассив

ВМассив(): Массив<ТипЭлемента>
Преобразует Обходимое в Массив.


ВСоответствие

ВСоответствие<ТипКлюча, ТипЗначения>(
ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча,
ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения
): Соответствие<ТипКлюча, ТипЗначения>
ТипКлюча: тип вычисляемого ключа.
ТипЗначения: тип вычисляемого значения.

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Преобразует Обходимое в Соответствие, используя заданные функции для вычисления ключа и значения. При повторяющихся ключах, в соответствии останется только последний элемент обходимого с таким ключом.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя"}, {Ид: 5, Имя: "Вася"}]

знч ИдИмя = Сотрудники.ВСоответствие(Элемент -> Элемент.Ид, Элемент -> Элемент.Имя) // Соответствие<Число, Строка>
// { 13 : "Петя",
// 5 : "Вася"}

См. также

ГруппироватьПо


ВСоответствиеСКлючами

ВСоответствиеСКлючами<ТипКлюча>(ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча): Соответствие<ТипКлюча, ТипЭлемента>
ТипКлюча: тип вычисляемого ключа.

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Преобразует Обходимое в Соответствие, используя заданную функцию для вычисления ключа и элемент обходимого в качестве значения. При повторяющихся ключах, в соответствии останется только последний элемент обходимого с таким ключом.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя", Возраст: 24},
// {Ид: 5, Имя: "Вася", Возраст: 30}]

знч СотрудникПоИд = Сотрудники.ВСоответствиеСКлючами(Элемент -> Элемент.Ид) // Соответствие<Число, Сотрудник>
// {13 : {Ид: 13, Имя: "Петя", Возраст: 24},
// 5 : {Ид: 5, Имя: "Вася", Возраст: 30}}

См. также

ГруппироватьПо


ВСоответствиеСоЗначениями

ВСоответствиеСоЗначениями<ТипЗначения>(ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения): Соответствие<ТипЭлемента, ТипЗначения>
ТипЗначения: тип вычисляемого значения.

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Преобразует Обходимое в Соответствие, используя заданную функцию для вычисления значения и элемент обходимого в качестве ключа. При повторяющихся ключах, в соответствии останется только последний элемент обходимого с таким ключом.

Примеры

знч Идентификаторы: Массив<Число> = [13, 5]

знч СотрудникПоИд = Идентификаторы.ВСоответствиеСоЗначениями(Ид -> ПолучитьСотрудникаПоИд(Ид)) // Соответствие<Число, Сотрудник>
// {13 : {Ид: 13, Имя: "Петя", Возраст: 24},
// 5 : {Ид: 5, Имя: "Вася", Возраст: 30}}

См. также

ГруппироватьПо


ВоМножество

ВоМножество(): Множество<ТипЭлемента>
Преобразует Обходимое во Множество.

Примеры

знч Числа = [1, 3, 5, 10, 12, 1, 3, 5]
знч МножествоЧисел = Числа.ВоМножество() // {1, 3, 5, 10, 12}

ВсеСоответствуют

ВсеСоответствуют(Предикат: (ТипЭлемента)->Булево): Булево

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Возвращает Истина, если все элементы удовлетворяют условию в предикате. На сервере это операция сокращенного вычисления. Это значит, что вызванные ранее в цепочке вызовов операции, могут быть вызваны не для каждого элемента.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя", Отдел: "Администрация"},
// {Ид: 5, Имя: "Вася", Отдел: "Администрация"},
// {Ид: 6, Имя: "Иван", Отдел: "Разработка"}]

Сотрудники.ВсеСоответствуют(Элемент -> Элемент.Отдел == "Разработка") // Ложь

// пример сокращенного вычисления
знч Числа = [1, 2, 3, 4, 5]
знч КвадратыЧисел = <Число>[]
знч ВсеЧетные = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).ВсеСоответствуют(а -> а % 2 == 0) // Ложь
// КвадратыЧисел = [1]

ГруппироватьПо

ГруппироватьПо<ТипКлюча>(ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча): Соответствие<ТипКлюча, Массив<ТипЭлемента>>
ТипКлюча: тип вычисляемого ключа.

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Группирует элементы в соответствии с заданной функцией вычисления ключа. Элементы с одинаковым ключом объединяются в Массив.

ИзвлекательКлюча - функция, применяющаяся к каждому элементу, возвращающая характеристику, по которой будут группироваться элементы.

Перегрузка
ГруппироватьПо<ТипКлюча, ТипЗначения>(ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча, ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения): Соответствие<ТипКлюча, Массив<ТипЗначения>>
ГруппироватьПо<ТипКлюча, ТипЗначения, ТипКоллекции>(ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча, ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения, КонструкторКоллекции: ()->ТипКоллекции): Соответствие<ТипКлюча, ТипКоллекции>

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя", Отдел: Администрация},
// {Ид: 5, Имя: "Вася", Отдел: Администрация},
// {Ид: 6, Имя: "Иван", Отдел: "Разработка"}]

знч ОтделыИСотрудники: Соответствие<Строка, Массив<Сотрудник>> = Сотрудники.ГруппироватьПо(Элемент -> Элемент.Отдел)
// {
// Администрация: [{Ид: 13, Имя: "Петя", Отдел: Администрация},
// {Ид: 5, Имя: "Вася", Отдел: Администрация}],
// "Разработка": [{Ид: 6, Имя: "Иван", Отдел: "Разработка"}]
// }

ГруппироватьПо

Версия 8.0 и выше

ГруппироватьПо<ТипКлюча, ТипЗначения>(
ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча,
ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения
): Соответствие<ТипКлюча, Массив<ТипЗначения>>
ТипКлюча: тип ключа.
ТипЗначения: тип значения.

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Группирует элементы в соответствии с заданной функцией вычисления ключа. Для элементов с одинаковым ключом вычисляются значения и объединяются в Массив.

ИзвлекательКлюча - функция, применяющаяся к каждому элементу, возвращающая характеристику, по которой будут группироваться элементы. ИзвлекательЗначения - функция, применяющаяся к каждому элементу, возвращающая значение, которое будет записано в массив.

Перегрузка
ГруппироватьПо<ТипКлюча>(ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча): Соответствие<ТипКлюча, Массив<ТипЭлемента>>
ГруппироватьПо<ТипКлюча, ТипЗначения, ТипКоллекции>(ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча, ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения, КонструкторКоллекции: ()->ТипКоллекции): Соответствие<ТипКлюча, ТипКоллекции>

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя", Отдел: "Администрация"},
// {Ид: 5, Имя: "Вася", Отдел: "Администрация"},
// {Ид: 6, Имя: "Иван", Отдел: "Разработка"}]

знч ОтделыИСотрудники: Соответствие<Строка, Массив<Строка>> = Сотрудники.ГруппироватьПо(Элемент -> Элемент.Отдел, Элемент -> Элемент.Имя)
// {
// Администрация: ["Петя", "Вася"],
// "Разработка": ["Иван"]
// }

ГруппироватьПо

Версия 8.0 и выше

ГруппироватьПо<ТипКлюча, ТипЗначения, ТипКоллекции>(
ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча,
ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения,
КонструкторКоллекции: ()->ТипКоллекции
): Соответствие<ТипКлюча, ТипКоллекции>
ТипКлюча: тип ключа.
ТипЗначения: тип значения.
ТипКоллекции: тип коллекции. Ограничения параметра типа: Стд::Коллекции::Коллекция<ТипЗначения>.

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Группирует элементы в соответствии с заданной функцией вычисления ключа. Для элементов с одинаковым ключом вычисляются значения и объединяются в Коллекцию.

ИзвлекательКлюча - функция, применяющаяся к каждому элементу, возвращающая характеристику, по которой будут группироваться элементы. ИзвлекательЗначения - функция, применяющаяся к каждому элементу, возвращающая значение, которое будет записано в коллекцию. КонструкторКоллекции - конструктор коллекции, которая будет соответствовать ключу в результирующем соответствии.

Перегрузка
ГруппироватьПо<ТипКлюча>(ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча): Соответствие<ТипКлюча, Массив<ТипЭлемента>>
ГруппироватьПо<ТипКлюча, ТипЗначения>(ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча, ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения): Соответствие<ТипКлюча, Массив<ТипЗначения>>

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя", Отдел: "Администрация"},
// {Ид: 5, Имя: "Вася", Отдел: "Администрация"},
// {Ид: 6, Имя: "Иван", Отдел: "Разработка"}]
// {Ид: 8, Имя: "Андрей", Отдел: "Бухгалтерия"}]
// {Ид: 11, Имя: "Вася", Отдел: "Администрация"}]
// {Ид: 3, Имя: "Иван", Отдел: "Разработка"}]

знч ОтделыИСотрудники: Соответствие<Строка, Множество<Строка>> = Сотрудники.ГруппироватьПо(Элемент -> Элемент.Отдел, Элемент -> Элемент.Имя, () -> новый Множество<Строка>())
// {
// "Администрация": {"Петя", "Вася"},
// "Разработка": {"Иван"},
// "Бухгалтерия": {"Андрей"}
// }

ДляКаждого

ДляКаждого(Действие: (ТипЭлемента)->ничто): Массив<ТипЭлемента>

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

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

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя"}, {Ид: 5, Имя: "Вася"}]

пер СписокСотрудников: Массив<Строка> = []
Сотрудники.ДляКаждого(Элемент -> СписокСотрудников.Добавить(Элемент.Ид + " - " + Элемент.Имя))
// Содержимое переменной СписокСотрудников:
// ["13 - Петя", "5 - Вася"]

// В примере ниже действие 'а -> КвадратыЧисел.Добавить(а * а)'
// на сервере будет вызвано только для первого элемента
знч Числа = [1, 3, 5]
знч КвадратыЧисел = <Число>[]
знч Первое = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).ПервыйИлиНеопределено() // 1
// КвадратыЧисел = [1]

Единственный

Единственный(): ТипЭлемента
Возвращает единственный содержащийся элемент. Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз.

Исключения

ИсключениеНедопустимоеСостояние - если нет элементов или элементов больше одного.


ЕдинственныйИлиНеопределено

Версия 7.0 и выше

ЕдинственныйИлиНеопределено(): ТипЭлемента?
Возвращает единственный содержащийся элемент или Неопределено. Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз.

Исключения

ИсключениеНедопустимоеСостояние - если элементов больше одного.

Прошлые имена: ЕдинственныйИлиУмолчание


ЕдинственныйИлиУмолчание

Версия 7.0 и выше

ЕдинственныйИлиУмолчание(Умолчание: ТипЭлемента): ТипЭлемента
Возвращает единственный содержащийся элемент или значение Умолчание, если элементов нет. Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз.

Исключения

ИсключениеНедопустимоеСостояние - если элементов больше одного.

Перегрузка
ЕдинственныйИлиУмолчание<ТипУмолчания>(ВычислительУмолчания: ()->ТипЭлемента|ТипУмолчания): ТипЭлемента|ТипУмолчания


ЕдинственныйИлиУмолчание

Версия 7.0 и выше

ЕдинственныйИлиУмолчание<ТипУмолчания>(ВычислительУмолчания: ()->ТипЭлемента|ТипУмолчания): ТипЭлемента|ТипУмолчания
ТипУмолчания: тип умолчания

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

Исключения

ИсключениеНедопустимоеСостояние - если элементов больше одного.

Перегрузка
ЕдинственныйИлиУмолчание(Умолчание: ТипЭлемента): ТипЭлемента


ЕдинственныйИлиУмолчание

Версия 6.0 и ниже

ЕдинственныйИлиУмолчание(): ТипЭлемента?
Метод переименован в ЕдинственныйИлиНеопределено.


ЕдинственныйИлиУмолчание

Версия 6.0 и ниже

ЕдинственныйИлиУмолчание<ТипУмолчания>(Умолчание: ТипЭлемента|ТипУмолчания): ТипЭлемента|ТипУмолчания
Метод заменен на ЕдинственныйИлиУмолчание.


ЕстьСоответствия

ЕстьСоответствия(Предикат: (ТипЭлемента)->Булево): Булево

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Возвращает Истина, если хотя бы один из элементов удовлетворяет условию в предикате. На сервере это операция сокращенного вычисления. Это значит, что вызванные ранее в цепочке вызовов операции, могут быть вызваны не для каждого элемента.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя", Отдел: "Администрация"},
// {Ид: 5, Имя: "Вася", Отдел: "Администрация"},
// {Ид: 6, Имя: "Иван", Отдел: "Разработка"}]

Сотрудники.ЕстьСоответствия(Элемент -> Элемент.Отдел == "Администрация") // Истина

// пример сокращенного вычисления
знч Числа = [1, 2, 3, 4, 5]
знч КвадратыЧисел = <Число>[]
знч ЕстьЧетные = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).ЕстьСоответствия(а -> а % 2 == 0) // Истина
// КвадратыЧисел = [1, 4]

КакПоследовательность

КакПоследовательность(): Последовательность<ТипЭлемента>
Преобразует Обходимое в Последовательность.


Максимум

<ItemType это Сравнимое<ТипЭлемента>> Максимум(): ТипЭлемента
Возвращает максимальный элемент из элементов Обходимого типа Сравнимое.

Исключения

ИсключениеНедопустимоеСостояние - если нет элементов.

Примеры

знч Числа = [1, 3, 5, 10, 12]
знч Макс = Числа.Максимум() // 12

МаксимумПо

МаксимумПо(Извлекатель: (ТипЭлемента)->Сравнимое<неизвестно>): ТипЭлемента
Возвращает максимальный по заданному свойству элемент.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Имя: "Петя", Возраст: 25},
// {Имя: "Вася", Возраст: 24},
// {Имя: "Иван", Возраст: 30}]

знч СтаршийСотрудник: Сотрудник = Сотрудники.МаксимумПо(Элемент -> Элемент.Возраст)
// {Имя: "Иван", Возраст: 30}

Минимум

<ItemType это Сравнимое<ТипЭлемента>> Минимум(): ТипЭлемента
Возвращает минимальный элемент из элементов Обходимого типа Сравнимое.

Исключения

ИсключениеНедопустимоеСостояние - если нет элементов.

Примеры

знч Числа = [1, 3, 5, 10, 12]
знч Минимум: Число = Числа.Минимум() // 1

МинимумПо

МинимумПо(Извлекатель: (ТипЭлемента)->Сравнимое<неизвестно>): ТипЭлемента

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Возвращает минимальный по заданному свойству элемент.

Исключения

ИсключениеНедопустимоеСостояние - если нет элементов.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Имя: "Петя", Возраст: 25},
// {Имя: "Вася", Возраст: 24},
// {Имя: "Иван", Возраст: 30}]

знч МладшийСотрудник: Сотрудник = Сотрудники.МинимумПо(Элемент -> Элемент.Возраст)
// {Имя: "Вася", Возраст: 24}

НетСоответствий

НетСоответствий(Предикат: (ТипЭлемента)->Булево): Булево

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Возвращает Истина, если ни один из элементов не удовлетворяет условию в предикате. На сервере это операция сокращенного вычисления. Это значит, что вызванные ранее в цепочке вызовов операции, могут быть вызваны не для каждого элемента.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя", Отдел: "Администрация"},
// {Ид: 5, Имя: "Вася", Отдел: "Администрация"},
// {Ид: 6, Имя: "Иван", Отдел: "Разработка"}]

Сотрудники.НетСоответствий(Элемент -> Элемент.Отдел == "Бухгалтерия") // Истина

// пример сокращенного вычисления
знч Числа = [1, 2, 3, 4, 5]
знч КвадратыЧисел = <Число>[]
знч НетЧетных = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).НетСоответствий(а -> а % 2 == 0) // Ложь
// КвадратыЧисел = [1, 4]

Объединить

@ПроверятьИспользованиеЗначения
Объединить(Обходимое: Обходимое<ТипЭлемента>): Массив<ТипЭлемента>
Объединяет элементы текущего обходимого с элементами Обходимое и возвращает новый массив.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Имя: "Петя", Возраст: 25},
// {Имя: "Вася", Возраст: 24}]

знч Сотрудники2: Массив<Сотрудник> = []
// [{Имя: "Иван", Возраст: 26},
// {Имя: "Андрей", Возраст: 27}]

знч ВсеСотрудники: Массив<Сотрудник> = Сотрудники.Объединить(Сотрудники2)
// [{Имя: "Петя", Возраст: 25},
// {Имя: "Вася", Возраст: 24},
// {Имя: "Иван", Возраст: 26},
// {Имя: "Андрей", Возраст: 27}]

Первый

Первый(): ТипЭлемента
Возвращает первый элемент. Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз. На сервере это операция сокращенного вычисления. Это значит, что вызванные ранее в цепочке вызовов операции, могут быть вызваны не для каждого элемента.

Исключения

ИсключениеНедопустимоеСостояние - если элементов нет.


ПервыйИлиНеопределено

Версия 7.0 и выше

ПервыйИлиНеопределено(): ТипЭлемента?
Возвращает первый элемент или Неопределено Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз. На сервере это операция сокращенного вычисления. Это значит, что вызванные ранее в цепочке вызовов операции, могут быть вызваны не для каждого элемента.

Примеры

знч Числа = [1, 3, 5, 10, 12, 15, 20]
знч Первый = Числа.ПервыйИлиНеопределено() // 1

// пример сокращенного вычисления
знч КвадратыЧисел = <Число>[]
знч Первый1 = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).ПервыйИлиНеопределено() // 1
// КвадратыЧисел = [1]

Прошлые имена: ПервыйИлиУмолчание


ПервыйИлиУмолчание

Версия 7.0 и выше

ПервыйИлиУмолчание(Умолчание: ТипЭлемента): ТипЭлемента
Возвращает первый элемент или значение Умолчание, если элементов нет. Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз. На сервере это операция сокращенного вычисления. Это значит, что вызванные ранее в цепочке вызовов операции, могут быть вызваны не для каждого элемента.

Перегрузка
ПервыйИлиУмолчание<ТипУмолчания>(ВычислительУмолчания: ()->ТипЭлемента|ТипУмолчания): ТипЭлемента|ТипУмолчания

Примеры

знч Числа = [1, 3, 5, 10, 12, 15, 20]
знч Первый = Числа.ПервыйИлиУмолчание(0) // 1

// пример сокращенного вычисления
знч КвадратыЧисел = <Число>[]
знч Первый1 = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).ПервыйИлиУмолчание(0) // 1
// КвадратыЧисел = [1]


ПервыйИлиУмолчание

Версия 7.0 и выше

ПервыйИлиУмолчание<ТипУмолчания>(ВычислительУмолчания: ()->ТипЭлемента|ТипУмолчания): ТипЭлемента|ТипУмолчания
ТипУмолчания: Тип умолчания.

Возвращает первый элемент или значение, вычисленное с помощью ВычислительУмолчания, если элементов нет. Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз. На сервере это операция сокращенного вычисления. Это значит, что вызванные ранее в цепочке вызовов операции, могут быть вызваны не для каждого элемента.

Перегрузка
ПервыйИлиУмолчание(Умолчание: ТипЭлемента): ТипЭлемента

Примеры

знч Числа = [1, 3, 5, 10, 12, 15, 20]
знч Первый = Числа.ПервыйИлиУмолчание(() -> 0) // 1

// пример сокращенного вычисления
знч КвадратыЧисел = <Число>[]
знч Первый1 = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).ПервыйИлиУмолчание(() -> 0) // 1
// КвадратыЧисел = [1]


ПервыйИлиУмолчание

Версия 6.0 и ниже

ПервыйИлиУмолчание(): ТипЭлемента?
Метод переименован в ПервыйИлиНеопределено.


ПервыйИлиУмолчание

Версия 6.0 и ниже

ПервыйИлиУмолчание<ТипУмолчания>(Умолчание: ТипЭлемента|ТипУмолчания): ТипЭлемента|ТипУмолчания
Метод заменен на ПервыйИлиУмолчание.


ПотомСортироватьПо

@ПроверятьИспользованиеЗначения
ПотомСортироватьПо(
Извлекатель: (ТипЭлемента)->Сравнимое<неизвестно>,
Направление: НаправлениеСортировки = НаправлениеСортировки.ПоВозрастанию
): Массив<ТипЭлемента>

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Выполняет дополнительную сортировку, используя Извлекатель для сравнения элементов. Возвращает новый отсортированный Массив.

Извлекатель - функция, применяющаяся к каждому элементу, возвращающая характеристику, которая непосредственно будет сравниваться с характеристиками остальных значений для упорядочивания. Например для структуры извлекатель может возвращать свойство, по которому сравниваются структуры.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Возраст: 31, Имя: "Петя"},
// {Ид: 18, Возраст: 42, Имя: "Иван"},
// {Ид: 5, Возраст: 42, Имя: "Вася"}]

знч ПоВозрастаниюИд = Сотрудники.СортироватьПо(Элемент -> Элемент.Возраст).ПотомСортироватьПо(Элемент -> Элемент.Ид)
// [{Ид: 13, Возраст: 31, Имя: "Петя"},
// {Ид: 5, Возраст: 42, Имя: "Вася"},
// {Ид: 18, Возраст: 42, Имя: "Иван"}]

Преобразовать

Преобразовать<ТипРезультата>(
Функция: (ТипЭлемента)->ТипРезультата,
ПропуститьНеопределено: Булево = Истина
): Массив<ТипРезультата>
ТипРезультата: тип результата.

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Применяет функцию к каждому элементу обходимого и возвращает массив с результатами. ПропуститьНеопределено - если Истина и результатом функции является Неопределено, элемент не будет включен в результирующий массив. Иначе будет.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
//[{Ид: 1, Имя: "Петя"}, {Ид: 2, Имя: "Вася"}]
знч Имена: Массив<Строка> = Сотрудники.Преобразовать(Сотрудник -> Сотрудник.Имя)
//["Петя", "Вася"]

ПреобразоватьЛинейно

ПреобразоватьЛинейно<ТипРезультата>(Функция: (ТипЭлемента)->Обходимое<ТипРезультата>): Массив<ТипРезультата>
ТипРезультата: тип результата.

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Преобразует каждый элемент Обходимого в Обходимое и объединяет в общий Массив.

Примеры

знч Отделы: Массив<Отдел> = []
//[{Ид: 1, Сотрудники: ["Петя", "Вася"]},
// {Ид: 2, Сотрудники: ["Иван", "Андрей"]}]

знч ВсеСотрудники: Массив<Строка> = Отделы.ПреобразоватьЛинейно(Отдел -> Отдел.Сотрудники())
// ["Петя", "Вася", "Иван", "Андрей"]

Пусто

Пусто(): Булево
Проверяет, есть ли элементы.


Свернуть

Свернуть(Операция: (ТипЭлемента, ТипЭлемента)->ТипЭлемента): ТипЭлемента

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Сводит все элементы Обходимого к одному значению с помощью заданной операции.

Операция - функция, которая принимает два аргумента, выполняет над ними некоторую операцию и возвращает результат. Затем эта функция опять применяется к результату и следующему элементу.

Исключения

ИсключениеНедопустимоеСостояние - если нет элементов.

Перегрузка
Свернуть(НачальноеЗначение: ТипЭлемента, Операция: (ТипЭлемента, ТипЭлемента)->ТипЭлемента): ТипЭлемента

Примеры

знч Числа = [1, 3, 5, 10]
знч Сумма = Числа.Свернуть((а, б) -> а + б) // 19

Свернуть

Свернуть(
НачальноеЗначение: ТипЭлемента,
Операция: (ТипЭлемента, ТипЭлемента)->ТипЭлемента
): ТипЭлемента

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Сводит все элементы Обходимого к одному значению с помощью заданной операции и начального значения.

Операция - функция, которая принимает два аргумента, выполняет над ними некоторую операцию и возвращает результат. Затем эта функция опять применяется к результату и следующему элементу.

Перегрузка
Свернуть(Операция: (ТипЭлемента, ТипЭлемента)->ТипЭлемента): ТипЭлемента

Примеры

знч Числа = [1, 3, 5, 10]
знч Сумма = Числа.Свернуть(100, (а, б) -> а + б) // 119

Соединить

<ItemType это Строка> Соединить(Разделитель: Строка = ""): Строка
Соединяет элементы в одну строку, с разделителем Разделитель.

Исключения

ИсключениеНедопустимоеСостояние - если нет элементов.

Примеры

знч Сотрудники = ["Петя", "Вася", "Иван"]
знч Список = Сотрудники.Соединить(", ") // "Петя, Вася, Иван"

Сортировать

@ПроверятьИспользованиеЗначения
Сортировать(Компаратор: (ТипЭлемента, ТипЭлемента)->Число): Массив<ТипЭлемента>

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Сортирует Обходимое, используя Компаратор для сравнения элементов. Возвращает новый отсортированный Массив.

Перегрузка
<ItemType это Сравнимое<ТипЭлемента>> Сортировать(Направление: НаправлениеСортировки = НаправлениеСортировки.ПоВозрастанию): Массив<ТипЭлемента>

Примеры

знч Числа = [10, 12, 1, 3, 5]
знч ПоВозрастанию = Числа.Сортировать((а, б) -> а - б) // [1, 3, 5, 10, 12]
знч ПоУбыванию = Числа.Сортировать((а, б) -> б - а) // [12, 10, 5, 3, 1]

Сортировать

@ПроверятьИспользованиеЗначения
<ItemType это Сравнимое<ТипЭлемента>> Сортировать(Направление: НаправлениеСортировки = НаправлениеСортировки.ПоВозрастанию): Массив<ТипЭлемента>
Сортирует элементы обходимого типа Сравнимое. Возвращает новый отсортированный Массив.

Перегрузка
Сортировать(Компаратор: (ТипЭлемента, ТипЭлемента)->Число): Массив<ТипЭлемента>

Примеры

знч Числа = [10, 12, 1, 3, 5]
знч ПоВозрастанию = Числа.Сортировать() // [1, 3, 5, 10, 12]
знч ПоУбыванию = Числа.Сортировать(НаправлениеСортировки.ПоУбыванию) // [12, 10, 5, 3, 1]

СортироватьПо

@ПроверятьИспользованиеЗначения
СортироватьПо(
Извлекатель: (ТипЭлемента)->Сравнимое<неизвестно>,
Направление: НаправлениеСортировки = НаправлениеСортировки.ПоВозрастанию
): Массив<ТипЭлемента>

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Сортирует Обходимое, используя Извлекатель для сравнения элементов. Возвращает новый отсортированный Массив.

Извлекатель - функция, применяющаяся к каждому элементу, возвращающая характеристику, которая непосредственно будет сравниваться с характеристиками остальных значений для упорядочивания. Например для структуры извлекатель может возвращать свойство, по которому сравниваются структуры.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя"}, {Ид: 5, Имя: "Вася"}]
знч ПоВозрастаниюИд = Сотрудники.СортироватьПо(Элемент -> Элемент.Ид)
// [{Ид: 5, Имя: "Вася"}, {Ид: 13, Имя: "Петя"}]

Среднее

<ItemType это Число> Среднее(): Число
Возвращает среднее арифметическое элементов типа Число.

Исключения

ИсключениеНедопустимоеСостояние - если нет элементов.

Примеры

знч Среднее = [1, 2, 3, 4, 5].Среднее() // 3

СреднееИлиУмолчание

<ItemType это Число> СреднееИлиУмолчание(Умолчание: Число = 0): Число
Возвращает среднее арифметическое элементов типа Число или Умолчание, если элементов нет.

Примеры

знч Среднее = [1, 2, 3, 4, 5].СреднееИлиУмолчание() // 3
знч СреднееИлиУмолчание = <Число>[].СреднееИлиУмолчание(5) // 5

Сумма

<ItemType это Число> Сумма(): Число
Возвращает сумму элементов типа Число или 0, если элементов нет.

Примеры

знч Сумма = [1, 2, 3, 4, 5].Сумма() // 15

Уникальные

Уникальные(): Массив<ТипЭлемента>
Возвращает новый Массив, в котором содержатся только уникальные элементы Обходимого. В случае с одинаковыми значениями, в результирующий массив попадет первое вхождение.

Примеры

знч Числа = [12, 10, 5, 3, 1, 3, 5, 10]
знч УникальныеЧисла = Числа.Уникальные() // [12, 10, 5, 3, 1]

УникальныеПо

УникальныеПо<ТипСвойства>(Извлекатель: (ТипЭлемента)->ТипСвойства): Массив<ТипЭлемента>
ТипСвойства: тип свойства.

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Возвращает новый Массив, в котором содержатся только уникальные по определенному свойству элементы Обходимого. В случае с одинаковыми свойствами, в результирующий массив попадет первое вхождение.

Извлекатель - функция, применяющаяся к каждому элементу, возвращающая характеристику, по которой будет определяться уникальность элементов.

Примеры

знч Сотрудники: Массив<Сотрудник> = []
// [{Имя: "Петя", Возраст: 25},
// {Имя: "Вася", Возраст: 24},
// {Имя: "Иван", Возраст: 25}]

знч УникальныеПоВозрасту: Массив<Сотрудник> = Сотрудники.УникальныеПо(Элемент -> Элемент.Возраст)
// [{Имя: "Петя", Возраст: 25},
// {Имя: "Вася", Возраст: 24}]

Фильтровать

@ПроверятьИспользованиеЗначения
Фильтровать(Фильтр: (ТипЭлемента)->Булево): Массив<ТипЭлемента>

Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.

Фильтрует элементы Обходимого по заданному критерию.

Примеры

знч Числа = [1, 3, 5, 10, 12]
знч Четные = Числа.Фильтровать(Элемент -> Элемент % 2 == 0) // [10, 12]

ФильтроватьПоТипу

ФильтроватьПоТипу<ЦелевойТип>(): Массив<ЦелевойТип>
ЦелевойТип: тип оставляемых элементов.

Фильтрует обходимое, оставляя только значения типа TargetType и возвращает массив из этих элементов.

Примеры

знч Объекты = [1, 2, "3", "4", True, False]
знч Числа = Объекты.ФильтроватьПоТипу<Число>() // [1, 2]

Список унаследованных методов

Объект

ВСтроку

ПолучитьТип

Представление