1с скд формат числа

Обновлено: 03.07.2024

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Формат

Описание:

Формирует удобное для чтения представление значений. Полезно использование в отчетах и при прочем визуальном отображении значений.

Синтаксис:

Параметры:

Форматная строка представляет собой строковое значение, включающее параметры форматирования.

Параметры форматирования перечисляются через символ ";". Наличие параметра означает отличие форматирования от стандартного.

Если параметр не задан, то применяется стандартное форматирование, которое в основном соответствует преобразованию значения к строке. Однако для значений типа Число и Дата по умолчанию (0 и 01.01.0001 00:00:00 соответственно) будет выдаваться пустая строка.

  • 0 (0) - строка вида "(1,1)";
  • 1 (1) - строка вида "-1,1";
  • 2 (2) - строка вида "- 1,1";
  • 3 (3) - строка вида "1,1-";
  • 4 (4) - строка вида "1,1 -".
  • д - день месяца (цифрами) без лидирующего нуля;
  • дд - день месяца (цифрами) с лидирующим нулем;
  • ддд - краткое название дня недели;
  • дддд- полное название дня недели ;
  • М - номер месяца (цифрами) без лидирующего нуля;
  • ММ - номер месяца (цифрами) с лидирующим нулем;
  • МММ - краткое название месяца;
  • ММММ - полное название месяца;
  • к - номер квартала в году;
  • г - номер года без века и лидирующего нуля;
  • гг - номер года без века с лидирующим нулем;
  • гггг - номер года с веком;
  • ч - час в 12 часовом варианте без лидирующих нулей;
  • чч - час в 12 часовом варианте с лидирующим нулем;
  • Ч - час в 24 часовом варианте без лидирующих нулей;
  • ЧЧ (HH) - час в 24 часовом варианте с лидирующим нулем;
  • м - минута без лидирующего нуля;
  • мм - минута с лидирующим нулем;
  • с - секунда без лидирующего нуля;
  • сс - секунда с лидирующим нулем;
  • вв - отображение половины дня AM/PM (действительно только для языков конфигурирования, поддерживающих 12 часовой вариант представления времени).
  • Д - дата (цифрами);
  • ДД - длинная дата (месяц прописью);
  • В - полное время, дата может объединяться со временем;
  • ДВ - дата время.

Функция Формат в языке 1С 8.3, 8.2 (в примерах)

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

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Функция Формат в 1С 8.3 предоставляет достаточно интересный инструмент разработчику для форматирования значений. Особенно часто эта функция используется для вывода примитивных типов данных (даты, времени, чисел, строки, булево) в нужном формате.

Рассмотрим подробнее функцию и способ составления форматной строки.

функция формат в 1С

Функция Формат()

Синтаксис функции достаточно прост:

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

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

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

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

Сам конструктор выглядит следующим образом:

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

Рассмотрим использование функции на примерах.

Формат даты в 1С на примере месяца: прописью, без времени

Получить формат даты без времени:

Формат даты 1С, где месяц прописью:

Формат времени без даты, только час, минута и секунда:

Примеры формата числа

Получим формат числа с двумя точками после запятой:

Число без неразрывных пробелов:

Использование запятой вместо точки для дробной части:

Округление числа (не математическое) до целых:

Вывод лидирующих нулей без неразрывных пробелов:

Программирование (и бизнес программы) обычно имеют дело со следующими простыми типами данных: число, строка, дата. Значения этих типов для разных стран, стандартов и просто привычек могут иметь разное представление.

Вероятно самый известный пример, это разное представление времени – в России привычно использовать 9:00 и 21.00, а в англоязычных странах 9am и 9pm. Разница как в логике (12ти часовая система или 24х часовая), так и в написании.

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

Что такое форматирование

Число и дата вне зависимости от его представления на экране или на печати – остается самим собой. Форматирование подразумевает собой исключительно преобразование к строковому значению – то есть как он будет «выглядеть» на экране компьютера или на бумаге.

Основные различия форматов 1С представления чисел и дат:

  • Число
    o «.» или «,» для отделения дробной части
    o количество знаков после запятой
    o группировка цифр в числе по 3 (1 000 000, а не 1000000)
  • Дата и время
    o порядок года, месяца, дня
    o символ-разделитель
    o формат 1С времени (12 или 24 часа)
    o детали написания.

Также в формате 1С могут быть указаны дополнительные «удобства», например отрицательные числа выводить красным цветом, или представление «пустого значения» в виде «0» или «не заполнено».

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

Например, при переводе числа в строку оно переводится с учетом группировки цифр (а вы этого ожидаете?):
ЧислоСтрокой = СокрЛП(2400); //будет равно «2 400»

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

