Формат даты 1С использование на примерах

В статье представлены способы задать формат даты 1с 8. Для этого необходимо использовать форматную строку. Редактировать ее можно либо вручную, либо при помощи специального конструктора.

Форматные строки используются в:

  • Программном коде, в функции Формат;
    Формат(<Значение>, <ФорматнаяСтрока>)
  • Свойствах полей формы, в свойстве ФорматРедактирования;
    Формат редактирования 1с
  • Оформлении поля СКД. Схема компоновки -> вкладка Поля -> для нужного поля столбец Оформление -> Формат;
    Формат даты 1с СКД
  • Свойствах ячейки макета.

При использовании функции Формат, следует помнить, что она возвращает строковое значение, т.е. представление переданной даты в определенном формате.

Формат даты 1с при помощи форматной строки

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

В свойствах полей, ячеек макета, конструктор форматной строки вызывается нажатием кнопки. А в коде он вызывается аналогично конструктору запроса: контекстное меню -> Конструктор форматной строки…

конструктор форматной строки 1с
То есть правильный вызов конструктора для метода Формат, выглядит так:

  • Следует описать функцию Формат, без форматной строки:
    ФорматДата = Формат(Дата, "");
  • Поставить курсор между кавычек, вызвать конструктор;
  • После окончания работы с конструктором нажать ОК.
    ФорматДата = Формат(Дата, "ДФ=dd.MM.yyyy");

Конструктор форматной строки

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

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

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

  • д (d) — день месяца (цифрами) без лидирующего нуля;
  • дд (dd) — день месяца (цифрами) с лидирующим нулем;
  • ддд (ddd) — краткое название дня недели;
  • дддд (dddd) — полное название дня недели;
  • М (m) — минута без лидирующего нуля;
  • ММ (mm) — минута с лидирующим нулем;
  • МММ (MMM) — краткое название месяца *);
  • ММММ (MMMM) — полное название месяца *);
  • к (q) — номер квартала в году;
  • г (y) — номер года без века и лидирующего нуля;
  • гг (yy) — номер года без века с лидирующим нулем;
  • гггг (yyyy) — номер года с веком;
  • ч (h) — час в 12-часовом варианте без лидирующих нулей;
  • чч (hh) — час в 12-часовом варианте с лидирующим нулем;
  • Ч (H) — час в 24-часовом варианте без лидирующих нулей;
  • ЧЧ (HH) — час в 24-часовом варианте с лидирующим нулем;
  • м (m) — минута без лидирующего нуля;
  • мм (mm) — минута с лидирующим нулем;
  • с (s) — секунда без лидирующего нуля;
  • сс (ss) — секунда с лидирующим нулем;
  • вв (tt) — отображение половины дня AM/PM (действительно только для языков конфигурирования, поддерживающих 12 часовой вариант представления времени).

Также можно добавлять в форматную строку произвольный текст, используя кавычки (если добавляемый текст не может быть интерпретирован, как составная часть даты, тогда можно обойтись и без кавычек):

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

Итоговый текст такой форматной строки будет выглядеть следующим образом:

ФорматДата = Формат(Дата, "ДФ='dd.MM.yyyy ""г.""'");

Примеры использования формата дат

Приведем несколько примеров форматирования даты.

Дата без времени (05.10.2020)

ФорматДата = Формат(Дата, "ДЛФ=D");

Только время (12:35:50)

ФорматДата = Формат(Дата, "ДЛФ=T");

Месяц текстом, год полностью (Октябрь 2020)

ФорматДата = Формат(Дата, "ДФ='ММММ гггг'");

Месяц текстом кратко, год без тысячелетия (окт. 20)

ФорматДата = Формат(Дата, "ДФ='МММ гг'");

Месяц числом, через точку год полностью (10.2020)

ФорматДата = Формат(Дата, "ДФ=ММ.гггг");

Склонение названия месяца

При форматировании даты не всегда достаточно именительного падежа. Иногда требуется указать, к примеру, что отчет сформирован в «Октябре 2020 г.», а не в «Октябрь 2020 г.». Для решения этой проблемы подойдет серверная строковая функция ПолучитьСклоненияСтроки (доступна, начиная с версии платформы 8.3.13).

ПолучитьСклоненияСтроки(<СклоняемаяСтрока>, <ОписаниеСтроки>, <ФорматнаяСтрока>);

Функция возвращает массив вариантов склонения строки. Подробнее прочитать про заполнение параметров можно в синтаксис помощнике.

Пример. Отформатировать дату в «месяц год», месяц в предложном падеже вывести в виде сообщения.

&НаСервереБезКонтекста
Процедура СклонениеПериодаНаСервере(Дата)

    Месяц = Формат(Дата, "ДФ='MMMM yyyy'");
	
    Описание = "ПЛ=Мужской";
    ФорматнаяСтрока = "ПД=Предложный";
    МассивСклонение = ПолучитьСклоненияСтроки(Месяц, Описание, ФорматнаяСтрока);

    Если Не МассивСклонение.Количество() = 0 Тогда
        МесяцПредложный = МассивСклонение[0];
    Иначе
        МесяцПредложный = Месяц;
    КонецЕсли;	
	
    ШаблонСообщения = "Отчет сформирован в %1";
    ТекстСообщения = СтрШаблон(ШаблонСообщения, МесяцПредложный);
	
    Сообщить(ТекстСообщения);
	
КонецПроцедуры

Добавить комментарий

Ваш адрес email не будет опубликован.