К статье
Практический материал

Справочники и Данные · 9 мин

Как в 1С сделать сортировку по алфавиту

Разбираем, как в 1С отсортировать список по алфавиту: в справочниках, документах, отчётах и через запрос. Пошаговые инструкции, типичные ошибки и ответы на вопросы.

Сортировка по алфавиту в 1С — одна из самых частых задач при работе со справочниками, документами и отчётами. Пользователю нужно быстро найти контрагента, сотрудника или номенклатурную позицию, а разработчику — вывести данные в нужном порядке в запросе или динамическом списке. В большинстве случаев задача решается встроенными средствами платформы без программирования.

Способ сортировки зависит от того, где вы работаете: в форме списка справочника, в табличной части документа, в отчёте на СКД или в программном коде. Ниже разобраны все основные сценарии для типовых конфигураций (Бухгалтерия, Управление торговлей, ЗУП и других) на управляемых формах.

Важно понимать: по умолчанию списки в 1С обычно уже отсортированы по наименованию, но порядок может быть изменён пользователем или настройками формы. Если список выглядит «хаотично», чаще всего достаточно сбросить настройки или явно задать сортировку.

Как отсортировать список справочника по алфавиту

Самый распространённый сценарий — отсортировать справочник «Номенклатура», «Контрагенты» или «Сотрудники» по наименованию. Для этого не нужны права администратора и изменение конфигурации.

Порядок действий в форме списка
  1. 1
    Откройте нужный справочник, например «Номенклатура» или «Контрагенты».
  2. 2
    Нажмите кнопку «Ещё» в командной панели списка и выберите пункт «Настроить список».
  3. 3
    В открывшемся окне перейдите на закладку «Сортировка».
  4. 4
    Добавьте поле «Наименование» и установите направление «По возрастанию».
  5. 5
    Нажмите «ОК» или «Завершить редактирование» и проверьте порядок строк в списке.

Быстрый альтернативный способ — кликнуть по заголовку колонки «Наименование». Во многих формах это переключает сортировку по возрастанию/убыванию. Однако не во всех динамических списках клик по заголовку работает, поэтому надёжнее использовать «Настроить список».

Если справочник иерархический (с группами), сортировка применяется внутри каждого уровня иерархии. Чтобы видеть плоский список, отсортированный по алфавиту целиком, переключите режим отображения: «Ещё» → «Режим просмотра» → «Список» вместо «Дерево» или «Иерархический список».

Сортировка в табличной части документа

Когда товары в документе «Реализация» или «Поступление» расположены в произвольном порядке, их можно упорядочить штатной командой. В табличной части нажмите кнопку «Ещё» (или щёлкните правой кнопкой мыши по таблице) и выберите «Сортировать по возрастанию», предварительно установив курсор в колонку «Номенклатура».

Учтите ограничение: сортировка табличной части меняет фактический порядок строк документа, а не только его отображение. После сортировки документ нужно записать, иначе порядок не сохранится. Если документ уже проведён, при записи он будет перепроведён — убедитесь, что это не затронет закрытые периоды, к которым у вас нет доступа.

Сортировка в отчётах

В отчётах на системе компоновки данных (а это почти все отчёты типовых конфигураций) порядок строк настраивается через форму настроек. Нажмите «Ещё» → «Изменить вариант отчёта» или кнопку «Настройки», перейдите на закладку «Сортировка» и добавьте нужное поле с направлением «По возрастанию».

Порядок полей в списке сортировки имеет значение: сначала применяется верхнее поле, затем следующие. Например, чтобы вывести контрагентов по алфавиту внутри каждого менеджера, первой строкой поставьте «Менеджер», второй — «Контрагент».

Если отчёт построен с группировками, сортировка действует внутри каждой группы. Чтобы изменить порядок самих групп, сортировку нужно задать на уровне соответствующей группировки в расширенном режиме настроек.

Сортировка в запросе: УПОРЯДОЧИТЬ ПО

Для разработчиков и при написании произвольных запросов в консоли используется конструкция языка запросов УПОРЯДОЧИТЬ ПО. Она задаёт порядок строк результата:

ВЫБРАТЬ

Номенклатура.Ссылка КАК Товар,

Номенклатура.Наименование КАК Наименование

ИЗ

Справочник.Номенклатура КАК Номенклатура

ГДЕ

НЕ Номенклатура.ПометкаУдаления

УПОРЯДОЧИТЬ ПО

Наименование

По умолчанию сортировка идёт по возрастанию (по алфавиту). Для обратного порядка добавьте ключевое слово УБЫВ после имени поля. Можно упорядочивать по нескольким полям через запятую.

Если результат запроса выгружается в таблицу значений, а сортировку нужно выполнить уже после выборки, используйте метод таблицы значений: ТаблицаРезультата.Сортировать("Наименование Возр"). Для динамического списка в форме порядок задаётся через свойство Порядок в настройках списка или программно через Список.Порядок.Элементы.