В качестве строки «Настройки» нужно указать требуемый формат 1С. Такие настройки указываются в специальном закодированном виде. Рассмотрим наиболее часто используемые настройки:

Формат 1С даты и числа по умолчанию

Если Вам требуется вывести дату или число и не хочется заморачиваться со знанием как они должны быть представлены по правилам нужной страны, есть простейшая настройка, которая позволит Вам это сделать:

Пример вывода даты по правилам некоторых стран:
Формат( ТекущаяДата(), «L=ru»)
> 28.03.2012 14:21:32

Формат( ТекущаяДата(), «L=en»)
> 3/28/2012 2:21:24 PM

Формат( ТекущаяДата(), «L=fr»)
> 28/03/2012 14:22:08

Формат даты в языке 1С

Если настройки по умолчанию Вам недостаточно и хотелось бы самостоятельно указать порядок частей даты и символы их разделения, необходимо использовать настройку:
ДФ = «дмг чмс»

Символ части даты может быть указан несколько раз подряд, от этого зависит вид этой части даты, например «д» или «дд» или «дддд».

Расшифровка частей даты:

Пример вывода даты с указанием правил:
Формат(ТекущаяДата(), "ДФ=""дд.ММ.гггг чч:мм:сс""")
> 28.03.2012 02:44:44

Формат(ТекущаяДата(), "ДФ="" М / д /гггг ч:м:с вв""")
> 3/28/2012 2:44:44 PM

Формат(ТекущаяДата(), "ДФ=""дд/ММ/гггг чч:мм:сс""")
> 28/03/2012 02:44:44

Формат(ТекущаяДата(), "ДФ=""дддд, дд ММММ гггг""")
> среда, 28 марта 2012

Формат числа в языке 1С
В отличие от форматирование даты, где все достаточно просто, для форматирования числа есть много параметров. Мы рассмотрим те, которые нам показались полезными – то есть по нашему мнению часто применяются.

Первая «проблема» связана с группировкой по умолчанию цифр в числах по 3 и разделением групп пробелом, например:
СтрЧисло = Строка(22300500)
> 22 300 500

Это неудобно, когда число преобразовывается к строке не для красивого и понятного вывода пользователю, а для служебных нужд. На это можно повлиять с помощью параметра «ЧГ», например:

Формат(22300500, "ЧГ=100")
>22300500 //вообще убрали нули

Формат(22300500, "ЧГ=6")
> 22 300500 //сделали группировку только миллионов

Параметр, который позволяет округлить число при выводе до нужного количества цифр после запятой «ЧДЦ»:

Формат(3.535353, "ЧДЦ=""2""")
> 3,54

Параметр, который позволяет указать символ-разделитель целой и дробной части «ЧРД»:

Формат(3.535353, "ЧРД="".""")
> 3.535353

Для некоторых случаев бывает полезно иметь возможность вместо числа «0» отображать что-то другое: пустую строку или «не заполнено». Это позволяет делать параметр «ЧН»:

Формат 1С поля на форме

Мы рассмотрели с Вами приемы, которые позволяют программисту форматировать значение в языка 1С. Также есть механизмы, которые позволяют указать требуемый формат визуально, без программирования.

Например, пользователь работает с формой. На форме есть поле, которое отображает дату. Мы можем повлиять на представление этой даты.



Формат 1С ячейки в печатной форме

Когда нужно разработать печатную форму (отчет или печать документа), можно назначить формат ячейки точно таким же способом, как и для поля документа.
Выбираем ячейку (или несколько ячеек одновременно), заходим в свойства, свойство «Формат», выбираем требуемый формат.


Формат 1С в СКД

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

Это значит Вы не только указываете какое поле как форматировать, но и при каком условии (например, если значение этого поля – отрицательное).

В режиме Предприятие выберите пункт меню на форме отчета «Изменить вариант». В отчете СКД в толстом клиенте этот пункт в меню «Действия/Настройки».


В открывшейся форме всех настроек СКД есть закладка «Условное форматирование». Добавьте новую строчку. В строчке три колонки:


Формат 1С в управляемых формах

Аналогичные правила форматирования действуют в любой форме списка управляемого клиента. В форме списке выберите пункт меню «Все действия/Настроить список».


&НаКлиенте
Процедура ФорматированиеСуммы ( Команда )

// Отображение общего числа цифр
Сообщить ( Формат ( 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

// Установка разделителя групп
Сообщить ( Формат ( 500000000 , "ЧРГ=*" )); // 500*000*000

// Вывод нулевого представления числа
Сообщить ( Формат ( 0 , "ЧН=ноль" )); // ноль

// Вывод лидирующих нулей
Сообщить ( Формат ( 138 , "ЧЦ=10; ЧВН ЧЦ=2; ЧВН ЧГ=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" ));

Читайте также: