Последовательность
Стд::Последовательность<ТипЭлемента>
Объект предоставляет возможность для потоковой обработки данных. Некоторые методы помечены как терминальные. Это значит что такой метод закрывает последовательность и дальнейшие действия с последовательностью приведут к ошибке.
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Объект
Примеры
Общие примеры
знч Числа = [1, 3, 5, 10].КакПоследовательность()
знч Макс = Числа.Максимум()
// Здесь вызов метода "Минимум" приведет к ошибке
// последовательность "Числа" уже закрыта ранее при вызове терминального метода "Максимум"
знч Мин = Числа.Минимум() 
На сервере, в отличие от клиента, никаких реальных действий выполнено не будет, пока не будет вызван терминальный метод.
/* Выполняется на сервере */
знч Числа = [1, 3, 5, 10]
пер ПоследовательностьЧисел = Числа.КакПоследовательность()
// Вызван не терминальный метод "Фильтровать", никаких реальных действий выполнено не будет
ПоследовательностьЧисел = ПоследовательностьЧисел.Фильтровать(А -> А > 4)
Числа.Добавить(-1)
Числа.Добавить(15)
// Вызван терминальный метод "ВМассив", фильтрация элементов будет тут
знч Результат = ПоследовательностьЧисел.ВМассив()
// [5, 10, 15]
 
/* Выполняется на клиенте */
знч Числа = [1, 3, 5, 10]
пер ПоследовательностьЧисел = Числа.КакПоследовательность()
// Фильтрация будет выполнена здесь
ПоследовательностьЧисел = ПоследовательностьЧисел.Фильтровать(А -> А > 4)
// Добавление новых чисел не повлияет на результат, так как фильтрация уже выполнена
Числа.Добавить(-1)
Числа.Добавить(15)
знч Результат = ПоследовательностьЧисел.ВМассив()
// [5, 10]
 
- ItemType - Тип элементов в последовательности.
 
