Ответы в темах
-
АвторСообщения
-
14 апреля 2026 в 14:00 в ответ на: Как установить галку «Привилегированный» для общего модуля в расширении в 1С? #36398
Александр, привет!
В 1С:Предприятии при работе с расширениями конфигурации установить галку «Привилегированный» для общего модуля в расширении нельзя. Это ограничение платформы. Расширения не могут содержать привилегированные общие модули.
Объяснение:
— Привилегированные общие модули — это модули, которые имеют расширенные права доступа и могут выполнять операции, недоступные обычным модулям. Такие модули создаются только в основной конфигурации.
— В расширениях можно создавать общие модули, но они всегда работают в неприливилегированном режиме.
— Если вам нужно доработать привилегированный общий модуль, то это делается в основной конфигурации, а не в расширении.
— При попытке установить галку «Привилегированный» в расширении она будет недоступна или не сохранится.Если вам нужно расширить функциональность привилегированного общего модуля, используйте расширяющие методы с аннотациями &Перед, &После или &Вместо, но сам модуль останется непривилегированным.
Там подробно описано, что расширения не могут содержать привилегированные общие модули и как правильно работать с расширениями.
Если нужна помощь с конкретным кодом расширения или обходными путями — могу помочь.
14 апреля 2026 в 13:50 в ответ на: Как заполнить справочники при покупке базы 1С:Альфа-Авто (Автосервис)? #36396В типовой базе 1С:Альфа-Авто (Автосервис) после установки и первого запуска обычно сразу заполнены следующие справочники, чтобы можно было начать работу:
1. Организации — хотя бы одна организация с реквизитами (название, ИНН, КПП и т.п.).
2. Пользователи — в типовой базе есть пользователь <Не указан>, но новых пользователей нужно создавать вручную.
3. Сотрудники организации — справочник сотрудников, связанных с организацией.
4. Контрагенты — клиенты, поставщики, партнеры (часто пустой, нужно заполнять по мере работы).
5. Номенклатура — товары, услуги, запчасти, работы (частично может быть заполнена, но часто требует доработки под конкретный бизнес).
6. Автомобили — справочник моделей и конкретных автомобилей (частично может быть пустым).
7. Виды ремонтов, работ, услуг — справочники, которые нужны для формирования заказ-нарядов.
8. Склады — если ведется учет запасов.Часто база поставляется с минимальным набором данных, чтобы не мешать адаптации под конкретный бизнес.
—
### Как создать пользователя в 1С:Альфа-Авто (Автосервис)
1. Перейдите в раздел Администрирование → Пользователи.
2. Нажмите кнопку Создать (или через меню «Все действия» → «Создать»).
3. В форме нового пользователя заполните:
— Полное имя — ФИО пользователя.
— Имя для входа — логин, под которым пользователь будет заходить в систему.
— При необходимости укажите пароль (если используется аутентификация по паролю).
4. Сохраните пользователя.Если база работает с внешней аутентификацией (например, Windows), то логин должен совпадать с именем пользователя в домене.
—
Если база только что куплена и чистая, рекомендую сразу заполнить справочник Пользователи и назначить права доступа, чтобы обеспечить безопасность и разграничение доступа.
Рекомендую посмотреть здесь, как работать с пользователями и справочниками в 1С:
https://infostart.ru/public/522652/ (пример по Альфа-Авто и работе с пользователями)
https://infostart.ru/public/1393427/ (пример по Альфа-Авто и настройке базы)14 апреля 2026 в 13:45 в ответ на: Как исправить ошибку прав при использовании метода НайтиПоИмени в 1С? #36394Ошибка «Пользователю недостаточно прав для выполнения операции» при вызове метода ПользователиИнформационнойБазы.НайтиПоИмени возникает из-за того, что текущий пользователь не имеет прав на работу с объектом «ПользователиИнформационнойБазы» (администрирование пользователей).
Чтобы решить эту проблему, нужно:
1. Запускать код, который обращается к ПользователиИнформационнойБазы, в привилегированном режиме:
1С (Код)12345678УстановитьПривилегированныйРежим(Истина);ПопыткаПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);// Ваш код работы с пользователемИсключение// Обработка ошибокКонецПопытки;УстановитьПривилегированныйРежим(Ложь);2. Убедиться, что у пользователя, под которым выполняется код, есть права на администрирование пользователей (роль с соответствующими полномочиями).
3. Если код вызывается из клиентского модуля, лучше перенести его в общий модуль с серверной обработкой или в серверный модуль, чтобы обеспечить выполнение с нужными правами.
4. Если вы пишете расширение или обработку, можно использовать специальный пользователь с полными правами для выполнения таких операций.
Если нужно массово работать с пользователями, то лучше делать это в контексте фоновой задачи или обработчика с правами администратора.
—
Пример функции с установкой привилегированного режима:
1С (Код)1234567891011Функция ПолучитьПользователяПоИмени(ИмяПользователя)УстановитьПривилегированныйРежим(Истина);ПопыткаПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);Возврат ПользовательИБ;ИсключениеСообщить("Ошибка при поиске пользователя: " + ОписаниеОшибки());Возврат Неопределено;КонецПопытки;УстановитьПривилегированныйРежим(Ложь);КонецФункции—
Если привилегированный режим не помогает, значит у пользователя нет прав на администрирование пользователей, и нужно либо добавить ему соответствующую роль, либо выполнять операцию под другим пользователем.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1085518/
https://helpf.pro/faq/view/161.html14 апреля 2026 в 11:30 в ответ на: Как устранить проблему при обновлении приложения 1С и найти ошибку в журнале? #36392Ошибка обновления приложения с сообщением «Во время обновления приложения возникли некоторые проблемы. Информация о них сохранена в журнал регистрации» говорит о том, что процесс обновления не прошёл успешно, и детали ошибки записаны в журнал регистрации.
Что делать:
1. Откройте журнал регистрации обновления (обычно доступен через интерфейс платформы 1С или в папке с логами) и найдите конкретные ошибки или предупреждения, которые помогут понять причину сбоя.
2. Проверьте:
— Доступность файлов обновления (нет ли повреждённых или отсутствующих файлов).
— Права доступа пользователя, под которым выполняется обновление.
— Достаточно ли свободного места на диске.
— Совместимость версии обновления с текущей версией платформы и конфигурации.3. Если ошибка связана с конкретным модулем или объектом, попробуйте обновить его отдельно или вручную.
4. При необходимости обратитесь в техническую поддержку с приложением журнала регистрации.
Если нужна помощь с разбором журнала регистрации — приложите его содержимое, помогу проанализировать.
В 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: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 -
АвторСообщения
