Как форматировать дату, число 1С 8.3, 1С 8.2 Применение функции Формат(), ЧислоПрописью(), НСтр() и т.д. Примеры для разработчика 1С.
Сегодня мы ответим на эти вопросы и пройдем по основным вариантам использования и применения функции Формат() при разработке в 1С.
Функция Формат() в 1С используется при конвертации логических, строковых, числовых данных, данных в формате даты и времени между собой в нужных программисту 1С комбинациях.
1С описывает функцию Формат() в синтаксис-помощнике , привязывая ее к Глобальному контексту.
В синтаксисе у функции имеется два параметра. Первый параметр — исходное значение, которое необходимо преобразовать, второй — строка, описывающая метод, которым будет выполнено преобразование. Возвращаемое значение — строка.
С текстом синтаксис-помощника Вы можете ознакомиться в низу статьи, под спойлером.
Итак, после ознакомления с официальной теоретической версией, перейдем к реальной ситуации. Будем рассматривать конкретные примеры использования функции.
Как в 1С 8.3 форматировать число
Например, нужно преобразовать число 123456.789 так, чтобы десятичные знаки были округлены до сотых, и общее число знаков было 10. Причем, нужно отметить, что для дробных чисел параметр ЧЦ используется обязательно с ЧДЦ.
1 2 |
ФорматированноеЗначение = Формат(123456.789, "ЧЦ=10; ЧДЦ=2"); ФорматированноеЗначение = "123 456,79"; |
Замена символа-разделителя десятичной и целой части. В данном случае запятая будет заменена на тире.
1 2 |
ФорматированноеЗначение = Формат(123456.789, "ЧРД='-'"); ФорматированноеЗначение = "123 456-789" |
Замена разделителя разрядов
1 2 |
ФорматированноеЗначение = Формат(500500500, "ЧРГ=/"); Сообщить(ФорматированноеЗначение); // Ответ 500/500/500 |
Форматирование отрицательного числа.
1 2 3 4 5 6 7 8 |
ФорматированноеЗначение = Формат(-123456.789, "ЧО=0"); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ (123 456,789) ФорматированноеЗначение = Формат(-123456.789, "ЧО=1"); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ -123 456,789 ФорматированноеЗначение = Формат(-123456.789, "ЧО=2"); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ - 123 456,789 |
Случаи форматирования значений числа, даты в пропись.
Здесь мы немного отойдем от функции Формат() и для описания наиболее востребованных вариантов преобразования чисел в строку приведем примеры применения функций ЧислоПрописью(), НСтр() и ПредставлениеПериода() (аналог функции из 1С 7.7 ПериодСтр()). Эти функции позволяют выполнить представление числа прописью в соответствии с форматной строкой
1 2 3 4 5 6 7 8 9 10 11 12 13 |
ФорматированноеЗначение = ЧислоПрописью(1234.56); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ Одна тысяча двести тридцать четыре 56 ФорматированноеЗначение = ЧислоПрописью(1234.56,,"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2"); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ Одна тысяча двести тридцать четыре рубля 56 копеек ФорматированноеЗначение = Формат('20160311163005', "ДЛФ=ДД"); Текст = "ru = """ + ФорматированноеЗначение + " - дата нашей статьи;""; en = ""Date of our article " + ФорматированноеЗначение + """"; Сообщить(НСтр(Текст,"ru")); Сообщить(НСтр(Текст,"en")); ФорматированноеЗначение = ПредставлениеПериода(НачалоКвартала(Дата("20160111")),КонецКвартала(Дата("20160411")),"ФП=Истина"); Сообщить(ФорматированноеЗначение); // Ответ 1 полугодие 2016 г. |
Как в 1С 8.3 форматировать дату
Применяя функцию Формат() в 1С 8.2, 1С 8.3 можно представить дату и время самыми различными комбинациями.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
ФорматированноеЗначение = Формат('20160311163005', "ДФ=""дд ММММ гггг 'г.' ЧЧ:мм:сс"""); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ 11 марта 2016 г. 16:30:05 ФорматированноеЗначение = Формат('20160311163005', "ДФ=""дд/ММ-гггг"""); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ 11/03-2016 ФорматированноеЗначение = Формат('20160311163005', "ДЛФ=ДД"); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ 11 марта 2016 г. ФорматированноеЗначение = Формат('20160311163005', "ДЛФ=Д"); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ 11.03.2016 ФорматированноеЗначение = Формат('20160311163005', "ДЛФ=В"); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ 16:30:05 ФорматированноеЗначение = Формат('00010101000000', "ДП=""пустая дата"""); Сообщить(ФорматированноеЗначение); // Ответ Пустое значение даты ФорматированноеЗначение = '20160311163005'; // Выделяем секунды Сообщить(Формат(ФорматированноеЗначение, "ДФ=с")); // Ответ 5 Сообщить(Формат(ФорматированноеЗначение, "ДФ=сс")); // Ответ 05 // Выделяем минуты Сообщить(Формат(ФорматированноеЗначение, "ДФ=м")); // Ответ 30 (если будет 01, то выведет ответ 1) Сообщить(Формат(ФорматированноеЗначение, "ДФ=мм")); // Ответ 30 // Выделяем час Сообщить(Формат(ФорматированноеЗначение, "ДФ=ч")); // Ответ 4 Сообщить(Формат(ФорматированноеЗначение, "ДФ=чч")); // Ответ 04 Сообщить(Формат(ФорматированноеЗначение, "ДФ=Ч")); // Ответ 16 (если будет 01, то выведет ответ 1) Сообщить(Формат(ФорматированноеЗначение, "ДФ=ЧЧ")); // Ответ 16 // Выделяем день Сообщить(Формат(ФорматированноеЗначение, "ДФ=д")); // Ответ 11 (если будет 01, то выведет ответ 1) Сообщить(Формат(ФорматированноеЗначение, "ДФ=дд")); // Ответ 11 Сообщить(Формат(ФорматированноеЗначение, "ДФ=ддд")); // Ответ Пт Сообщить(Формат(ФорматированноеЗначение, "ДФ=дддд")); // Ответ пятница // Выделяем месяц Сообщить(Формат(ФорматированноеЗначение, "ДФ=М")); // Ответ 3 Сообщить(Формат(ФорматированноеЗначение, "ДФ=ММ")); // Ответ 03 Сообщить(Формат(ФорматированноеЗначение, "ДФ=МММ")); // Ответ март (длинные наименования месяцев сократит до 3 букв с точкой) Сообщить(Формат(ФорматированноеЗначение, "ДФ=ММММ")); // Ответ Март // Выделяем номер квартала Сообщить(Формат(ФорматированноеЗначение, "ДФ=к")); // Ответ 1 // Выделяем год Сообщить(Формат(ФорматированноеЗначение, "ДФ=г")); // Ответ 16 (если будет 01, то выведет ответ 1) Сообщить(Формат(ФорматированноеЗначение, "ДФ=гг")); // Ответ 16 Сообщить(Формат(ФорматированноеЗначение, "ДФ=гггг")); // Ответ 2016 |
Как в 1С 8.2, 1С 8.3 форматировать булевы (логические) операторы
1 2 3 4 5 |
ФорматированноеЗначение = Формат(Истина, "БЛ=Выключено; БИ=Включено"); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ "Включено"; ФорматированноеЗначение = Формат(Ложь, "БЛ=Выключено; БИ=Включено"); Сообщить("Ответ " + ФорматированноеЗначение); // Ответ "Выключено"; |
Если у Вас появились вопросы по статье или остались нерешенные проблемы обсудить их Вы можете на Форуме 1С Вопросы и ответы
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.