Обучение и Решения · 10 мин
Как в 1С сделать сортировку по дате
Как отсортировать по дате документы, справочники и отчёты в 1С: сортировка в журналах, динамических списках, СКД и запросах. Пошагово с примерами и типичными ошибками.
Сортировка по дате в 1С — одна из самых частых задач: документы в журнале нужно видеть от новых к старым, в отчёте — в хронологическом порядке, а в запросе — по убыванию или возрастанию. Способ зависит от того, где вы работаете: в пользовательском режиме «1С:Предприятие», в конструкторе отчёта на СКД или в конфигураторе при написании запроса.
В большинстве типовых конфигураций (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) сортировка по дате доступна без программирования — через настройки списка или отчёта. Программная сортировка потребуется, когда вы разрабатываете собственный отчёт, обработку или дорабатываете форму списка.
Ниже разобраны все основные сценарии: сортировка журнала документов, списка справочника, отчёта на СКД, динамического списка и запроса на встроенном языке. Для каждого сценария указаны точные действия и способы проверить результат.
Сортировка документов по дате в журнале
Самый простой случай — журнал документов (например, «Поступления товаров и услуг» или «Все документы»). По умолчанию большинство журналов уже отсортированы по дате: новые документы располагаются внизу списка либо сверху, в зависимости от настроек конфигурации.
Чтобы изменить направление сортировки, найдите пиктограмму сортировки в командной панели списка или кликните по заголовку колонки «Дата». В управляемых формах повторный клик по заголовку меняет направление: стрелка вверх — по возрастанию, стрелка вниз — по убыванию. Если сортировка по колонке не срабатывает, используйте настройку списка.
Универсальный путь: в командной панели списка нажмите «Ещё» → «Настроить список». В открывшемся окне перейдите на закладку «Сортировка», добавьте поле «Дата» и выберите направление — «По возрастанию» или «По убыванию». Нажмите «ОК» (или «Готово»), и список перестроится.
- 1Откройте нужный журнал документов
- 2Нажмите «Ещё» → «Настроить список»
- 3На закладке «Сортировка» добавьте поле «Дата»
- 4Выберите направление: по возрастанию или по убыванию
- 5Нажмите «ОК» и проверьте порядок документов в списке
Обратите внимание: настройка списка сохраняется для текущего пользователя. Если после перезапуска программы порядок сбросился, проверьте, не очищаются ли пользовательские настройки при обновлении конфигурации — об этом стоит уточнить у администратора базы.
Сортировка списка справочника по дате
У справочников (контрагенты, номенклатура, сотрудники) поля «Дата» по умолчанию нет — оно появляется, только если в конфигурации для справочника добавлен реквизит с датой (например, «Дата регистрации» или «Дата рождения»). Если такой реквизит есть, сортировка работает так же, как в журнале документов.
Откройте список справочника, нажмите «Ещё» → «Настроить список», на закладке «Сортировка» добавьте нужный реквизит-дату и задайте направление. Если реквизит не виден в списке полей, проверьте, выведен ли он в форму списка и не скрыт ли функциональной опцией.
Стандартные реквизиты «Дата создания» у справочников в типовых конфигурациях обычно отсутствуют. Если хронология создания элементов критична для учёта, такой реквизит добавляется доработкой конфигурации — это задача для разработчика, а не пользовательская настройка.
Сортировка по дате в отчётах на СКД
В отчётах, построенных на системе компоновки данных (а это большинство отчётов типовых конфигураций), сортировка настраивается в окне настроек отчёта. Нажмите «Ещё» → «Изменить вариант» (или кнопку «Настройки» в шапке отчёта) и перейдите на закладку «Сортировка».
Добавьте поле даты — например, «Период», «Дата» или «Документ.Дата», в зависимости от того, какие поля доступны в конкретном отчёте. Укажите направление сортировки. Если поле даты уже присутствует в структуре отчёта как группировка, отдельная сортировка может не потребоваться: группировки по умолчанию упорядочиваются автоматически.
Если сортировка «не работает»
Частая ситуация: поле даты добавлено в сортировку, но строки отчёта идут не по хронологии. Причина почти всегда в том, что сортировка задана на уровне всего отчёта, а внутри группировок действует собственный порядок. Откройте настройки, выделите нужную группировку в дереве структуры и задайте сортировку именно для неё.
Вторая причина — поле даты имеет составной тип или выводится как строка. Строковое представление даты сортируется посимвольно («01.02» окажется раньше «02.01»), поэтому в сортировку следует добавлять именно поле типа «Дата», а не его текстовое представление.
Сортировка по дате в запросе: УПОРЯДОЧИТЬ ПО
Для разработчиков основной инструмент — предложение УПОРЯДОЧИТЬ ПО в тексте запроса. Базовый синтаксис: после выборки данных указывается поле даты и направление. По умолчанию сортировка идёт по возрастанию (ВОЗР), для обратного порядка добавляется ключевое слово УБЫВ.
ВЫБРАТЬ
РеализацияТоваровУслуг.Номер,
РеализацияТоваровУслуг.Дата,
РеализацияТоваровУслуг.Контрагент
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Проведен
УПОРЯДОЧИТЬ ПО
РеализацияТоваровУслуг.Дата УБЫВ
Такой запрос вернёт проведённые реализации, начиная с самых свежих. Если нужно упорядочить по нескольким полям, перечислите их через запятую: сначала по дате, затем по номеру — это полезно, когда у нескольких документов одинаковая дата.
Сортировка документов по моменту времени
Поле «Дата» документа в 1С включает и время, но у документов, созданных в одну секунду, даты совпадают. Для строгой хронологии используйте сортировку по ссылке на документ: УПОРЯДОЧИТЬ ПО Ссылка упорядочивает документы по моменту времени (внутреннему уникальному идентификатору позиции), что гарантирует воспроизводимый порядок даже при совпадающих датах.
УПОРЯДОЧИТЬ ПО
Документ.Дата УБЫВ,
Документ.Ссылка УБЫВСортировка динамического списка в конфигураторе
Если вы разрабатываете собственную форму списка или дорабатываете типовую, порядок по дате задаётся в свойствах динамического списка. Откройте форму в конфигураторе, выделите реквизит «Список», в палитре свойств найдите «Настройка списка» (или «Произвольный запрос») и перейдите на закладку «Порядок».
Добавьте поле «Дата» и установите направление. Если список построен на произвольном запросе, сортировку можно задать прямо в тексте запроса через УПОРЯДОЧИТЬ ПО — но учтите, что пользовательская сортировка по щелчку на заголовке колонки будет корректно работать, только если поле даты доступно для упорядочивания в настройках динамического списка.
Программно порядок динамического списка меняется через свойство Порядок основного реквизита формы: добавляется элемент с указанием поля и направления сортировки. Это удобно, когда порядок должен зависеть от условий — например, для менеджеров показывать новые документы сверху, а для архива — снизу.
Если после доработки формы списка сортировка перестала запоминаться, проверьте, не сбрасывается ли программно настройка порядка в обработчике ПриСозданииНаСервере — код, выполняемый при каждом открытии формы, перезаписывает пользовательские настройки.
Особенности, ограничения и проверка результата
При сортировке по дате в 1С есть несколько нюансов, которые влияют на результат. Во-первых, дата документа хранится с точностью до секунды, поэтому «одинаковые» даты на экране могут отличаться временем — порядок строк рядом друг с другом при этом определяется моментом времени, а не видимым значением.
Во-вторых, в разграниченных по дате запретов базах часть документов может быть недоступна текущему пользователю: список будет отсортирован правильно, но «пропуски» в хронологии — следствие прав доступа, а не ошибки сортировки. В-третьих, при больших объёмах данных сортировка по неиндексированному реквизиту-дате может заметно замедлить формирование списка или отчёта.
Проверить результат просто: откройте список или сформируйте отчёт и убедитесь, что даты идут последовательно в нужном направлении, без «выбивающихся» строк. Для запроса дополнительно проверьте поведение при совпадающих датах — добавьте вторичную сортировку по ссылке или номеру, чтобы порядок был стабильным при каждом выполнении.
Как проверить результат
Даты идут последовательно в заданном направлении
Строки с более поздней датой оказываются выше/ниже ранних
Порядок стабилен при повторном формировании
Строки «прыгают» местами при каждом обновлении
Все документы за период присутствуют
Есть пропуски — проверьте права доступа и отборы
Частые вопросы
Почему в журнале документы с одинаковой датой стоят не по номерам?
Потому что сортировка идёт только по полю «Дата», которое включает время с точностью до секунды, а при полном совпадении — по внутреннему моменту времени. Добавьте в настройку списка второе поле сортировки — «Номер», и порядок станет предсказуемым.
Можно ли отсортировать по дате справочник, у которого нет реквизита с датой?
Нет, пользовательскими настройками — нельзя: сортировать можно только по существующим полям. Варианты: отсортировать по коду (если коды присваивались последовательно, это приблизит к хронологии создания) или заказать доработку — добавление реквизита «Дата создания».
Как в запросе вывести сначала самые новые документы?
Используйте конструкцию УПОРЯДОЧИТЬ ПО Дата УБЫВ. Ключевое слово УБЫВ задаёт сортировку по убыванию, поэтому документы с максимальной датой окажутся в начале выборки. Для стабильности добавьте вторичное упорядочивание по ссылке.
Почему сортировка по дате в отчёте выглядит как сортировка по алфавиту?
Значит, в сортировку попало строковое представление даты, а не само поле типа «Дата». Откройте настройки отчёта и замените поле сортировки на поле даты из доступных полей запроса — обычно оно называется «Период» или «Дата» без форматирования.
Сохранится ли настройка сортировки для других пользователей?
Нет, настройки списка и отчётов сохраняются персонально. Чтобы задать порядок для всех, нужно либо сохранить вариант отчёта как общий (если у вас есть соответствующие права), либо задать сортировку в конфигураторе на уровне формы или схемы компоновки.
Влияет ли сортировка по дате на скорость работы?
В больших базах — да. Упорядочивание по неиндексированному полю заставляет СУБД сортировать весь набор данных. Дата документа в типовых конфигурациях обычно индексирована, а вот произвольные реквизиты-даты — не всегда; при заметных задержках вопрос индексирования решает разработчик.
Что важно запомнить
В пользовательском режиме сортировка по дате настраивается через «Ещё → Настроить список» или закладку «Сортировка» в настройках отчёта. В запросах используется УПОРЯДОЧИТЬ ПО Дата с направлением ВОЗР или УБЫВ, а для стабильного порядка добавляется сортировка по ссылке. Проверяйте результат на документах с совпадающими датами и учитывайте влияние прав доступа на полноту списка.