bsl
ТаблицаРезультата.Сортировать("Наименование Возр");

Особенности сортировки строк: регистр, цифры и «Ё»

Алфавитная сортировка в 1С имеет нюансы, которые часто вызывают вопросы. Строки, начинающиеся с цифр, идут раньше букв, а сравнение чисел внутри строк выполняется посимвольно: «Товар 10» окажется раньше «Товар 2», потому что «1» меньше «2». Это нормальное поведение строковой сортировки, а не ошибка.

Регистр букв при сортировке в запросах обычно не учитывается, но буква «Ё» может располагаться отдельно от «Е» в зависимости от настроек базы данных. Если часть наименований написана через «Е», а часть через «Ё», они могут оказаться в разных местах списка — это стоит учитывать при поиске.

Наименования, начинающиеся с латинских букв, будут идти раньше или после кириллических в зависимости от кодировки сравнения. Если в справочнике смешаны русские и английские названия, визуально список может выглядеть «разорванным» на два алфавитных блока — это ожидаемо.

Типичные ошибки
01
Ожидание, что «Товар 2» будет после «Товар 10»: строковая сортировка сравнивает символы, а не числа, поэтому порядок получается «нечисловым».
02
Сортировка иерархического списка в режиме «Дерево» и вывод о том, что сортировка не работает: порядок применяется внутри групп, переключитесь в режим «Список».
03
Сортировка табличной части без последующей записи документа: после закрытия формы порядок строк теряется.
04
Попытка изменить порядок в динамическом списке с произвольным запросом, где порядок жёстко задан разработчиком: пользовательская настройка может быть заблокирована.

Проверка результата и сброс настроек

После настройки сортировки проверьте результат: первая строка списка должна начинаться с начала алфавита (или с цифр/латиницы), а при прокрутке порядок не должен «ломаться». Если порядок не изменился, вероятно, применена сохранённая пользовательская настройка формы.

Для сброса откройте «Ещё» → «Установить стандартные настройки» в форме настройки списка или отчёта. Также полезно помнить, что в типовых конфигурациях настройки списков хранятся персонально для каждого пользователя — проблема одного сотрудника не влияет на остальных.

Контрольные точки

Как проверить результат

Порядок строк в списке
Норма

Наименования идут от А к Я, цифры и латиница — в начале или отдельным блоком

Тревожный признак

Строки перемешаны, порядок меняется при каждом открытии формы

Сохранение настройки
Норма

После закрытия и повторного открытия списка сортировка сохраняется

Тревожный признак

Сортировка сбрасывается — проверьте, не задан ли порядок в коде формы

Отчёт после настройки
Норма

Строки упорядочены внутри каждой группировки

Тревожный признак

Порядок задан не на том уровне группировки или перекрыт настройкой вышестоящей группы

Итог

Что важно запомнить

В списках сортировка задаётся через «Ещё» → «Настроить список», в отчётах — на вкладке «Сортировка» настроек, в запросах — конструкцией УПОРЯДОЧИТЬ ПО. Учитывайте особенности строковой сортировки: цифры сравниваются посимвольно, латиница и кириллица образуют отдельные блоки.

Частые вопросы

Почему список в 1С не сортируется по алфавиту, хотя я всё настроил?

Чаще всего причина в том, что список отображается в иерархическом режиме — сортировка работает внутри групп. Переключите режим просмотра на «Список». Вторая причина — порядок динамического списка задан разработчиком в коде формы, тогда пользовательская настройка игнорируется.

Как отсортировать по алфавиту в обычных формах (1С 8.2 или старые конфигурации)?

В обычных формах кликните правой кнопкой по колонке табличного поля и выберите «Сортировать по возрастанию», либо кликните по заголовку колонки. Для журналов документов и списков справочников также доступна кнопка сортировки на командной панели.

Можно ли сделать сортировку по алфавиту по умолчанию для всех пользователей?

Да, но это требует изменения конфигурации: в свойствах динамического списка формы задаётся порядок по умолчанию, а в запросе — конструкция УПОРЯДОЧИТЬ ПО. Такие изменения выполняет разработчик или администратор с правами на изменение конфигурации.

Почему «Товар 2» стоит после «Товар 10» при сортировке?

Потому что сортировка строковая: символы сравниваются по одному, и «1» меньше «2». Чтобы получить числовой порядок, нужно сортировать по отдельному числовому полю (например, по коду) либо программно дополнять номера ведущими нулями.

Как отсортировать данные в печатной форме документа?

Порядок строк печатной формы определяется запросом в модуле менеджера документа. Если порядок не устраивает, его меняет разработчик, добавляя УПОРЯДОЧИТЬ ПО в запрос печатной формы. Пользовательскими настройками порядок строк в печатной форме обычно не регулируется.

Влияет ли сортировка списка на данные в базе?

Нет. Сортировка в форме списка и в отчёте меняет только отображение данных, сами записи в базе не изменяются. Исключение — сортировка табличной части документа: она меняет фактический порядок строк и требует записи документа.