Функция формат в 1С — дата, время, числа, булево, строка
Функция Формат в 1С 8.3 предоставляет достаточно интересный инструмент разработчику для форматирования значений. Особенно часто эта функция используется для вывода примитивных типов данных (даты, времени, чисел, строки, булево) в нужном формате.
Рассмотрим подробнее функцию и способ составления форматной строки.
Функция Формат()
Синтаксис функции достаточно прост:
Формат(<Значение>,<Форматная строка>)
Значение — форматируемое значение, Форматная строка — строка, заданная определенным образом, из которой формируется правило обработки формата.
Самое интересное — форматная строка. Рассмотрим её подробнее.
Конструктор форматной строки
Для облегчения труда разработчика фирма 1С встроила в платформу специальный конструктор форматной строки.
Для запуска конструктора достаточно вызвать контекстное меню (правая кнопка мыши) и выбрать в списке «Конструктор форматной строки»:
Сам конструктор выглядит следующим образом:
Получите 267 видеоуроков по 1С бесплатно:
Где необходимо выбрать нужную Вам вкладку в зависимости от типа данных — Число, Дата или Булево.
Рассмотрим использование функции на примерах.
Формат даты в 1С на примере месяца: прописью, без времени
Получить формат даты без времени:
Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") // "25.02.2015"
Формат даты 1С, где месяц прописью:
Формат(ТекущаяДата(), "ДЛФ=DD") // "25 февраля 2015"
Формат времени без даты, только час, минута и секунда:
Формат(ТекущаяДата(), "ДЛФ=T") // "20:15:43"
Примеры формата числа
Получим формат числа с двумя точками после запятой:
Формат(100500, "ЧДЦ=2") // "100 500,00"
Число без неразрывных пробелов:
Формат(100500, "ЧГ=") // "100500"
Использование запятой вместо точки для дробной части:
Формат(100500, "ЧДЦ=2; ЧРД=,") // "100 500,00"
Округление числа (не математическое) до целых:
Формат(100500.99, "ЧДЦ=") // "100 500"
Вывод лидирующих нулей без неразрывных пробелов:
Формат(100500, "ЧЦ=9; ЧВН=; ЧГ=") // "000100500"
Читайте также другие статьи по конфигурированию 1С.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
programmist1s.ru
Внутренний язык программирования 1С 8.3 для начинающих программистов: формат в 1С
Внимание! Перед вами ознакомительная версия урока, материалы которого могут быть неполными.
Войдите на сайт как ученик
Войдите как ученик, чтобы получить доступ к материалам школы
Внутренний язык программирования 1С 8.3 для начинающих программистов: формат в 1С
Автор уроков и преподаватель школы: Владимир Милькин
При программировании в 1С часто приходится выводить (в те же отчеты) значения различных типов (строки, даты, числа …). У каждого из значений есть различные представления.
К примеру, одну и ту же дату ‘01.01.2005’ можно представить в виде строки как:
- «01.01.2005»
- «1 января 2005»
- «01.01.05»
Всё это строковые представления одного и того же значения, для формирования которых в 1С используется специальная функция Формат.
Использование функции Формат в 1С
Отключаем группировку разрядов
Пусть нам требуется вывести число 10000.
Если мы напишем:
Сообщить(10000); // выводит 10 000 |
То число 10000 отобразится с пробелами 10 000. Так получается потому, что 1С по умолчанию группирует цифры по 3 штуки (начиная справа) и выводит пробелы между ними.
Чтобы отменить это правило, воспользуемся функцией Формат:
Сообщить(Формат(10000, "ЧГ=0")); // выводит 10000 |
Первый параметр — это само значение, а второй — форматная строка. Её не нужно пытаться запомнить — просто нужно знать, где посмотреть пример или справку по этой функции (здесь или в синтакс-помощнике).
Форматная строка в общем случае состоит из двух частей, разделенных знаком равно. Слева от равно стоит имя задаваемого параметра (смотрим в справке или на примерах), а справа значение этого параметра.
В приведенном выше примере форматная строка «ЧГ=0» имеет параметр ЧГ и значение 0. Такая комбинация отменяет группировку разрядов числа. И, как вы можете убедиться, теперь выводится 10000.
Выводим лидирующие нули
Также частой задачей является вывод лидирующих нулей перед цифрой. К примеру, пусть требуется вывести число 5 с лидирующим впереди нулём то есть в виде «05»:
Сообщить(Формат(5, "ЧЦ=2; ЧВН=")); // выводит 05 |
Давайте разберём форматную строку «ЧЦ=2; ЧВН=». Она состоит из двух форматных строк, разделенных точкой с запятой. Разберём каждую из них по отдельности.
Строка «ЧЦ=2» задаёт общее число отображаемых десятичных разрядов целой и дробной частей. Таким образом общее число позиций, которое будет занимать число при выводе будет равно 2.
Строка «ЧВН=», как следует из справки, указывает функции формат, что если число не дотягивает по длине до заявленного (как в нашем случае, ведь мы указали 2 позиции, а 5 занимает только одну), то следует использовать лидирующие нули. Особенность данной форматной строки в том, что она имеет только имя параметра и знак равно, но не имеет значения. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Комбинация двух форматных строк и даёт нужный нам результат «05», вместо «5».
Отлично. Идём дальше.
Меняем разделитель целой и дробной части
Предположим нам требуется выводить дробные числа с разделителем звёздочка вместо точки. То есть, чтобы 25.46 выводилось как «25*46»:
Сообщить(Формат(25.46, "ЧРД=*")); // выведет 25*46 |
Разберём форматную строку «ЧРД=*». ЧРД — имя парамера, которое я узнал из справки, * — значение этого параметра, которое и будет являться новым разделителем целой и дробной части вместо точки.
Общее представление даты
А что если мы хотим вывести дату ‘20050101’ в виде «01.01.2005»:
Сообщить(Формат('20050101', "ДЛФ=Д")); // выведет 01.01.2005 |
А что если мы хотим вывести дату как «1 января 2005 г.»:
Сообщить(Формат('20050101', "ДЛФ=ДД")); // выведет 1 января 2005 г. |
Обе используемые форматные строки «ДЛФ=Д» и «ДЛФ=ДД» имеют один и тот же параметр ДЛФ, но вот значения у него различные. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. В первом случае (сокращенный вариант даты) — Д, а во втором (длинный вариант) ДД.
Представление дня недели даты
Если посмотреть календарь, то выяснится, что 1 января 2005 года было субботой. Вот как можно выводить описание дня недели по его дате:
Сообщить(Формат('20050101', "ДФ=дддд")); // выведет суббота |
Форматная строка представляет из себя параметр ДФ и значение дддд, что и указывает функции Формат вывести длинное представление дня недели (обратите внимание как много букв «д» она содержит).
Представление месяца даты
Описание месяца по дате выводится так:
Сообщить(Формат('20050101', "ДФ=ММММ")); // выведет Январь |
Форматная строка имеет тот же самый параметр ДФ, как и в предыдущем случае. Но вот значение отличается. Теперь оно равно ММММ.
Пройдите тест
helpme1c.ru
Функция Формат в 1С 8.3
Содержание статьи
Основные типы данных в 1С – число, булево и дата, могут быть представлены множеством форматов. Программисты часто сталкиваются с тем, что требования к виду данных сильно различаются в разных отчетах и таблицах. Разработчики 1С подумали об удобстве программистов и создали специальную функцию, существенно облегчающую процесс изменения внешнего вида данных. Основная задача функции – привести число, дату или логический тип к нужному виду строкового типа.
Описание функции «Формат»
Синтаксис данной функции прост – в качестве параметров вы можете передать два параметра. Сначала разработчик указывает значение, которое должно подвергнуться форматированию. Чтобы 1С поняла, как нужно изменить значение, программист указывает второй параметр в виде строкового значения, содержащего предопределенные операнды. Именно значение этой строки и определяет, какими предстанут перед пользователями данные в отчете.
Если параметр «ФорматнаяСтрока» не задан, то 1С преобразует заданное значение в строку. Помните, что пустая дата и 0 будут преобразованы к пустой строке, что может не понравиться пользователям. Каждый параметр в форматной строке представляет собой комбинацию из наименования, символа «=» и значения, указываемого в кавычках. Это позволяет предусматривать вкрапление символов, используемых в написании форматной строки функции Формат в 1С.
В отображение данных вы можете вставить произвольный символ за исключением используемых в синтаксисе написания форматной строки. Если есть необходимость обойти это ограничение – используйте одинарные кавычки. Это решение также поможет в ситуациях, когда символ может быть истолкован компилятором неверно.
Для удобства разработчиков в 1С встроен конструктор форматной строки. К нему можно обратиться в модулях через контекстное меню или в СКД через предусмотренные разработчиками места. К примеру, такую возможность можно обнаружить в списке полей для запроса в разделе «Оформление».
Самое важное преимущество конструктора в том, что вы сразу же можете увидеть, как будут в итоге выглядеть ваши данные. После того как вы выставили необходимые настройки по конкретному типу данных в разделе «Пример», вам демонстрируют результат ваших установок. В безымянном текстовом поле внизу вы обнаружите форматную строку, с помощью которой получен результат. Ее можно скопировать и использовать в дальнейшем, если результат вас полностью устроит.
Конструктор форматной строки может стать отличным подспорьем начинающим разработчикам, но опытные программисты предпочитают не тратить время на него. Разработка пойдет намного быстрее, если вы будете знать основные ключевые параметры форматной строки и использовать их без вызова конструктора.
Основные параметры форматной строки
Изучить все доступные команды не получится, и в этом нет необходимости. Разработчику достаточно лишь знать некоторые популярные операции и как их применять. В любой момент вы сможете в синтакс-помощнике открыть полный перечень параметров форматной строки и выбрать нужный. Программисту 1С могут пригодиться в ежедневной работе следующие параметры:
- Л – формат страны, для представителей которой будут выводиться данные;
- ЧГ – задает группировку разрядов числа;
- ЧЦ – устанавливает общее количество групп символов целой и дробной части числа, которые будут выводиться на просмотр. Если в форматной строке с этим ключом не задано значение параметра ЧДЦ, то дробная часть не будет показана;
- ЧДЦ – параметр, задающий число символов в части числа после запятой. Округление происходит в соответствии со стандартными правилами математики;
- ЧС – параметр, сдвигающий разряды числа. Значение может быть положительным – умножение на 10, или отрицательным – деление. Полезная команда, если вам нужно вывести в одном виде, а продолжить работу с числом в другом;
- ЧРД – задает символ, разделяющий дробную и целую части числа. Чтобы установить символ, разделяющий группы целой части, используйте «ЧРГ». Для применения неразрывного пробела используйте пустую строку;
- ЧВН – показывает использование лидирующих нулей. Значение этого параметра не задается;
- ДФ – один из самых часто встречаемых параметров форматной строки. Управляет форматом даты. В 1С с помощью команды «Формат» можно вывести дату практически в любом формате, включая написание названия месяца. Возможных значений много, их перечень можно увидеть в синтакс-помощнике;
- БЛ и БИ – устанавливают представление для логического типа данных, отвечая, соответственно, за ложь и истину. Таким образом, стандартную «галочку» вы сможете заменить любым словом или фразой, более доходчивой для пользователей.
Универсализм и удобство конструктора стали ключевыми причинами популярности функции «Формат» среди разработчиков 1С. Гибкие настройки помогут вам задать любой внешний вид данным по желанию клиента.
wiseadvice-it.ru
Форматирование даты, числа, булевого значения на языке программирования 1С
Для форматирования даты, числа, булевого значения во встроенном языке 1С есть функция Формат(). Функция форматирует в соответствии с параметрами форматной строки.
Параметры функции Формат()
//ДАТА
//Дата цифрами
Дата = Формат('20010401', "ДЛФ=Д");
//Дата = "01.04.2001"
//Длинная дата (месяц прописью)
Дата = Формат('20010401', "ДЛФ=ДД");
//Дата = "1 апреля 2001 г."
//Полное время
Дата = Формат('20010401140606', "ДЛФ=В");
//Дата = "14:06:06"
//Дата время
Дата = Формат('20010401', "ДЛФ=ДВ");
//Дата = "01.04.2001 0:00:00"
//Строка, представляющая пустую дату
Дата = Формат('00010101000000', "ДП=""пустая дата""");
//Дата = "пустая дата"//ДЕНЬ
//День месяца (цифрами) без лидирующего нуля
День = Формат('20010401', "ДФ=д");
//День = "1"
//День месяца (цифрами) с лидирующим нулем
День = Формат('20010401', "ДФ=дд");
//День = "01"
//Сокращённое название дня недели
День = Формат('20010401', "ДФ=ддд");
//День = "Вс"
//Полное название дня недели
День = Формат('20010401', "ДФ=дддд");
//День = "воскресение"//МЕСЯЦ
//Месяц = "5"
//Номер месяца без лидирующего нуля
Месяц = Формат('20010401', "ДФ=М");
//Номер месяца с лидирующим нулем
Месяц = Формат('20010401', "ДФ=MM");
//Месяц = "05"
//Сокращённое название месяца
Месяц = Формат('20010401', "ДФ=MMM");
//Месяц = "апр."
//Полное название месяца
Месяц = Формат('20010401', "ДФ=MMMM");
//Месяц = "Апрель"//ГОД
//Номер квартала в году
Квартал = Формат('20010401', "ДФ=к");
//Квартал = "2"
//Номер года без века и лидирующего нуля
Год = Формат('20010401', "ДФ=г");
//Год = "1"
//Номер года без века с лидирующим нулем
Год = Формат('20010401', "ДФ=гг");
//Год = "01"
//Номер года с веком
Год = Формат('20010401', "ДФ=гггг");
//Год = "2001"//ЧАС
//Час в 12 часовом варианте без лидирующих нулей
Час = Формат('20010401140606', "ДФ=ч");
//Час = "2"
//Час в 12 часовом варианте с лидирующим нулем
Час = Формат('20010401140606', "ДФ=чч");
//Час = "02"
//Час в 24 часовом варианте без лидирующих нулей
Час = Формат('20010401140606', "ДФ=Ч");
//Час = "14"
//Час в 24 часовом варианте с лидирующим нулем
Час = Формат('20010401140606', "ДФ=ЧЧ");
//Час = "14"//МИНУТА
//Минута без лидирующего нуля
Минута = Формат('20010401140606', "ДФ=м");
//Минута = "6"
//Минута с лидирующим нулем
Минута = Формат('20010401140606', "ДФ=мм");//СЕКУНДА
//Секунда без лидирующего нуля
Секунда = Формат('20010401140606', "ДФ=с");
//Секунда = "6"
//Секунда с лидирующим нулем
Секунда = Формат('20010401140606', "ДФ=сс");
//Секунда = "06"
//Первая или вторая половина дня AM/PM
ПоловинаДня = Формат('20010401', "ДФ=вв");
//ПоловинаДня = "AM"//ЧИСЛО
//Ограничение на общее число разрядов
Число = Формат(2.12, "ЧЦ=1");
//Число = "2"
//Ограничение на число разрядов в дробной части
Число = Формат(2.12, "ЧДЦ=1");
//Число = "2,1"
//Сдвиг разрядов: положительный - деление, отрицательный - умножение
Число = Формат(2, "ЧС=10");
//Число = "0,0000000002"
//Символ-разделитель целой и дробной части
Число = Формат(2.12, "ЧРД=*");
//Число = "2*12"
//Символ-разделитель групп целой части числа
Число = Формат(2000000, "ЧРГ=*");
//Число = "2*000*000"
//Представление ноля
Число = Формат(0, "ЧН=");
//Число = "0"
//Нужно ли выводить лидирующие нули
Число = Формат(25, "ЧВН=;ЧЦ=3");
//Число = "025"
//Порядок группировки разрядов числа
Число = Формат(200000000, "ЧГ=2,3");
//Число = "2 000 000 00"//ОТРИЦАТЕЛЬНОЕ ЧИСЛО
//Представление отрицательных чисел
Число = Формат(-1, "ЧО=0");
//Число = "(1)"
//Представление отрицательных чисел
Число = Формат(-1, "ЧО=1");
//Число = "-1"
//Представление отрицательных чисел
Число = Формат(-1, "ЧО=2");
//Число = "- 1"
//Представление отрицательных чисел
Число = Формат(-1, "ЧО=3");
//Число = "1-"
//Представление отрицательных чисел
Число = Формат(-1, "ЧО=4");
//Число = "1 -"//БУЛЕВО
//Строка, представляющая логическое значение Ложь
Булево = Формат(Ложь, "БЛ=Нет");
//Булево = "Нет"
//Строка, представляющая логическое значение Истина
Булево = Формат(Истина, "БИ=Да");
//Булево = "Да"
1clenta.ru