Скидка до 60% и курс по ИИ в подарок 3 дня 09 :07 :03 Выбрать курс
Код
#статьи

Функция Формат() в 1С: превращаем данные в понятный вид

Функция, которая может изменить всё.

Иллюстрация: Оля Ежак для Skillbox Media

Данные в 1С хранятся в стандартизированном виде: даты — в формате 2025-10-18T00:00:00, числа — в дробном виде с точкой, логические значения — как Истина и Ложь. Такой формат удобен для обработки внутри системы, но плохо подходит для интерфейсов, отчётов и документов, где важна наглядность.

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

Содержание


Что такое функция Формат() и как она устроена

Формат() — это функция встроенного языка 1С, которая преобразует даты, строки, числа или булевы значения в строку заданного вида. При этом она не меняет само значение, а лишь возвращает его представление. Это значит, что внутри программы дата остаётся той датой, а число — тем же числом, просто выводятся они в том виде, какой мы укажем.

Функция имеет стандартный синтаксис:

Формат(Значение, ФорматнаяСтрока)

Аргумент Значение — это данные, которые нужно преобразовать: дата, число, строка или булево значение.

Аргумент ФорматнаяСтрока — шаблон, по которому система выведет результат. Форматная строка может быть простой, например «ЧН=2» (число с двумя знаками после запятой), или сложной, с несколькими параметрами через запятую.

Посмотрим на практике. Напишем код:

Сообщить(Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy"));

Получим дату в понятном виде:

18.10.2025

Также можно форматировать числа. Например, изменим разделитель на запятую и отделим разряд пробелом:

Сообщить(Формат(12345.6, "РТ= ;РД=,"));

Результат:

12 345,60

Часто используемые значения параметров разберём ниже. Так что не переживайте, если пока не понимаете аргументы.

Форматная строка применяется в 1С в тех случаях, когда требуется контролировать внешний вид данных — например, при подготовке отчётов или печатных форм.

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

Чтобы упростить создание шаблона для форматирования данных, в 1С есть встроенный Конструктор форматной строки. Он позволяет выставить параметры отображения без необходимости их запоминать.

Открыть конструктор можно прямо из окна редактирования кода:

  • через главное меню: ТекстКонструктор командной строки;
  • по контекстному меню: Правая кнопка мышиКонструктор командной строки.

В новом окне есть три вкладки — Число, Дата и Булево, каждая из которых отвечает за свой тип данных. Конструктор показывает, какие параметры доступны для каждого из них.

Мы можем настраивать параметры по отдельности и сразу видеть результат форматирования в нижней части окна в блоке Пример. После нажатия ОК появляется код, который можно редактировать вручную в редакторе.

Создаём шаблон форматной строки для числа, в котором будут использоваться разделители групп в виде пробела и дробной части в виде запятой, а точность числа — два знака после запятой. Результат выделен красной рамкой в нижней части окна
Скриншот: «1С: Предприятие» / Skillbox Media

С помощью конструктора можно работать не только с кодом, но и с полями ввода в пользовательских формах. Для этого выберем и откроем конкретную форму, выберем нужное поле и в палитре свойств нажмём кнопку у поля Формат. Откроется уже знакомое окно с параметрами для разных типов данных.

Задаём формат данных для пользовательской формы
Скриншот: «1С: Предприятие» / Skillbox Media

Форматная строка всегда должна соответствовать типу данных, который мы передаём в функцию. Например, шаблон для чисел не подойдёт для работы с датами.

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

Например:

Если ТипЗнч(Элемент) = Тип("Число") Тогда
    ТекстДляВывода = Формат(Элемент, "ЧД=2");
    Сообщить(ТекстДляВывода);
КонецЕсли;

В этом примере форматирование будет применяться только для данных с типом Число. Все другие варианты сохранят свой изначальный формат.

Форматирование даты и времени

Форматирование даты чаще всего используется в отчётах и печатных формах: оно делает документы понятнее для пользователей. Кроме того, если не указать формат даты, 1С может использовать региональные настройки системы. В итоге у одного пользователя дата может отображаться как 10.03.2025, а у другого — 03.10.2025. Чтобы избежать путаницы, всегда следует указывать шаблон явно.

Есть два варианта настройки формата даты: общий и с учётом параметров локализации. Локализация — это указание системе, что она должна использовать данные конкретного региона. Они задают привычные для местного пользователя формат даты, времени, чисел и названия месяцев.

Точный формат даты и времени

Этот вариант представления данных можно выбрать в конструкторе в поле Формат даты (параметр ДФ). Он задаёт точный вид, в котором должна отображаться дата, и не зависит от региональных настроек, поэтому вывод всегда будет одинаковым.

Если указать dd.MM.yyyy, любая дата примет форму вида 17.11.2025, независимо от локализации.

Скриншот: «1С: Предприятие» / Skillbox Media

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

Обозначения выглядят так:

  • г — год в кратком виде;
  • гггг — год полностью;
  • М — номер месяца без ведущего нуля;
  • ММ — номер месяца с ведущим нулём;
  • MMMM — месяц прописью;
  • д — день месяца без ведущего нуля;
  • дд — день с ведущим нулём;
  • ддд — день недели сокращённо (Пн, Вт, Ср и так далее);
  • дддд — день недели полностью;
  • к — номер квартала;
  • ч — час (от 0 до 12);
  • Ч — час от 0 до 24;
  • м — минута;
  • с — секунда.

В форматной строке символы могут использоваться с разделителями. Обычно это пробел, слеш, точка, дефис и другие.

Например:

Сообщить(Формат(ТекущаяДата(), "ДФ=дд/ММ/гггг"));  
 //17/11/2025
Сообщить(Формат(ТекущаяДата(), "ДФ=дд ММММ гггг, дддд")); 
 //17 ноября 2025, понедельник 
Сообщить(Формат(ТекущаяДата(), "ДФ=к") + " квартал");
 //4 квартал 
Сообщить(Формат(ТекущаяДата(), "ДФ=ЧЧ:мм:сс")); 
 //16:22:15

Локальный формат даты и времени

Локальный формат задаётся с помощью параметра ДЛФ. Он использует региональные настройки информационной базы (КонфигураторАдминистрированиеРегиональные установки информационной базы) и данные параметра Язык (Страна). Благодаря этому один и тот же программный объект может выглядеть по-разному у пользователей из разных стран в соответствии с их обычным способом записи дат.

Скриншот: «1С: Предприятие» / Skillbox Media

Например.

Дата с месяцем прописью на русском:

Сообщить(Формат(ТекущаяДата(), "ДЛФ=DD"));
//Результат: 17 ноября 2025 г.

На греческом:

Сообщить(Формат(ТекущаяДата(), "Л=el; ДЛФ=DD"));
//17 Νοεμβρίου 2025

Представление пустой даты

В 1С пустая дата — это специальное значение, которое обозначает отсутствие даты. Это признак того, что данных о ней нет. Внутри системы она представлена как 00010101000000, но в интерфейсе обычно скрыта и выглядит как пустое поле.

Появляется пустая дата в разных ситуациях. Чаще всего — когда пользователь не выбирает дату в поле ввода: тогда программа сохраняет значение как незаполненное. То же самое происходит, если указание даты в документе не обязательно и разработчик не задаёт ей значение.

В отчётах пустую дату можно отображать по-разному с помощью параметра ДП:

ПустаяДата = '00010101000000';
Сообщить(Формат(ПустаяДата, "ДП=-")); // -
Сообщить(Формат(ПустаяДата, "ДП='Нет даты'")); //Нет даты
Сообщить(Формат(ПустаяДата, "ДП='Пустая дата'")); //Пустая дата

Форматирование чисел

Числа в 1С можно представить по-разному: с фиксированным количеством знаков после запятой, с округлением, с пробелами между тысячами и так далее. Всё это регулируется отдельными параметрами форматной строки.

ЧДЦ — количество знаков после запятой

Устанавливает, сколько цифр показывать в дробной части. Округление идёт по правилу «1,5 округляется в 2».

Пример:

Сообщить(Формат(1.23456,"ЧДЦ=3")); 
//Результат: 1,235

ЧЦ — общее количество разрядов

Определяет, сколько всего цифр показывать в числе, включая дробную часть. Если мы задаём этот параметр, не забываем указать ЧДЦ.

Пример:

Сообщить(Формат(1234.567,"ЧЦ=6;ЧДЦ=2"); 
//Результат: 1234,57

ЧС — сдвиг разрядов

Задаёт, нужно ли число умножить или разделить на 10 в заданной степени. Положительное значение делит, отрицательное — умножает. Этот параметр может использоваться, например, при формировании подписей в диаграммах.

Пример:

Сообщить(Формат(123456,"ЧС=3") + " тыс."); 
//Результат: 123,456 тыс.

Число 123456 превратится в 123,456 тыс. (деление на 1000).

ЧРД — символ, отделяющий дробную часть

Задаёт разделитель между целой и дробной частями. Обычно это запятая или точка.

Пример:

Сообщить(Формат(1.25,"ЧРД=','"));
//Результат: 1,25

ЧРГ — разделитель тысяч

Указывает символ, который разделяет группы разрядов в целой части числа. Если задать обычный пробел, 1С заменит его на неразрывный пробел, чтобы сохранить форматирование при переносе строки.

Пример:

Сообщить(Формат(1234567.89,"ЧРГ=''"));
//Результат: 1 234 567.89

ЧН — представление нуля

Определяет, как отображать нулевое значение. По умолчанию нуль не показывается.

Пример:

Формат(0, "ЧН='0'") // "0"
Формат(0)            // "" (по умолчанию пустая строка)

ЧВН — лидирующие нули

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

Пример:

Сообщить(Формат(42,"ЧЦ=5; ЧВН="));
//Результат: 00042

ЧО — отображение отрицательных чисел

Параметр задаёт стиль вывода отрицательных чисел. Допустимые варианты:

Сообщить(Формат(-1.1,"ЧО=0")); // (1,1)
Сообщить(Формат(-1.1,"ЧО=1")); // -1,1
Сообщить(Формат(-1.1,"ЧО=2")); // -1,1
Сообщить(Формат(-1.1,"ЧО=3")); // 1,1-
Сообщить(Формат(-1.1,"ЧО=4")); // 1,1-

ЧФ — шаблон форматирования

Позволяет указать в шаблоне вывода место размещения числа. Для этого используются символы Ч или N.

Пример:

Сообщить(Формат(123.45, "ЧФ='USD Ч'"));  
//Результат: "USD 123.45"

Форматирование логических значений

По умолчанию булевы значения в 1С выводятся как Истина и Ложь. Но иногда, например в отчётах и интерфейсах, требуется придать им вид, удобный для пользователя — например, «Да» и «Нет». Это можно задать вручную:

Значение = Истина;
Сообщить(Формат(Значение, "БИ='Да';БЛ='Нет'")); 
//Результат: Да

Где ещё используется форматная строка

Форматные строки применяются в запросах — например, если нужно заранее преобразовать дату или число перед выводом и задать формат прямо в коде.

ВЫБРАТЬ
    Формат(Сумма, "ЧФ='Итого: ЧН руб.';ЧДЦ=2;ЧРГ=' '") КАК Итого
ИЗ
    Документ.Платежи

Функция Формат() часто используется в тех случаях, когда мы выгружаем данные во внешний файл (XML, JSON или CSV) или формируем текст для обмена с другими системами.

Предположим, мы готовим текст для внешней бухгалтерской системы. У неё есть строгие требования к получаемым данным: даты должны быть в формате ггггММдд, а суммы — с двумя знаками после запятой и точкой в качестве разделителя. Используем Формат():

Процедура СформироватьСтрокуДляОбмена(Сумма, ДатаОперации) Экспорт

    ДатаФормат = Формат(ДатаОперации, "ДФ=ггггММдд");
    СуммаФормат = Формат(Сумма, "ЧДЦ=2;ЧРД='.';ЧРГ='';ЧН=0");
    СтрокаОбмена = ДатаФормат + ";" + СуммаФормат;
    Сообщить(СтрокаОбмена);

КонецПроцедуры

Проверим, всё ли получилось:

СформироватьСтрокуДляОбмена(12500.5, '2025-10-23');

Видим результат:

20251023;12500.50

Всё получилось. Данные выглядят именно так, как того требует бухгалтерская система.

Что запомнить

Подведём краткие итоги:

  • Функция Формат () используется для того, чтобы выводить данные — дату, числа, текст или булевы значения — в привычном для пользователя виде. Это удобно при составлении отчётов, создании интерфейсов и так далее.
  • Функция принимает два параметра: Значение — данные, которые требуется преобразовать, и ФорматнаяСтрока — то, как они должны выглядеть. Например, мы можем округлять числа до нужного количества знака после запятой или отображать дату в требуемом формате.
  • Чтобы не запоминать все возможные параметры для разных типов данных, лучше всего использовать Конструктор форматной строки. Он позволяет в ручном режиме настраивать отображение чисел, текста, дат и булевых значений и сразу показывает конечный результат.
  • Если в системе есть различные типы данных, например числа и даты, то во избежание ошибок советуем использовать проверку с ТипЗнч (). Она позволяет применять форматирование выборочно.

Больше интересного про код — в нашем телеграм-канале.  Подписывайтесь!





Курс с трудоустройством: «Профессия 1С-программист» Узнать о курсе
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована