Ответы в темах
-
АвторСообщения
-
В 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.html14 апреля 2026 в 11:15 в ответ на: Как сортировать массив структур 1С по полю, используя ТаблицуЗначений? #36377В 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.htmlВ 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.html14 апреля 2026 в 11:00 в ответ на: Как отсортировать массив в 1С по полю структуры элементов? #36359В 1С массив — это просто упорядоченный набор значений, у элементов массива нет полей, как у объектов или структур. Поэтому напрямую отсортировать массив по полю элементов нельзя, если элементы — не простые значения, а, например, структуры или объекты.
Чтобы отсортировать массив по полю элементов (например, если массив содержит структуры с одинаковым набором полей), нужно:
1. Преобразовать массив в СписокЗначений.
2. Загрузить в СписокЗначений элементы массива.
3. Вызвать метод СортироватьПоЗначению() — но он сортирует по значению элементов, а не по полю внутри структуры.
4. Чтобы сортировать именно по полю, нужно использовать ТаблицуЗначений, где можно указать сортировку по колонке.Пример сортировки массива структур по полю «Имя»:
1С (Код)1234567891011121314151617181920212223242526// Исходный массив структурМассив = Новый Массив;Массив.Добавить(Новый Структура("Имя,Возраст", "Иван", 30));Массив.Добавить(Новый Структура("Имя,Возраст", "Петр", 25));Массив.Добавить(Новый Структура("Имя,Возраст", "Алексей", 35));// Создаем таблицу значений с колонками, соответствующими полям структурТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Имя");Таблица.Колонки.Добавить("Возраст");// Заполняем таблицу значений из массиваДля Каждого Элемент Из Массив ЦиклНоваяСтрока = Таблица.Добавить();НоваяСтрока.Имя = Элемент.Имя;НоваяСтрока.Возраст = Элемент.Возраст;КонецЦикла;// Сортируем таблицу по колонке "Имя" по возрастаниюТаблица.Сортировать("Имя Возр");// Если нужно, можно выгрузить обратно в массив структурОтсортированныйМассив = Новый Массив;Для Каждого Строка Из Таблица ЦиклОтсортированныйМассив.Добавить(Новый Структура("Имя,Возраст", Строка.Имя, Строка.Возраст));КонецЦикла;Таким образом, сортировка по полю возможна через ТаблицуЗначений, а не напрямую в массиве.
Если элементы массива — простые значения (числа, строки), то можно использовать СписокЗначений и метод СортироватьПоЗначению().
https://helpf.pro/faq8/view/1364.html -
АвторСообщения