Как изменить язык вывода даты в форматной строке 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При формировании печатных форм и макетов документов часто возникает необходимость вывести дату на иностранном языке (например, на английском), чтобы названия месяцев отображались как «January», «February» и так далее. Рассмотрим, как правильно задать язык вывода даты в 1С с помощью функции Формат() и других встроенных механизмов платформы.

Указание кода языка в функциях форматирования

Разберем базовый вариант вызова функции Формат(). По умолчанию платформа 1С использует язык текущего сеанса пользователя. Чтобы принудительно задать нужный язык для конкретной даты, необходимо добавить в параметр форматной строки специальный ключ L (или русскоязычный аналог Л), указывающий код локали.

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

Параметры.Дата = Формат(ЭтотОбъект.Дата, "ДЛФ=DD; L=en");

В данном примере параметр ДЛФ=DD задает длинный формат даты, а параметр L=en переключает вывод наименования месяца и других элементов на английский язык. При необходимости можно указывать локаль с детализацией страны, например L=en_US или L=en_GB, что также влияет на порядок отображения элементов даты и используемые разделители:

Параметры.Дата = Формат(ЭтотОбъект.Дата, "ДФ='dd MMMM yyyy'; L=en_US");

Настройка формата непосредственно в макете документа

Если нет необходимости писать код во внешнем модуле, проанализируем альтернативный вариант — работу с ячейкой табличного документа напрямую в макете печатной формы:

  1. Откроем макет печатной формы и выделим ячейку, в которую выводится дата.
  2. В свойствах ячейки установим тип заполнения Параметр.
  3. В поле Формат нажмем кнопку открытия конструктора форматной строки (кнопка с тремя точками).
  4. В открывшемся конструкторе выберем тип данных Дата, перейдем в поле выбора языка и укажем необходимый язык (например, английский).

После этого в коде модуля достаточно будет передать в параметр чистое значение типа Дата без предварительного применения функции Формат():

Параметры.Дата = ЭтотОбъект.Дата;

Использование многоязычности через функцию НСтр

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


Параметры.Дата = Формат(ЭтотОбъект.Дата, НСтр("ru='ДЛФ=DD'; en='ДЛФ=DD; L=en'"));

Особенности и частые ошибки при форматировании дат

Выясним причину возможных проблем при работе с произвольным форматом дат в 1С:

Регистр символов в шаблоне даты: При использовании формата ДФ помните, что символы шаблона чувствительны к регистру. Например, MMMM выводит полное наименование месяца, MM — двухзначный номер месяца, а mm — минуты. Указание символов mm вместо MM приведет к выводу минут вместо месяца.

Корректность кода локали: Если параметр L= содержит ошибочный или неподдерживаемый код языка, платформа 1С проигнорирует его и вернет дату на языке сеанса по умолчанию.

← На главную