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

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

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

Как в 1С отсортировать по алфавиту справочники, документы, списки и отчёты. Сортировка в интерфейсе, через настройки списка и программно на встроенном языке.

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

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

Ниже разобраны все основные сценарии: от простой сортировки кнопкой в списке до программного упорядочивания таблиц значений и результатов запросов на встроенном языке 1С.

Сортировка списка по алфавиту через интерфейс

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

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

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

Порядок действий в форме списка
  1. 1
    Откройте нужный список (справочник или журнал документов)
  2. 2
    Нажмите «Ещё» → «Настроить список» или щёлкните по заголовку колонки
  3. 3
    На вкладке «Сортировка» добавьте поле «Наименование»
  4. 4
    Установите направление «По возрастанию» для порядка от А до Я
  5. 5
    Нажмите «ОК» и проверьте порядок строк в списке

Сортировка в отчётах и настройках СКД

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

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

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

Почему сортировка выглядит «неправильной»: коды, числа и регистр

Частая жалоба: список отсортирован по алфавиту, но порядок кажется странным. Причины обычно следующие. Если сортировка идёт по коду, а код — строковый, то значения упорядочиваются посимвольно: «10» окажется раньше «2», потому что сравниваются первые символы. Это не ошибка, а особенность строкового сравнения.

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

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

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

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

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

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

Программная сортировка: запросы и таблицы значений

Во встроенном языке 1С основной способ упорядочить данные — предложение УПОРЯДОЧИТЬ ПО в тексте запроса. Оно выполняется на стороне СУБД и работает быстро даже на больших выборках. Для сортировки по алфавиту по убыванию добавляется ключевое слово УБЫВ.

bsl
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар,
| Номенклатура.Наименование КАК Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления
|
|УПОРЯДОЧИТЬ ПО
| Наименование";

Если данные уже собраны в таблицу значений, используйте метод Сортировать: ТаблицаТоваров.Сортировать("Наименование Возр");. Для обратного порядка укажите «Убыв». Метод сортирует таблицу в памяти, что удобно для небольших наборов данных, но на сотнях тысяч строк предпочтительнее упорядочивание в запросе.

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

Особые случаи: иерархия, представления и внешние обработки

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

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

Маршрут решения

Как выбрать способ сортировки

Нужно быстро упорядочить список на экранеЩёлкните по заголовку колонки или используйте «Ещё» → «Настроить список»
Нужен постоянный порядок в отчётеЗадайте сортировку в настройках отчёта и сохраните вариант
Нужно упорядочить данные в коде или обработкеИспользуйте УПОРЯДОЧИТЬ ПО в запросе или метод Сортировать() таблицы значений
Порядок должен быть одинаковым при печатиНастройте сортировку в макете печатной формы или в запросе, который её формирует
Контрольные точки

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

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

Элементы идут от А до Я, рядом с заголовком колонки — стрелка вверх

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

Порядок не изменился или нарушен внутри групп — проверьте настройки сортировки и иерархию

Направление сортировки
Норма

В настройках списка поле «Наименование» с направлением «По возрастанию»

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

Добавлено несколько полей, верхнее перекрывает нужное

Поведение после перезапуска
Норма

Порядок сохраняется при повторном открытии формы

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

Настройки сбрасываются — проверьте права и сохранение настроек формы

Ответы на частые вопросы

Как отсортировать список по алфавиту в обратном порядке (от Я до А)?

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

Почему цифры в начале наименований сортируются не как числа?

Наименование — строковое поле, поэтому сравнение идёт посимвольно: «10 шт» окажется раньше «2 шт». Чтобы получить числовой порядок, нужно сортировать по отдельному числовому реквизиту или в запросе приводить значение к числу.

Сортировка в списке изменит данные в базе?

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

Как сделать, чтобы сортировка сохранялась для всех пользователей?

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

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

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

Почему УПОРЯДОЧИТЬ ПО в запросе динамического списка не срабатывает?

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

Итог

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

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