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С в управляемых формах
Аналогичные правила форматирования действуют в любой форме списка управляемого клиента. В форме списке выберите пункт меню «Все действия/Настроить список».
Читайте также: