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

Обучение и Решения · 9 мин

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

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

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

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

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

Сортировка по дате в журнале документов

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

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

Учтите, что у документов в 1С порядок внутри одной даты определяется моментом времени и ссылкой, поэтому документы одного дня иногда располагаются не в порядке номеров — это нормальное поведение платформы, а не ошибка сортировки.

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

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

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

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

Сортировка по дате в запросах

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

ВЫБРАТЬ

Реализация.Ссылка,

Реализация.Дата,

Реализация.Номер

ИЗ

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

ГДЕ

Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода

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

Реализация.Дата

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

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

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

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

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

Где задавать сортировку

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

Быстро и без настроек, но порядок не сохраняется надолго и доступен не во всех списках

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

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

УПОРЯДОЧИТЬ ПО в запросе

Обязательный вариант для программной обработки данных, где порядок влияет на результат

Настройки СКД

Гибкая сортировка в отчётах, которую пользователь может менять без доработки конфигурации

Сортировка таблицы значений и табличной части в коде

Если данные уже загружены в таблицу значений, используйте метод Сортировать. Пример:

ТаблицаДокументов.Сортировать("Дата");        // по возрастанию

ТаблицаДокументов.Сортировать("Дата Убыв"); // по убыванию

ТаблицаДокументов.Сортировать("Дата, Номер"); // по двум колонкам

Для табличной части объекта метод тот же: Объект.Товары.Сортировать("ДатаОтгрузки"). После сортировки табличной части документа не забудьте записать объект, иначе новый порядок строк не сохранится в базе.

Для списка значений применяется метод СортироватьПоЗначению, а для динамического списка в коде формы порядок задаётся через свойство Порядок списка или через настройки компоновки.

bsl
ТЗ.Сортировать("Дата Убыв, Номер"); // сначала новые даты, внутри даты — по номеру

Почему даты сортируются неправильно: типичные проблемы

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

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

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

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

Проверка результата и ограничения

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

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

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

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

Порядок документов в журнале
Норма

Даты идут последовательно по возрастанию или убыванию, стрелка у заголовка колонки соответствует направлению

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

Документы одного периода перемешаны с другим периодом — вероятно, сортировка задана по строковому полю

Выборка запроса
Норма

В консоли запросов строки идут в заданном порядке, пустые даты отфильтрованы или стоят ожидаемо

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

Порядок меняется от запуска к запуску — УПОРЯДОЧИТЬ ПО не задано

Отчёт на СКД
Норма

Группировки и детальные записи упорядочены по дате, настройка сохранена в варианте отчёта

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

Месяцы идут в алфавитном порядке — сортировка задана по форматированному представлению

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

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

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

Почему документы одного дня идут не по номерам?

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

Как отсортировать по дате данные, загруженные из Excel?

Сначала убедитесь, что колонка распозналась как дата, а не как строка. При программной загрузке преобразуйте значения функцией Дата() или через форматную строку, затем вызовите Сортировать("Дата") у таблицы значений. Если сортировать строки, порядок будет алфавитным и неверным.

Можно ли сортировать по дате в отчёте, если поля «Дата» нет в настройках?

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

Чем отличается УПОРЯДОЧИТЬ ПО от ИТОГИ ПО в запросе?

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

Итог

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

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