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

Быстрый старт · 11 мин

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

Пошаговая инструкция по настройке сортировки списков документов и справочников по дате в 1С: через меню «Ещё», настройку списка и динамический запрос. Разбор ошибок.

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

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

Ниже разобраны все рабочие варианты: от быстрой сортировки кликом по колонке до настройки порядка в запросе динамического списка, а также типичные ошибки, из-за которых сортировка «сбрасывается» или работает не так, как ожидается.

Быстрая сортировка кликом по заголовку колонки

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

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

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

Сортировка через меню «Ещё»

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

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

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

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

Постоянная сортировка через «Настроить список»

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

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

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

Сортировка в динамическом списке с произвольным запросом

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

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

Разработчику для сортировки динамического списка по дате нужно либо добавить упорядочивание в текст запроса, либо задать порядок программно через свойство списка. Пример программной установки сортировки:

1c
ЭлементПорядка = Список.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Дата");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
ЭлементПорядка.Использование = Истина;

Важный нюанс: если в запросе динамического списка уже есть УПОРЯДОЧИТЬ ПО без ключевого слова АВТОУПОРЯДОЧИВАНИЕ, пользовательская сортировка будет работать только по полям, входящим в это упорядочивание. Чтобы дать пользователю свободу, разработчик добавляет АВТОУПОРЯДОЧИВАНИЕ или убирает жёсткий порядок из запроса.

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

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

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

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

Сравнение вариантов

Клик по заголовку колонки

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

Ещё → Сортировать список

Подходит для сортировки по нескольким полям. Работает там, где недоступен клик по заголовку, но тоже может сбрасываться.

Ещё → Настроить список

Постоянная сортировка, сохраняется для пользователя. Оптимальный вариант для ежедневной работы.

Программная настройка порядка

Для разработчика, когда пользовательских средств недостаточно. Требует аккуратности с запросом динамического списка.

Почему сортировка сбрасывается или не работает

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

Вторая типичная ситуация — сортировка вроде бы применена, но порядок выглядит странным: документы идут не по календарю. Проверьте, не сортируете ли вы по колонке «Номер» вместо «Дата»: номера документов — это строки, и «10» окажется раньше «2». Также убедитесь, что в списке нет активной группировки — при группировке сортировка применяется внутри каждой группы, а не ко всему списку.

Типичные ошибки
01
Сортировка по номеру вместо даты: номера — строки, поэтому порядок получается лексикографическим, а не хронологическим
02
Ожидание сохранения разовой сортировки: клик по заголовку действует только в текущем сеансе формы, для постоянного порядка нужна настройка списка
03
Игнорирование активной группировки: сортировка работает только внутри групп, и список выглядит неупорядоченным
04
Попытка сортировать динамический список с жёстким УПОРЯДОЧИТЬ ПО без АВТОУПОРЯДОЧИВАНИЯ: платформа молча игнорирует пользовательскую настройку
Контрольные точки

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

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

При сортировке по убыванию сверху самый свежий документ, при возрастании — самый ранний

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

Порядок не изменился после применения настройки

Стрелка у заголовка колонки «Дата»
Норма

Стрелка присутствует и указывает выбранное направление

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

Стрелки нет — сортировка не применилась или заблокирована

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

Порядок сохранился (для настройки через «Настроить список»)

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

Сортировка сбросилась к исходной

Когда нужна помощь разработчика

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

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

Итог

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

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

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

Почему клик по заголовку колонки «Дата» ничего не меняет?

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

Как сделать, чтобы новые документы всегда были сверху?

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

Сортировка по дате работает, но документы одного дня идут вразнобой. Это ошибка?

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

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

Вы сортируете по строковому полю — чаще всего по номеру документа, а не по дате. Строки сравниваются посимвольно, поэтому «10» оказывается раньше «2». Переключите сортировку именно на колонку «Дата», которая имеет тип «Дата».

Как вернуть исходный порядок списка?

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

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

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