Методы
ВМассив
ВМассив(): Массив<ТипЭле мента>Примеры
знч Числа: Последовательность<Число> = [1, 2].КакПоследовательность()
знч МассивЧисел = Числа.ВМассив() // [1, 2]
ВСоответствие
ВСоответствие<ТипКлюча, ТипЗначения>(
ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча,
ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения
): Соответствие<ТипКлюча, ТипЗначения>ТипЗначения: тип значения.
Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.
Преобразует Последовательность в Соответствие, используя заданные функции для вычисления ключа и значения. При повторяющихся ключах, в соответствии останется только последний элемент последовательности с таким ключом. Тер минальный метод.
Примеры
знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 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,  Имя: "Андрей", Отдел: "Бухгалтерия"}]
знч ОтделыИСотрудники: Последовательность<КлючИЗначение<Строка, Массив<Строка>>> = Сотрудники.КакПоследовательность().ГруппироватьПо(Элемент -> Элемент.Отдел, Элемент -> Элемент.Имя)
// [ 
//   "Администрация": ["Петя", "Вася"],
//   "Разработка":    ["Иван"],
//   "Бухгалтерия":   ["Андрей"]
// ]
ГруппироватьПо
Версия 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}] 
Ограничить
Ограничить(Количество: Число): Последовательность<ТипЭлемента>Исключения
ИсключениеНедопустимыйАргумент - если Количество <= 0.
Примеры
знч Числа = [1, 3, 5, 10, 12, 15, 20]
знч Числа1 = Числа.КакПоследовательность().Ограничить(3).ВМассив() //[1, 3, 5]
// пример сокращенного вычисления 
знч Числа2 = [1, 3, 5, 10, 12, 15, 20]
знч КвадратыЧисел: Массив<Число> = []
знч СокращенныйМассив = Числа2.КакПоследовательность().ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).Ограничить(3).ВМассив()
// КвадратыЧисел = [1, 9, 25]
Первый
Первый(): ТипЭлементаИсключения
ИсключениеНедопустимоеСостояние - если элементов нет.
ПервыйИлиНеопределено
Версия 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 и ниже
ПервыйИлиУмолчание<ТипУмолчания>(Умолчание: ТипЭлемента|ТипУмолчания): ТипЭлемента|ТипУмолчанияПосчитатьРазмер
ПосчитатьРазмер(): ЧислоПримеры
знч Числа = [1, 3, 5, 10]
знч Размер = Числа.КакПоследовательность().ПосчитатьРазмер() // 4
// вызов ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)) будет опущен
// так как не влияет на количество элементов в последовательности
знч КвадратыЧисел: Массив<Число> = []
знч Размер1 = Числа.КакПоследовательность().ДляКаждого(а -> Квадраты Чисел.Добавить(а * а)).ПосчитатьРазмер() // 4
// КвадратыЧисел = []
ПотомСортироватьПо
ПотомСортироватьПо(
Извлекатель: (ТипЭлемента)->Сравнимое<неизвестно>,
Направление: НаправлениеСортировки = НаправлениеСортировки.ПоВозрастанию
): Последовательность<ТипЭлемента>Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинх ронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.
Выполняет дополнительную сортировку, используя Извлекатель для сравнения элементов.
Извлекатель - функция, применяющаяся к каждому элементу, возвращающая характеристику, которая непосредственно будет сравниваться с характеристиками остальных значений для упорядочивания.
Например для структуры извлекатель может возвращать свойство, по которому сравниваются структуры.
Примеры
знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Возраст: 31, Имя: "Петя"}, 
//  {Ид: 18, Возраст: 42, Имя: "Иван"}, 
//  {Ид: 5,  Возраст: 42, Имя: "Вася"}]
знч СотрудникиПоИд = Сотрудники.КакПоследовательность().СортироватьПо(Элемент -> Элемент.Возраст).ПотомСортироватьПо(Элемент -> Элемент.Ид)
// [{Ид: 13, Возра ст: 31,  Имя: "Петя"}, 
//  {Ид: 5,  Возраст: 42, Имя: "Вася"}, 
//  {Ид: 18, Возраст: 42, Имя: "Иван"}]
Преобразовать
Преобразовать<ТипРезультата>(
Функция: (ТипЭлемента)->ТипРезультата,
ПропуститьНеопределено: Булево = Истина
): Последовательность<ТипРезультата>Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.
Применяет функцию к каждому элементу и возвращает новую последовательность с результатами.
ПропуститьНеопределено - если Истина и результатом функции является Неопределено, элемент не будет включен в результирующую последовательность. Иначе будет.
Примеры
знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 1, Имя: "Петя"}, {Ид: 2, Имя: "Вася"}]
знч Имена: Последовательность<Строка> = Сотрудники.КакПоследовательность().Преобразовать(Сотрудник -> Сотрудник.Имя) 
// ["Петя", "Вася"]
ПреобразоватьЛинейно
ПреобразоватьЛинейно<ТипРезультата>(Функция: (ТипЭлемента)->Обходимое<ТипРезультата>): Последовательно сть<ТипРезультата>Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.
Преобразует каждый элемент в Обходимое и объединяет в общую Последовательность.
Примеры
знч Отделы: Массив<Отдел> = []
//[{Ид:1, Сотрудники: ["Петя", "Вася"]}, {Ид: 2, Сотрудники: ["Иван", "Андрей"]}]
знч ВсеСотрудники = Отделы.КакПоследовательность().ПреобразоватьЛинейно(Отдел -> Отдел.Сотрудники()) // "Петя", "Вася", "Иван", "Андрей"
Пропустить
Пропустить(Количество: Число): Последовательность<ТипЭлемента>Исключения
ИсключениеНедопустимыйАргумент - если Количество <= 0.
Примеры
знч Числа = [1, 3, 5, 10, 12, 15, 20]
знч Числа1 = Числа.КакПоследовательность().Пропустить(3).ВМассив() // [10, 12, 15, 20]
Свернуть
Свернуть(Операция: (ТипЭлемента, ТипЭлемента)->ТипЭлемента): ТипЭлементаВнимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.
Сводит все элементы Последовательности к одному значению с помощью заданной операции. Терминальный метод.
Оп ерация - функция, которая принимает два аргумента, выполняет над ними некоторую операцию и возвращает результат.
Затем эта функция опять применяется к результату и следующему элементу.
Исключения
ИсключениеНедопустимоеСостояние - если нет элементов.
Примеры
знч Числа = [1, 3, 5, 10].КакПоследовательность()
знч Сумма: Число = Числа.Свернуть((а, б) -> а + б)   // 19
Свернуть
Свернуть(
НачальноеЗначение: ТипЭлемента,
Операция: (ТипЭлемента, ТипЭлемента)->ТипЭлемента
): ТипЭлементаВнимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.
Сводит все элементы Последовательности к одному значению с помощью заданной операции и начального значения. Терминальный метод.
Операция - функция, которая принимает два аргумента, выполняет над ними некоторую операцию и возвращает результат.
Затем эта функция опять применяется к результату и следующему элементу.
Перегрузка
Свернуть(Операция: (ТипЭлемента, ТипЭлемента)->ТипЭлемента): ТипЭлемента
Примеры
знч Числа = [1, 3, 5, 10].КакПоследовательность()
знч Сумма = Числа.Свернуть(100, (а, б) -> а + б)   // 119
Соединить
Соединяет элементы в одну строку, с разделителемРазделитель.
Терминальный метод.
Примеры
знч Сотрудники: Массив<Строка> = [] // ["Петя", "Вася", "Иван"]
знч Список: Строка = Сотрудники.КакПоследовательность().Со единить(", ") // "Петя, Вася, Иван"
Сортировать
@ПроверятьИспользованиеЗначения
Сортировать(Компаратор: (ТипЭлемента, ТипЭлемента)->Число): Последовательность<ТипЭлемента>Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.
Сортирует элементы Последовательности, используя Компаратор для сравнения элементов.
Примеры
знч Числа = [10, 12, 1, 3, 5].КакПоследовательность()
знч ПоВозрастанию = Числа.Сортировать((а, б) -> а - б)  // [1, 3, 5, 10, 12]
знч ПоУбыванию = Числа.Сортировать((а, б) -> б - а)     // [12, 10, 5, 3, 1]
Сортировать
@ПроверятьИспользованиеЗначения
<ItemType это Сравнимое<ТипЭлемента>> Сортировать(Направление: НаправлениеСортировки = НаправлениеСортировки.ПоВозрастанию): Последовательность<ТипЭлемента>Перегрузка
Сортировать(Компаратор: (ТипЭлемента, ТипЭлемента)->Число): Последовательность<ТипЭлемента>
Примеры
знч Числа = [10, 12, 1, 3, 5].КакПоследовательность()
знч ПоУбыванию = Числа.Сортировать(Направление = НаправлениеСортировки.ПоУбыванию)  // [12, 10, 5, 3, 1]
знч ПоВозрастанию = Числа.Сортировать()                                             // [1, 3, 5, 10, 12]
СортироватьПо
@ПроверятьИспользованиеЗначения
СортироватьПо(
Извлекатель: (ТипЭлемента)->Сравнимое<неизвестно>,
Направление: НаправлениеСортировки = НаправлениеСортировки.ПоВозрастанию
): Последовательность<ТипЭлемента>Внимание! На клиенте в функции вычисления нельзя использовать любые асихронные операции, например, вызовы сервера. Это приведёт к возникновению ошибки "Попытка выполнить асинхронное действие!". Аналогичная ошибка может возникнуть при попытке на клиенте отладить эту функцию в отладчике.
Сортирует Последовательность, используя Извлекатель для сравнения элементов.
Извлекатель - функция, применяющаяся к каждому элементу, возвращающая характеристику, которая непосредственно будет сравниваться с характеристиками остальных значений для упорядочивания.
Например для структуры извлекатель может возвращать свойство, по которому сравниваются структуры.
Примеры
знч Сотрудники: Массив<Сотрудник> = []
// [{Ид: 13, Имя: "Петя"}, {Ид: 5, Имя: "Вася"}]
знч СотрудникиПоИд: Последовательность<Сотрудник> = Сотрудники.КакПоследовательность().СортироватьПо(Элемент -> Элемент.Ид) 
// [{Ид: 5, Имя: "Вася"}, {Ид: 13, Имя: "Петя"}]
Среднее
Возвращает среднее арифметическое элементов Последовательности типа Число. Терминальный метод.Исключения
ИсключениеНедопустимоеСостояние - если нет элементов.
Примеры
знч Среднее = [1, 2, 3, 4, 5].КакПоследовательность().Среднее() // 3
СреднееИлиУмолчание
Возвращает среднее арифметическое элементов Последовательности тип а Число илиУмолчание, если элементов нет.
Примеры
знч Среднее = [1, 2, 3, 4, 5].КакПоследовательность().СреднееИлиУмолчание() // 3
знч СреднееИлиУмолчание = <Число>[].КакПоследовательность().СреднееИлиУмолчание(5) // 5
Сумма
Возвращает сумму элементов Последовательности типа Число или 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]