Список документов по дате в 1С: порядок строк, период и отбор
Содержание
Чтобы отсортировать список по дате, нажмите на заголовок колонки с датой: стрелка рядом с названием покажет направление. Повторный щелчок меняет порядок на обратный. Отобрать документы за период можно через выбор периода над списком, через отбор по значению в текущей колонке или через окно настройки списка. Все три способа работают в 8.3 с интерфейсом «Такси» и одинаково в «Бухгалтерии», ЗУП и «Управлении торговлей».
Ниже по порядку: быстрые приёмы для повседневной работы, настройка списка «под себя», особенности периодических регистров и отбор из кода для разработчиков.
С чего начать: что хранится в дате документа
Дата в 1С хранится вместе со временем. Документ от 31.03 может иметь время 00:00:01 или 18:45:00, и от этого зависит, попадёт ли он в отбор. Это источник половины недоразумений с периодами, о которых речь пойдёт ниже.
Из этого следует важное правило: порядок строк в списке документов определяется не только датой, но и временем. Два документа за один день стоят так, как велит время. Поэтому «проведённый вчера» может оказаться выше «проведённого сегодня», если у него позднее время в дате.
Перед настройкой выясните, что именно вам нужно:
- 🔹 просто увидеть свежие документы наверху — хватит сортировки по убыванию;
- 🔹 выбрать документы за месяц или квартал — нужен отбор по периоду;
- 🔹 всегда открывать список в одном и том же виде — нужна сохранённая настройка;
- 🔹 вывести данные программно — нужен код (последний раздел).
Сортировка списка по дате щелчком по заголовку
Самый быстрый способ — щёлкнуть по заголовку колонки «Дата». Список перестроится: сначала самые ранние или самые поздние документы. Направление показывает стрелка около названия.
Порядок действий:
- Откройте нужный список, например
Продажи → Реализации (акты, накладные, УПД)в «Бухгалтерии» илиПокупки → Поступление (акты, накладные, УПД). - Щёлкните по заголовку колонки «Дата» один раз — получите один порядок.
- Щёлкните ещё раз — порядок станет обратным.
Хотите видеть новое сверху — выберите убывание. В большинстве типовых списков документов 1С по умолчанию так и стоит: свежие документы вверху.
Сортировка по щелчку действует до закрытия списка, а в ряде случаев запоминается в пользовательских настройках. Если после повторного открытия порядок сбросился, закрепите его через окно настройки списка (см. раздел про сохранение).
Что делать, если колонка не сортируется
Не по всем колонкам можно упорядочить список. Колонки с составным типом значения или вычисляемые при выводе строки иногда не реагируют на щелчок. Для колонки «Дата» такого обычно нет, но в нетиповых и доработанных конфигурациях разработчик мог отключить сортировку по ней. Тогда используйте окно настройки списка: там порядок задаётся отдельно.
Отбор по периоду: быстрый выбор и точные границы
Над списком документов часто есть кнопка выбора периода. Она открывает окно, где задаются начало и конец. Можно выбрать стандартный интервал (месяц, квартал, год) или ввести даты вручную.
Типовая последовательность:
- Найдите над списком поле или кнопку периода (во многих списках она отображает текущий интервал, например «Март 2025 г.»).
- Откройте окно и выберите интервал либо введите «С» и «По».
- Подтвердите выбор — список обновится.
Если в вашем списке такой кнопки нет, период можно задать через отбор по колонке «Дата» (см. следующий раздел). Наличие кнопки периода зависит от конкретного списка: у справочников её нет, у журналов и списков документов — как правило, есть.
Граница «по» и время в дате
Классическая ловушка: вы выбрали период с 01.03 по 31.03 вручную через отбор по дате «меньше или равно 31.03.2025», а документы последнего дня пропали. Причина: условие сравнивает дату вместе со временем. Значение «31.03.2025» трактуется как 31.03.2025 00:00:00, и всё, что оформлено позже полуночи, отсекается.
Решение:
- используйте штатный выбор периода — он сам учитывает конец последнего дня;
- при ручном условии задавайте конечную дату вместе со временем 23:59:59;
- в коде применяйте
КонецДня(), а не просто дату.
Для сверки возьмите один документ с позднего вечера последнего дня периода и проверьте, что он попадает в выборку.
Отбор по значению в текущей колонке
Когда нужно быстро показать только документы за один день или оставить строки с конкретным контрагентом, помогает отбор по значению в текущей ячейке. Поставьте курсор в ячейку, значение которой нужно оставить, и нажмите Ctrl+Alt+F. Список покажет только строки с таким же значением в этой колонке.
Как снять такой отбор: Ctrl+Alt+Shift+F либо крестик на плашке отбора над списком, если она отображается.
Для колонки с датой этот приём работает по точному значению, включая время. Отобрать один календарный день через него получится не всегда: если у документов разное время, строки не совпадут. Для одного дня надёжнее задать период с 00:00:00 до 23:59:59.
Сочетания клавиш удобно сравнивать с мышиными способами:
| Действие | Клавиши | Когда удобно |
|---|---|---|
| Отбор по значению в текущей колонке | Ctrl+Alt+F | Одна конкретная ячейка, например контрагент |
| Отменить отбор | Ctrl+Alt+Shift+F | Вернуть полный список |
| Поиск по списку | Ctrl+F | Найти строку, не сужая список |
| Щелчок по заголовку | мышь | Быстро упорядочить по дате |
Если список «пропал» (в нём пусто, хотя документы точно есть), первым делом проверьте, не остался ли включённым отбор или выбранный период. Это самая частая причина.
Два приёма для работы с большими списками
В базе, где за год накапливаются десятки тысяч документов, открытие списка без ограничения по периоду занимает заметное время. Поэтому полезно привыкнуть к двум приёмам.
- 🔹 Сразу сужайте период до нужного месяца, а не листайте список вручную: так меньше нагрузка на базу и проще найти строку.
- 🔹 Для поиска конкретного документа используйте
Ctrl+F: поиск идёт по значению в текущей колонке и не меняет состав списка, поэтому отбор потом не придётся снимать.
Если нужно найти документ по дате без точного времени, поиск по колонке «Дата» тоже зависит от формата значения. Проще сузить период до одного дня и найти документ глазами.
Настройка списка: отбор, порядок и сохранение
Для постоянных условий откройте меню «Ещё» в командной панели списка и выберите команду настройки списка. В окне настройки задаются отбор по любым полям и порядок строк.
Что можно сделать по дате:
- Добавьте условие по полю «Дата»: например, «больше или равно» и нужное значение, чтобы скрыть старые документы.
- Задайте порядок: поле «Дата», направление «по убыванию».
- Добавьте второе поле порядка, если нужно упорядочить документы одного дня, например по номеру.
- Закройте окно с применением изменений.
Настройки списка хранятся отдельно для каждого пользователя. Вы поменяли — коллега ничего не заметит. Это удобно, но объясняет жалобы вида «у меня список один, у бухгалтера другой»: у каждого свои сохранённые отборы и порядок.
Если нужно вернуть список к исходному виду, в том же меню настроек есть команда возврата к стандартным настройкам. Она сбрасывает только ваши личные изменения.
Условия с динамической датой
Часто нужен не фиксированный период, а «последние 30 дней». Штатный отбор в окне настройки сравнивает с конкретным значением, а не со сдвигом от текущей даты. Поэтому для скользящего периода есть два пути:
- 🔹 вручную менять дату начала при открытии списка;
- 🔹 вынести условие в код формы (см. раздел про программную настройку), где граница считается от
ТекущаяДата().
Для отчётов (не списков) скользящие периоды решаются стандартной датой в настройках варианта отчёта — это отдельная тема.
Периодические регистры сведений: как читать даты
В списке записей периодического регистра сведений (например, курсы валют или цены номенклатуры) колонка «Период» означает дату, с которой действует значение. Запись действует от этой даты до появления следующей.
Из этого вытекают практические правила:
- 🔹 на вопрос «какой курс был 15.03» отвечает не запись с датой 15.03, а последняя запись с датой не позже 15.03;
- 🔹 сортировка по убыванию периода кладёт наверх самое свежее действующее значение;
- 🔹 отбор «Период равно 15.03.2025» вернёт пустоту, если запись в этот день не вносили.
Чтобы найти значение на дату, отсортируйте список по убыванию периода и найдите первую строку, дата которой не позже искомой. Для регистров с измерениями (например, «Курс» по каждой валюте) сначала отберите нужное значение измерения, потом ищите по дате.
Если нужно увидеть только действующие значения на сегодня, одной сортировкой не обойтись: в списке останутся и старые записи. В отчётах такие данные получают срезом последних на дату; в обычном списке это делается просмотром сверху вниз по отфильтрованной группе.
Программная настройка списка в режиме предприятия
Если вы дорабатываете форму в конфигураторе, отбор и порядок динамического списка меняются из кода. Объект Список формы содержит коллекции Отбор и Порядок. Пример: показывать только документы за последние 30 дней и сортировать по убыванию даты.
&НаСервере
Процедура НастроитьСписокПоДате()
НачалоПериода = НачалоДня(ТекущаяДата()) - 30 * 86400;
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
ЭлементОтбора.ПравоеЗначение = НачалоПериода;
ЭлементОтбора.Использование = Истина;
ЭлементПорядка = Список.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Дата");
ЭлементПорядка.НаправлениеСортировки = НаправлениеСортировкиКомпоновкиДанных.Убывание;
ЭлементПорядка.Использование = Истина;
КонецПроцедуры
Расчёт даты: 86400 секунд в сутках, 30 суток вычитаются из начала сегодняшнего дня. Для конечной границы периода используйте КонецДня(Дата), иначе последний день потеряет вечерние документы.
Три момента, на которых спотыкаются чаще всего:
- Процедуру вызывают при создании формы на сервере, а не при каждом открытии, иначе условия копятся: каждый вызов добавляет ещё один элемент.
- Перед добавлением отбора очищайте предыдущие элементы:
Список.Отбор.Элементы.Очистить(), если они ваши и не нужны. - Поле отбора называют так, как оно называется в запросе динамического списка. У нестандартной формы поле даты может называться иначе.
Правки типовых форм без расширения ломают обновление конфигурации. Для типовых конфигураций вносите изменения через расширение.