Как вывести дату в печатную форму 1С в формате «Месяц прописью Год»?

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

При разработке печатных форм в среде 1С:Предприятие часто возникает задача вывода даты не в стандартном цифровом виде, а в более «читабельном» формате — например, «Май 2026». Давайте разберем, как правильно реализовать эту задачу, какие инструменты для этого существуют и каких ошибок стоит избегать.

Использование функции Формат()

Для управления отображением даты в 1С используется универсальная функция Формат(). Она позволяет преобразовать значение типа Дата в строковое представление в соответствии с заданным шаблоном. В качестве первого аргумента функции мы передаем саму дату, а вторым — строку формата.

Рассмотрим основной способ решения нашей задачи:

Чтобы получить название месяца прописью, в строке формата используется параметр ДФ (Дата Формат). Внутри этого параметра мы задаем шаблон. Значение MMMM отвечает за полное название месяца, а yyyy — за вывод года четырьмя цифрами.


// Пример использования для получения строки вида «Май 2026»
Результат = Формат(Дата, "ДФ='MMMM yyyy'");

Если же по условиям вашей задачи требуется выводить год двумя цифрами, просто измените шаблон года на yy:


// Пример использования для получения строки вида «Май 26»
Результат = Формат(Дата, "ДФ='MMMM yy'");

Почему не стоит использовать строковые манипуляции?

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

  1. Избыточность кода: Использование стандартного метода Формат() с параметром ДФ занимает всего одну строку и читается гораздо легче.
  2. Локализация: Метод Формат() автоматически учитывает региональные настройки системы и текущий язык интерфейса, что гарантирует правильное склонение названий месяцев в соответствии с настройками пользователя.
  3. Поддерживаемость: Код, использующий строковые функции для обрезания даты, становится хрупким — любое изменение формата региональных настроек сервера или клиента может привести к непредсказуемому результату.

Особенности выравнивания в табличном документе

При создании макета печатной формы часто хочется добиться выравнивания текста «по ширине», как в текстовых редакторах типа MS Word. Однако важно помнить, что табличный документ 1С имеет свои ограничения:

Свойство ячейки ГоризонтальноеПоложение со значением ПоШирине будет работать только в том случае, если в ячейке находится достаточно длинный текст, содержащий пробелы. 1С не осуществляет «кеглирование» (автоматическую расстановку интервалов между символами) для достижения идеально ровных краев. Если вам необходимо добиться визуального порядка в шапке документа:

Подводим итоги

Для профессиональной разработки печатных форм всегда старайтесь придерживаться использования функции Формат() с параметром ДФ. Это стандартный и наиболее эффективный путь. Использование ДЛФ=DD (Дата Локального Формата) лучше оставить для случаев, когда вам требуется стандартный вывод даты, принятый в системе, без дополнительных трансформаций.

Помните, что форматная строка ДФ='MMMM yyyy' является наиболее гибким инструментом, позволяющим легко менять порядок и отображение частей даты. Экспериментируйте с конструктором форматной строки в конфигураторе, чтобы быстро подбирать нужный вариант вывода данных для пользователей!

← На главную