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

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

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

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

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

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

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

Сортировка по контрагенту в форме списка документов

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

В открывшемся окне перейдите на вкладку «Сортировка». В левой части найдите поле «Контрагент» и перенесите его в правую часть (двойным щелчком или кнопкой со стрелкой). Установите направление — «По возрастанию» для порядка от А до Я. Нажмите «ОК» или «Завершить редактирование» — список перестроится.

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

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

Сортировка по контрагенту в отчётах

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

Если отчёт построен с группировками, сортировка работает внутри каждой группы. Например, если отчёт сгруппирован по организациям, а внутри — по контрагентам, то сортировка по контрагенту упорядочит строки внутри каждой организации, а не весь отчёт целиком. Чтобы изменить логику, сначала отредактируйте структуру группировок на вкладке «Структура» или «Группировка».

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

Сортировка в динамических списках

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

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

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

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

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

ВЫБРАТЬ

РеализацияТоваровУслуг.Ссылка КАК Документ,

РеализацияТоваровУслуг.Контрагент КАК Контрагент,

РеализацияТоваровУслуг.СуммаДокумента КАК Сумма

ИЗ

Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

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

Контрагент.Наименование

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

Для сортировки по убыванию добавьте ключевое слово УБЫВ: УПОРЯДОЧИТЬ ПО Контрагент.Наименование УБЫВ. Можно комбинировать несколько полей — например, сначала по контрагенту, затем по дате документа: УПОРЯДОЧИТЬ ПО Контрагент.Наименование, РеализацияТоваровУслуг.Дата.

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

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

Сортировка в справочнике «Контрагенты»

Иногда задача ставится иначе: нужно упорядочить сам справочник контрагентов. Откройте справочник (раздел «Справочники → Контрагенты» или «Покупатели и поставщики» в зависимости от конфигурации) и кликните по заголовку колонки «Наименование» — список отсортируется по алфавиту. Повторный клик меняет направление.

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

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

Как проверить результат и что может пойти не так

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

Частая ситуация: сортировка вроде бы включена, но порядок «странный». Типичные причины — в наименованиях есть ведущие пробелы, часть названий введена латинскими буквами, визуально похожими на кириллицу, или наименования начинаются с кавычек и аббревиатур типа ООО, ИП. Это проблема данных, а не механизма сортировки: система честно упорядочивает строки по кодам символов.

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

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

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

Контрагенты идут по алфавиту, цифры и латиница — в начале

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

Алфавитный порядок нарушается без видимой причины

Наличие поля в настройках сортировки
Норма

«Контрагент» доступно для выбора

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

Поля нет в списке — вероятно, ограничение динамического списка

Сортировка в запросе
Норма

Используется Контрагент.Наименование

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

Указано просто Контрагент — порядок по ссылке, не по алфавиту

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

Что выбрать в разных ситуациях

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

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

Как выбрать действие

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

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

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

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

Почему сортировка по контрагенту не работает в журнале документов?

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

Как отсортировать по контрагенту, а внутри — по дате документа?

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

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

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

Сохранится ли настройка сортировки после закрытия программы?

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

Можно ли отсортировать контрагентов по ИНН?

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

Как отменить сортировку и вернуть порядок по умолчанию?

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