1С 8.3 Формат
Данные > Примеры кода 1С > 1С 8.3 Формат
Функция Формат в 1С 8.3 выводит примитивные типы данных (дата, время, число, булево) в удобное отображение для чтения. Используется при визуальном выводе информации на экран. Синтаксис функции: Формат(Значение - форматируемое значение, Форматная строка - строковое значение, включающее параметры форматирования). На платформе 1С 8.3 также доступен встроенный конструктор форматной строки, который вызывается в модуле по клику правой кнопки мыши и выборе из списка. Склонение словосочетаний с числительными с помощью метода ПолучитьСклоненияСтрокиПоЧислу().
Оглавление:
Формат Суммы (Числа) в 1С 8.3:
&НаКлиенте
Процедура ФорматированиеСуммы(Команда)
// Отображение общего числа цифр
Сообщить(Формат(138, "ЧЦ=3")); // 138
Сообщить(Формат(138, "ЧЦ=2")); // 99
Сообщить(Формат(138, "ЧЦ=1")); // 9
// Отображение общего числа цифр после запятой
Сообщить(Формат(138.214, "ЧДЦ=2")); // 138.21
Сообщить(Формат(138.214, "ЧДЦ=1")); // 138.2
Сообщить(Формат(138.214, "ЧДЦ=0")); // 138
// Сдвиг разрядов числа
Сообщить(Формат(7, "ЧС=5")); // 0,00007
Сообщить(Формат(7, "ЧС=1")); // 0,7
Сообщить(Формат(7, "ЧС=-3")); // 7000
// Установка разделителя целой и дробной части
Сообщить(Формат(138.21, "ЧРД=-")); // 138-21
// Установка разделителя групп
Сообщить(Формат(500000000, "ЧРГ=*")); // 500*000*000
// Вывод нулевого представления числа
Сообщить(Формат(0, "ЧН=ноль")); // ноль
// Вывод лидирующих нулей
Сообщить(Формат(138, "ЧЦ=10; ЧВН=")); // 0 000 000 138
Сообщить(Формат(7, "ЧЦ=2; ЧВН=")); // 07
// Отключение группировки разрядов при выводе числа
Сообщить(Формат(3000000, "ЧГ=0")); // 3000000
Сообщить(Формат(3000000, "ЧГ=3,0")); // 3 000 000
Сообщить(Формат(3000000, "ЧГ=3,2,0")); // 30 00 000
// Представление числа прописью
Сообщить(ЧислоПрописью(138.21)); // Сто тридцать восемь 21
// Рубли-копейки (Сто тридцать восемь рублей 21 копейка)
ФСтр="Л=ru_RU;ДП=Истина";ПарПИ="рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2";//по-русски
ФСтр="Л=en_US;ДП=Истина";ПарПИ="rouble,roubles,kopeck,kopecks,2";//по-английски
ФСтр="Л=uk_UA;ДП=Истина";ПарПИ="карбованець,карбованцi,карбованцiв,м,копiйка,копiйки,копiйок,м,2";//по-украински
ФСтр="Л=lv_LV;ДП=Истина";ПарПИ="rublis,rubli,rublu,v,kapeika,kapeiki,kapeiku,s,2";//по-латышски
ФСтр="Л=ro_RO;ДП=Истина";ПарПИ="rubla,ruble,f,copeica,copeici,f,2";//по-румынски
ФСтр="Л=bg_BG;ДП=Истина";ПарПИ="рубла,рубли,ж,копейка,копейки,ж,2";//по-болгарски
// Доллары-центы (Сто тридцать восемь долларов США 21 цент)
ФСтр="Л=ru_RU;ДП=Истина";ПарПИ="доллар,доллара,долларов,м,цент,цента,центов,м,2";//по-русски
ФСтр="Л=en_US;ДП=Истина";ПарПИ="dollar,dollars,cent,cents,2";//по-английски
ФСтр="Л=uk_UA;ДП=Истина";ПарПИ="долар,долара,доларiв,м,цент,цента,центiв,м,2";//по-украински
ФСтр="Л=lv_LV;ДП=Истина";ПарПИ="dolars,dolari,dolaru,v,cent,centi,centu,v,2";//по-латышски
ФСтр="Л=ro_RO;ДП=Истина";ПарПИ="dolar,dolari,m,cent,centi,m,2";//по-румынски
ФСтр="Л=bg_BG;ДП=Истина";ПарПИ="долар,долара,м,цент,цента,м,2";//по-болгарски
// Евро-евроценты (Сто тридцать восемь евро 21 евроцент)
ФСтр="Л=ru_RU;ДП=Истина";ПарПИ="евро,евро,евро,м,евроцент,евроцента,евроцентов,м,2";//по-русски
ФСтр="Л=en_US;ДП=Истина";ПарПИ="euro,euros,eurocent,eurocents,2";//по-английски
ФСтр="Л=uk_UA;ДП=Истина";ПарПИ="євро,євро,євро,м,євроцент,євроцента,євроцентів,м,2";//по-украински
ФСтр="Л=lv_LV;ДП=Истина";ПарПИ="eiro,eiro,eiro,v,cents,centi,centi,v,2";//по-латышски
ФСтр="Л=ro_RO;ДП=Истина";ПарПИ="euro,euro,м,eurocent,eurocenti,м,2";//по-румынскимммм
ФСтр="Л=bg_BG;ДП=Истина";ПарПИ="евро,евро,с,евроцент,евроцента,м,2";//по-болгарски
Сообщить(ЧислоПрописью(138.21, ФСтр, ПарПИ));
// Килограммы-граммы (Сто тридцать восемь килограммов 210 грамм)
Сообщить(ЧислоПрописью(138.21, "Л=ru_RU; ДП=Истина", "килограмм, килограмма, килограммов, м, грамм, грамма, граммов, м, 3"));
КонецПроцедуры
Процедура ФорматированиеСуммы(Команда)
// Отображение общего числа цифр
Сообщить(Формат(138, "ЧЦ=3")); // 138
Сообщить(Формат(138, "ЧЦ=2")); // 99
Сообщить(Формат(138, "ЧЦ=1")); // 9
// Отображение общего числа цифр после запятой
Сообщить(Формат(138.214, "ЧДЦ=2")); // 138.21
Сообщить(Формат(138.214, "ЧДЦ=1")); // 138.2
Сообщить(Формат(138.214, "ЧДЦ=0")); // 138
// Сдвиг разрядов числа
Сообщить(Формат(7, "ЧС=5")); // 0,00007
Сообщить(Формат(7, "ЧС=1")); // 0,7
Сообщить(Формат(7, "ЧС=-3")); // 7000
// Установка разделителя целой и дробной части
Сообщить(Формат(138.21, "ЧРД=-")); // 138-21
// Установка разделителя групп
Сообщить(Формат(500000000, "ЧРГ=*")); // 500*000*000
// Вывод нулевого представления числа
Сообщить(Формат(0, "ЧН=ноль")); // ноль
// Вывод лидирующих нулей
Сообщить(Формат(138, "ЧЦ=10; ЧВН=")); // 0 000 000 138
Сообщить(Формат(7, "ЧЦ=2; ЧВН=")); // 07
// Отключение группировки разрядов при выводе числа
Сообщить(Формат(3000000, "ЧГ=0")); // 3000000
Сообщить(Формат(3000000, "ЧГ=3,0")); // 3 000 000
Сообщить(Формат(3000000, "ЧГ=3,2,0")); // 30 00 000
// Представление числа прописью
Сообщить(ЧислоПрописью(138.21)); // Сто тридцать восемь 21
// Рубли-копейки (Сто тридцать восемь рублей 21 копейка)
ФСтр="Л=ru_RU;ДП=Истина";ПарПИ="рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2";//по-русски
ФСтр="Л=en_US;ДП=Истина";ПарПИ="rouble,roubles,kopeck,kopecks,2";//по-английски
ФСтр="Л=uk_UA;ДП=Истина";ПарПИ="карбованець,карбованцi,карбованцiв,м,копiйка,копiйки,копiйок,м,2";//по-украински
ФСтр="Л=lv_LV;ДП=Истина";ПарПИ="rublis,rubli,rublu,v,kapeika,kapeiki,kapeiku,s,2";//по-латышски
ФСтр="Л=ro_RO;ДП=Истина";ПарПИ="rubla,ruble,f,copeica,copeici,f,2";//по-румынски
ФСтр="Л=bg_BG;ДП=Истина";ПарПИ="рубла,рубли,ж,копейка,копейки,ж,2";//по-болгарски
// Доллары-центы (Сто тридцать восемь долларов США 21 цент)
ФСтр="Л=ru_RU;ДП=Истина";ПарПИ="доллар,доллара,долларов,м,цент,цента,центов,м,2";//по-русски
ФСтр="Л=en_US;ДП=Истина";ПарПИ="dollar,dollars,cent,cents,2";//по-английски
ФСтр="Л=uk_UA;ДП=Истина";ПарПИ="долар,долара,доларiв,м,цент,цента,центiв,м,2";//по-украински
ФСтр="Л=lv_LV;ДП=Истина";ПарПИ="dolars,dolari,dolaru,v,cent,centi,centu,v,2";//по-латышски
ФСтр="Л=ro_RO;ДП=Истина";ПарПИ="dolar,dolari,m,cent,centi,m,2";//по-румынски
ФСтр="Л=bg_BG;ДП=Истина";ПарПИ="долар,долара,м,цент,цента,м,2";//по-болгарски
// Евро-евроценты (Сто тридцать восемь евро 21 евроцент)
ФСтр="Л=ru_RU;ДП=Истина";ПарПИ="евро,евро,евро,м,евроцент,евроцента,евроцентов,м,2";//по-русски
ФСтр="Л=en_US;ДП=Истина";ПарПИ="euro,euros,eurocent,eurocents,2";//по-английски
ФСтр="Л=uk_UA;ДП=Истина";ПарПИ="євро,євро,євро,м,євроцент,євроцента,євроцентів,м,2";//по-украински
ФСтр="Л=lv_LV;ДП=Истина";ПарПИ="eiro,eiro,eiro,v,cents,centi,centi,v,2";//по-латышски
ФСтр="Л=ro_RO;ДП=Истина";ПарПИ="euro,euro,м,eurocent,eurocenti,м,2";//по-румынскимммм
ФСтр="Л=bg_BG;ДП=Истина";ПарПИ="евро,евро,с,евроцент,евроцента,м,2";//по-болгарски
Сообщить(ЧислоПрописью(138.21, ФСтр, ПарПИ));
// Килограммы-граммы (Сто тридцать восемь килограммов 210 грамм)
Сообщить(ЧислоПрописью(138.21, "Л=ru_RU; ДП=Истина", "килограмм, килограмма, килограммов, м, грамм, грамма, граммов, м, 3"));
КонецПроцедуры
Формат Количества (Числа) в 1С 8.3:
&НаКлиенте
Процедура ФорматированиеКоличества(Команда)
Колич=138.21;
ЦелаяЧастьКоличества = Цел(Колич);
ДробнаяЧастьКоличества = Окр(Колич - ЦелаяЧастьКоличества, 3);
Если ДробнаяЧастьКоличества = Окр(ДробнаяЧастьКоличества,0) Тогда
ПарПИ = ", , , , , , , , 0";
ИначеЕсли ДробнаяЧастьКоличества = Окр(ДробнаяЧастьКоличества, 1) Тогда
ПарПИ = "целая, целых, целых, ж, десятая, десятых, десятых, м, 1";
ИначеЕсли ДробнаяЧастьКоличества = Окр(ДробнаяЧастьКоличества, 2) Тогда
ПарПИ = "целая, целых, целых, ж, сотая, сотых, сотых, м, 2";
Иначе
ПарПИ = "целая, целых, целых, ж, тысячная, тысячных, тысячных, м, 3";
КонецЕсли;
Сообщить(ЧислоПрописью(Колич, ,ПарПИ)); //Сто тридцать восемь целых 21 сотая
КонецПроцедуры
Процедура ФорматированиеКоличества(Команда)
Колич=138.21;
ЦелаяЧастьКоличества = Цел(Колич);
ДробнаяЧастьКоличества = Окр(Колич - ЦелаяЧастьКоличества, 3);
Если ДробнаяЧастьКоличества = Окр(ДробнаяЧастьКоличества,0) Тогда
ПарПИ = ", , , , , , , , 0";
ИначеЕсли ДробнаяЧастьКоличества = Окр(ДробнаяЧастьКоличества, 1) Тогда
ПарПИ = "целая, целых, целых, ж, десятая, десятых, десятых, м, 1";
ИначеЕсли ДробнаяЧастьКоличества = Окр(ДробнаяЧастьКоличества, 2) Тогда
ПарПИ = "целая, целых, целых, ж, сотая, сотых, сотых, м, 2";
Иначе
ПарПИ = "целая, целых, целых, ж, тысячная, тысячных, тысячных, м, 3";
КонецЕсли;
Сообщить(ЧислоПрописью(Колич, ,ПарПИ)); //Сто тридцать восемь целых 21 сотая
КонецПроцедуры
Формат Даты в 1С 8.3:
&НаКлиенте
Процедура ФорматированиеДаты(Команда)
// Варианты преобразования даты:
// ДФ - Дата и время
// ДЛФ - Представление даты, как это принято в региональном формате ОС
// ДП - Представление пустой даты
// Получение отдельных компонент даты
Дата = '20210402160509'; // 02 апреля 2021 года 16:05:09
// Получение из даты только год
Сообщить(Формат(Дата, "ДФ=г")); // 1
Сообщить(Формат(Дата, "ДФ=гг")); // 21
Сообщить(Формат(Дата, "ДФ=гггг")); // 2021
// Получение из даты только номер квартала
Сообщить(Формат(Дата, "ДФ=к")); // 2
// Получение из даты только месяц
Сообщить(Формат(Дата, "ДФ=М")); // 4
Сообщить(Формат(Дата, "ДФ=ММ")); // 04
Сообщить(Формат(Дата, "ДФ=МММ")); // апр.
Сообщить(Формат(Дата, "ДФ=ММММ")); // Апрель
// Получение из даты только день
Сообщить(Формат(Дата, "ДФ=д")); // 2
Сообщить(Формат(Дата, "ДФ=дд")); // 02
Сообщить(Формат(Дата, "ДФ=ддд")); // Пт
Сообщить(Формат(Дата, "ДФ=дддд")); // пятница
// Получение из даты только часа
Сообщить(Формат(Дата, "ДФ=ч")); // 4
Сообщить(Формат(Дата, "ДФ=чч")); // 04
Сообщить(Формат(Дата, "ДФ=Ч")); // 16
Сообщить(Формат(Дата, "ДФ=ЧЧ")); // 16
// Получение формата времени
Сообщить(Формат(Дата, "ДФ=вв")); // РМ (или м.б. АМ)
// Получение из даты только минуты
Сообщить(Формат(Дата, "ДФ=м")); // 5
Сообщить(Формат(Дата, "ДФ=мм")); // 05
// Получение из даты только секунды
Сообщить(Формат(Дата, "ДФ=с")); // 9
Сообщить(Формат(Дата, "ДФ=сс")); // 09
// Установка локальныго формата даты
Сообщить(Формат(Дата, "ДЛФ=Д")); // 02.04.2021
Сообщить(Формат(Дата, "ДЛФ=ДД")); // 2 апреля 2021 г.
Сообщить(Формат(Дата, "ДЛФ=В")); // 16:05:09
Сообщить(Формат(Дата, "ДЛФ=ДДВ")); // 2 апреля 2021 г. 16:05:09
Сообщить(Формат(Дата, "ДЛФ=ДВ")); // 02.04.2021 16:05:09
// Установка нулевого представления даты
Сообщить(Формат('00010101000000', "ДП=""пустая дата""")); // пустая дата
// Представление периода
Сообщить(ПредставлениеПериода(НачалоКвартала(Дата),КонецКвартала(Дата),"ФП=Истина")); // 2 квартал 2021 г.
// Представление периода с помощью комбинации
Сообщить(Формат(Дата, "ДФ='к"" квартал"" гггг ""года""'")); // 2 квартал 2021 года
КонецПроцедуры
Процедура ФорматированиеДаты(Команда)
// Варианты преобразования даты:
// ДФ - Дата и время
// ДЛФ - Представление даты, как это принято в региональном формате ОС
// ДП - Представление пустой даты
// Получение отдельных компонент даты
Дата = '20210402160509'; // 02 апреля 2021 года 16:05:09
// Получение из даты только год
Сообщить(Формат(Дата, "ДФ=г")); // 1
Сообщить(Формат(Дата, "ДФ=гг")); // 21
Сообщить(Формат(Дата, "ДФ=гггг")); // 2021
// Получение из даты только номер квартала
Сообщить(Формат(Дата, "ДФ=к")); // 2
// Получение из даты только месяц
Сообщить(Формат(Дата, "ДФ=М")); // 4
Сообщить(Формат(Дата, "ДФ=ММ")); // 04
Сообщить(Формат(Дата, "ДФ=МММ")); // апр.
Сообщить(Формат(Дата, "ДФ=ММММ")); // Апрель
// Получение из даты только день
Сообщить(Формат(Дата, "ДФ=д")); // 2
Сообщить(Формат(Дата, "ДФ=дд")); // 02
Сообщить(Формат(Дата, "ДФ=ддд")); // Пт
Сообщить(Формат(Дата, "ДФ=дддд")); // пятница
// Получение из даты только часа
Сообщить(Формат(Дата, "ДФ=ч")); // 4
Сообщить(Формат(Дата, "ДФ=чч")); // 04
Сообщить(Формат(Дата, "ДФ=Ч")); // 16
Сообщить(Формат(Дата, "ДФ=ЧЧ")); // 16
// Получение формата времени
Сообщить(Формат(Дата, "ДФ=вв")); // РМ (или м.б. АМ)
// Получение из даты только минуты
Сообщить(Формат(Дата, "ДФ=м")); // 5
Сообщить(Формат(Дата, "ДФ=мм")); // 05
// Получение из даты только секунды
Сообщить(Формат(Дата, "ДФ=с")); // 9
Сообщить(Формат(Дата, "ДФ=сс")); // 09
// Установка локальныго формата даты
Сообщить(Формат(Дата, "ДЛФ=Д")); // 02.04.2021
Сообщить(Формат(Дата, "ДЛФ=ДД")); // 2 апреля 2021 г.
Сообщить(Формат(Дата, "ДЛФ=В")); // 16:05:09
Сообщить(Формат(Дата, "ДЛФ=ДДВ")); // 2 апреля 2021 г. 16:05:09
Сообщить(Формат(Дата, "ДЛФ=ДВ")); // 02.04.2021 16:05:09
// Установка нулевого представления даты
Сообщить(Формат('00010101000000', "ДП=""пустая дата""")); // пустая дата
// Представление периода
Сообщить(ПредставлениеПериода(НачалоКвартала(Дата),КонецКвартала(Дата),"ФП=Истина")); // 2 квартал 2021 г.
// Представление периода с помощью комбинации
Сообщить(Формат(Дата, "ДФ='к"" квартал"" гггг ""года""'")); // 2 квартал 2021 года
КонецПроцедуры
Формат Даты в СКД в 1С 8.3:
// Форматы копируются в элемент оформления "Формат".
// Выражения копируются в свойство "Выражение представления" поля набора данных.
// ПериодДень (формат):
ДФ='дд.ММ.гггг'
// ПериодНеделя (выражение):
Формат(НачалоПериода(ПериодНеделя, "Неделя"), "ДФ='дд.ММ.гггг'")
+ " - " + Формат(КонецПериода(ПериодНеделя, "Неделя"), "ДФ='дд.ММ.гггг'")
// ПериодДекада (выражение):
Формат(НачалоПериода(ПериодДекада, "Декада"), "ДФ='дд.ММ.гггг'")
+ " - " + Формат(КонецПериода(ПериодДекада, "Декада"), "ДФ='дд.ММ.гггг'")
// ПериодМесяц (формат):
ДФ='ММММ гггг "г."'
// ПериодКвартал (формат):
ДФ='к "кв." гггг "г."'
// ПериодПолугодие (выражение):
| ВЫБОР
| КОГДА Квартал(ПериодПолугодие) < 3 ТОГДА Формат(ПериодПолугодие, "Ф = '""1 полугодие"" гггг ""г.""'")
| ИНАЧЕ Формат(ПериодПолугодие, "ДФ = '""2 полугодие"" гггг ""г.""'")
| КОНЕЦ
// ПериодГод (формат):
ДФ='гггг "г."'
// Выражения копируются в свойство "Выражение представления" поля набора данных.
// ПериодДень (формат):
ДФ='дд.ММ.гггг'
// ПериодНеделя (выражение):
Формат(НачалоПериода(ПериодНеделя, "Неделя"), "ДФ='дд.ММ.гггг'")
+ " - " + Формат(КонецПериода(ПериодНеделя, "Неделя"), "ДФ='дд.ММ.гггг'")
// ПериодДекада (выражение):
Формат(НачалоПериода(ПериодДекада, "Декада"), "ДФ='дд.ММ.гггг'")
+ " - " + Формат(КонецПериода(ПериодДекада, "Декада"), "ДФ='дд.ММ.гггг'")
// ПериодМесяц (формат):
ДФ='ММММ гггг "г."'
// ПериодКвартал (формат):
ДФ='к "кв." гггг "г."'
// ПериодПолугодие (выражение):
| ВЫБОР
| КОГДА Квартал(ПериодПолугодие) < 3 ТОГДА Формат(ПериодПолугодие, "Ф = '""1 полугодие"" гггг ""г.""'")
| ИНАЧЕ Формат(ПериодПолугодие, "ДФ = '""2 полугодие"" гггг ""г.""'")
| КОНЕЦ
// ПериодГод (формат):
ДФ='гггг "г."'
Формат Булево (Ложь, Истина) в 1С 8.3:
&НаКлиенте
Процедура ФорматированиеБулево(Команда)
// Представление значения типа Булево
Сообщить(Формат(Ложь, "БЛ=""это ложь""")); // это ложь
Сообщить(Формат(Истина, "БИ=""написана чистая правда!""")); // написана чистая правда!
КонецПроцедуры
Процедура ФорматированиеБулево(Команда)
// Представление значения типа Булево
Сообщить(Формат(Ложь, "БЛ=""это ложь""")); // это ложь
Сообщить(Формат(Истина, "БИ=""написана чистая правда!""")); // написана чистая правда!
КонецПроцедуры
Формат Строки (по шаблону) в 1С 8.3:
&НаКлиенте
Процедура ФорматированиеСтроки(Команда)
// Доступен на платформе начиная с версии 8.3.6.1977
РезультатФорматирования = СтрШаблон("Число: %1, Дата: %2", 123456.78, Дата(2020,4,2)); // "Число: 123 456,78, Дата: 02.04.2020 00:00:00"
КонецПроцедуры
Процедура ФорматированиеСтроки(Команда)
// Доступен на платформе начиная с версии 8.3.6.1977
РезультатФорматирования = СтрШаблон("Число: %1, Дата: %2", 123456.78, Дата(2020,4,2)); // "Число: 123 456,78, Дата: 02.04.2020 00:00:00"
КонецПроцедуры
💡 Шаблоны (готовые модели) кода 1С 8.3 с тегом #Формат:
📰 Актуальные новости с тегом #Формат:
- В версии 8.3.14.1565 реализовано склонение словосочетаний с числительными с помощью метода ПолучитьСклоненияСтрокиПоЧислу(). Вы можете использовать этот метод не только в отчётах и документах, но и везде, где требуется интерактивное взаимодействие с пользователем: при формировании информационных сообщений, в предупреждениях, индикаторах процессов и так далее. Например, в счете нужно написать "2,7 грамм золота".
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник