Как указать и форматировать даты в 1С: руководство для разработчиков
Чтобы корректно указать и форматировать даты в 1С, используйте строгие строковые литералы вида 'ГГГГММДД' в коде, функцию Формат с параметрами ДЛФ или ДФ для вывода, а также встроенные настройки свойств элементов формы.
Оглавление
Задание даты в коде (Литералы)
Для жесткого задания конкретного значения даты в программном коде используется литерал типа «Дата». Он представляет собой строку цифр в одинарных кавычках вида 'ГГГГММДДччммсс'.
В этой записи обязательно указываются год, месяц и день. Время (часы, минуты, секунды) можно опустить, если оно не требуется для логики программы.
- Пример даты без времени: 1 января 2023 года задается как
'20230101'. - Пример даты со временем: 1 января 2023 года, 15:30:00 задается как
'20230101153000'. - Для получения пустой даты или начала отсчета используется литерал
'00010101'.
В языке запросов 1С для указания дат применяется ключевое слово ДАТАВРЕМЯ(Год, Месяц, День, ...) вместо строкового литерала.
Форматирование даты для вывода
Для преобразования значения даты в удобочитаемую строку применяется функция Формат(Значение, ФорматнаяСтрока). Форматная строка состоит из параметров, разделенных точкой с запятой, например: "ДФ=dd.MM.yyyy; ДЛФ=Д".
Основные параметры форматирования:
- ДЛФ (Локальный формат даты): использует настройки операционной системы пользователя. Значение
Двыводит дату цифрами (например, 01.01.2024), аДД— длинный формат с названием месяца прописью (1 января 2024 г.). Использование локального формата рекомендуется стандартами разработки для корректного отображения у пользователей из разных стран. - ДФ (Произвольный формат даты): позволяет задать точную маску вывода независимо от системных настроек. Например,
Формат(Дата, "ДФ=dd MMMM yyyy")вернет строку «08 апреля 2024».
Настройка формата в интерфейсе без кода
В элементах формы и макетах печатных форм формат можно задать через свойства элемента без использования программного кода. В конфигураторе это делается через свойство «Формат» на вкладке параметров элемента формы или ячейки макета.
Также можно использовать элемент управления «Дата (Ссылка)», который позволяет выбрать формат отображения непосредственно в списке документов без программирования.
Справочник параметров форматирования
В функции Формат для параметра ДФ доступны следующие спецификаторы:
| Спецификатор | Описание | Пример вывода |
|---|---|---|
д или dd | День | 08 |
М или ММ | Месяц цифрами | 04 |
МММ или ММММ | Месяц буквами | апреля |
гг или гггг | Год | 2024 |
ч, мм, сс | Время (часы, минуты, секунды) | 15:30:00 |
Частые ошибки
- Использование строкового литерала в языке запросов: в запросах необходимо применять функцию
ДАТАВРЕМЯ, а не строковые литералы. - Пропуск обязательных частей даты в литерале: в литерале типа «Дата» всегда должны быть указаны год, месяц и день.
- Игнорирование параметра ДЛФ: жесткая привязка к произвольному формату (ДФ) без учета локальных настроек может привести к некорректному восприятию даты пользователями из других регионов, что противоречит стандартам разработки.
FAQ
Как задать пустую дату в коде 1С?
Для получения пустой даты или начала отсчета времени используется литерал '00010101'.
Можно ли изменить формат даты в списке документов без написания кода?
Да, для этого предназначен элемент управления «Дата (Ссылка)», который позволяет настроить формат непосредственно в списке документов без программирования.
Как сделать так, чтобы месяц выводился прописью?
Используйте произвольный формат с параметром ММММ (например, Формат(Дата, "ДФ=dd MMMM yyyy")) или локальный формат ДД, который автоматически выведет длинный формат с названием месяца.