1С 8.3 Формат - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

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"));

КонецПроцедуры
Формат Количества (Числа) в 1С 8.3:
&НаКлиенте
Процедура ФорматированиеКоличества(Команда)

   
Колич=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 года

КонецПроцедуры
Формат Даты в СКД в 1С 8.3:
  // Форматы копируются в элемент оформления "Формат".
   // Выражения копируются в свойство "Выражение представления" поля набора данных.

   // ПериодДень (формат):
   ДФ='дд.ММ.гггг'

   // ПериодНеделя (выражение):
   Формат(НачалоПериода(ПериодНеделя, "Неделя"), "ДФ='дд.ММ.гггг'")
   + " - " + Формат(КонецПериода(ПериодНеделя, "Неделя"), "ДФ='дд.ММ.гггг'")

   // ПериодДекада (выражение):
   Формат(НачалоПериода(ПериодДекада, "Декада"), "ДФ='дд.ММ.гггг'")
   + " - " + Формат(КонецПериода(ПериодДекада, "Декада"), "ДФ='дд.ММ.гггг'")

   // ПериодМесяц (формат):
   ДФ='ММММ гггг "г."'

   // ПериодКвартал (формат):
   ДФ='к "кв." гггг "г."'

   // ПериодПолугодие (выражение):
    |     ВЫБОР
    |         КОГДА Квартал(ПериодПолугодие) < 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.14.1565 реализовано склонение словосочетаний с числительными с помощью метода ПолучитьСклоненияСтрокиПоЧислу(). Вы можете использовать этот метод не только в отчётах и документах, но и везде, где требуется интерактивное взаимодействие с пользователем: при формировании информационных сообщений, в предупреждениях, индикаторах процессов и так далее. Например, в счете нужно написать "2,7 грамм золота".
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 02.04.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому