Функция Формат() в 1С: превращаем данные в понятный вид
Функция, которая может изменить всё.
Данные в 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, независимо от локализации.
В параметре ДФ используются специальные символьные обозначения, которые указывают системе, какие части даты нужно вывести и в каком виде. Каждый символ — это инструкция для форматирования. Когда система видит такую букву, она подставляет соответствующую часть даты.
Обозначения выглядят так:
- г — год в кратком виде;
- гггг — год полностью;
- М — номер месяца без ведущего нуля;
- ММ — номер месяца с ведущим нулём;
- MMMM — месяц прописью;
- д — день месяца без ведущего нуля;
- дд — день с ведущим нулём;
- ддд — день недели сокращённо (Пн, Вт, Ср и так далее);
- дддд — день недели полностью;
- к — номер квартала;
- ч — час (от 0 до 12);
- Ч — час от 0 до 24;
- м — минута;
- с — секунда.
В форматной строке символы могут использоваться с разделителями. Обычно это пробел, слеш, точка, дефис и другие.
Например:
Сообщить(Формат(ТекущаяДата(), "ДФ=дд/ММ/гггг"));
//17/11/2025
Сообщить(Формат(ТекущаяДата(), "ДФ=дд ММММ гггг, дддд"));
//17 ноября 2025, понедельник
Сообщить(Формат(ТекущаяДата(), "ДФ=к") + " квартал");
//4 квартал
Сообщить(Формат(ТекущаяДата(), "ДФ=ЧЧ:мм:сс"));
//16:22:15Локальный формат даты и времени
Локальный формат задаётся с помощью параметра ДЛФ. Он использует региональные настройки информационной базы (Конфигуратор → Администрирование → Региональные установки информационной базы) и данные параметра Язык (Страна). Благодаря этому один и тот же программный объект может выглядеть по-разному у пользователей из разных стран в соответствии с их обычным способом записи дат.
Например.
Дата с месяцем прописью на русском:
Сообщить(Формат(ТекущаяДата(), "ДЛФ=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Всё получилось. Данные выглядят именно так, как того требует бухгалтерская система.
Что запомнить
Подведём краткие итоги:
- Функция Формат () используется для того, чтобы выводить данные — дату, числа, текст или булевы значения — в привычном для пользователя виде. Это удобно при составлении отчётов, создании интерфейсов и так далее.
- Функция принимает два параметра: Значение — данные, которые требуется преобразовать, и ФорматнаяСтрока — то, как они должны выглядеть. Например, мы можем округлять числа до нужного количества знака после запятой или отображать дату в требуемом формате.
- Чтобы не запоминать все возможные параметры для разных типов данных, лучше всего использовать Конструктор форматной строки. Он позволяет в ручном режиме настраивать отображение чисел, текста, дат и булевых значений и сразу показывает конечный результат.
- Если в системе есть различные типы данных, например числа и даты, то во избежание ошибок советуем использовать проверку с ТипЗнч (). Она позволяет применять форматирование выборочно.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!