Форматирование дат и чисел¶
При вводе и выводе дат, времени, чисел и денежных сумм система использует параметры форматирования, соответствующие настройкам сотрудника.
Справочник параметров форматирования¶
Настройки форматирования определяются в карточках справочника, который доступен в рабочем месте Администратор в представлении Служебные → Форматирование дат и чисел.
Дважды нажав на строку с карточкой, откроется диалог с параметрами. Создать новую карточку можно с помощью кнопки + Создать, расположенной в верхней части представления.
Поля карточки параметров форматирования:
- Заголовок - отображаемое пользователю имя параметров форматирования. Может быть любой строкой, в т.ч. неуникальной. Обычно это название культуры (языка), заданной в поле Имя культуры.
- Имя культуры - строковый уникальный идентификатор карточки, который должен соотноситься с действительной культурой по стандарту ISO 639-1.
- Влияет на то, какие параметры будут заполнены по умолчанию во всех других полях по нажатию на кнопку Обновить настройки из указанной культуры. В дальнейшем их можно изменить.
- Может быть указана культура с регионом, например,
en-US
(Английский - США) илиru-RU
(Русский - Россия). Рекомендуется так делать только в случае, когда для одного и того же языка требуется обеспечить несколько различных параметров форматирования. - Используется для определения параметров при первом логине пользователя.
- Формат ввода и вывода дат - определяет порядок следования компонент даты “день”, “месяц” и “год”, который будет учитываться для любых выводимых дат, и будет влиять на то, каким образом даты вводятся в контролах карточки и параметрах фильтрации. Допустимые значения и пример форматирования даты “7 июня 2022 г.” (без учёта символа разделителя и настроек ведущих нулей):
- “Месяц, день, год” -
06/07/2022
- “День, месяц, год” -
07/06/2022
- “Год, месяц, день” -
2022/06/07
- “Год, день, месяц” -
2022/07/06
- “Месяц, день, год” -
- Символ-разделитель даты - единственный символ, разделяющий компоненты даты (дни, месяцы, годы). Например, если указан символ точки
.
:27.06.2022
; если указан символ слэш/
:27/06/2022
. - Символ-разделитель времени - единственный символ, разделяющий компоненты времени (часы, минусы, секунды). Обычно указывается двоеточие
:
:17:52:30
. - 24-часовой формат - если флаг установлен, то используется 24-часовой формат ввода и вывода времени, при этом не используются строки “до полудня” и “после полудня”:
17:52:30
. Если флаг не установлен, то используется 12-часовой формат с дополнительным выводом (и вводом) текста “до полудня” и “после полудня”05:52:30 PM
. - Текст “до полудня” (для 12-часового формата) - текст, выводимый после времени для 12-часового формата, если время в интервале 24-часового формата
00:00-11:59
. Также текст используется при вводе времени. Игнорируется, если установлен флаг 24-часовой формат времени. - Текст “после полудня” (для 12-часового формата) - текст, выводимый после времени для 12-часового формата, если время в интервале 24-часового формата
12:00-23:59
. Также текст используется при вводе времени. Игнорируется, если установлен флаг 24-часовой формат времени. - Количество дней с ведущим нулём - флаг определяет, что компонент даты с количеством дней вводится и выводится с ведущим нулём, если число меньше 10. Например, флаг установлен (при выводе “день, месяц, год”):
07.06.2022
; флаг не установлен:7.06.2022
. - Количество месяцев с ведущим нулём - флаг определяет, что компонент даты с количеством месяцев вводится и выводится с ведущим нулём, если число меньше 10. Например, флаг установлен (при выводе “день, месяц, год”):
07.06.2022
; флаг не установлен:07.6.2022
. - Количество часов с ведущим нулём - флаг определяет, что компонент времени с количеством часов вводится и выводится с ведущим нулём, если число меньше 10. Например, флаг установлен (при выводе “часы, минуты, секунды”):
07:52:30
; флаг не установлен:7:52:30
. - Символ-разделитель числовых групп - единственный символ, разделяющий группы разрядов (единицы, тысячи, миллионы).
- Учитывается системой при выводе десятичных чисел (контролы “Десятичное число” в карточках, а также колонки и параметры фильтрации в представлениях типа
Decimal
илиCurrency
), обычно это используется для денежных сумм. - Также используется для вывода размеров файлов
4 500 KB
. - Игнорируется при вводе в любых числовых контролах.
- Пример числа “1 миллион” с разделителем “пробел”:
1 000 000.00
(если в поле указан пробел, то при выводе он автоматически заменяется на неделимый пробел); пример с разделителем,
:1,000,000.00
.
- Учитывается системой при выводе десятичных чисел (контролы “Десятичное число” в карточках, а также колонки и параметры фильтрации в представлениях типа
- Символ-разделитель десятичной точки - единственный символ, разделяющий целую и дробную часть для десятичных и вещественных чисел.
- Используется как при выводе, так и при вводе.
- Пример числа с разделителем
.
:3.14
; с разделителем,
:3,14
. - Если символы-разделители числовых групп и десятичной точки оба отличны от символа “точка”
.
, то система позволяет ввести точку для разделения целой и дробной части числа, причём после ввода она автоматически заменится на действительный символ десятичной точки. Например, для параметровru
числовые группы разделяет “пробел”, а десятичная точка - символ “запятая”; в этом случае пользователю допустимо ввести3.14
, что будет интерпретировано как3,14
.
Note
При создании карточки с параметрами форматирования рекомендуем заполнить имя культуры, после чего нажать на кнопку Обновить настройки из указанной культуры. После этого все поля карточки будут заполнены валидными значениями и, при необходимости, их можно скорректировать.
Параметры форматирования в типовом решении¶
В библиотеке карточек Platform.jcardlib
в типовом решении доступны следующие карточки с преднастроенными параметрами форматирования дат и чисел.
-
en
(заголовокEnglish
) - параметры для английского языка. -
ru
(заголовокРусский
) - параметры для русского языка.
Данные карточки в проектном решении можно переопределить, экспортировав и заменив их в папке конфигурации проектного репозитория по пути Configuration/Cards/Format settings
.
Определение параметров форматирования¶
При первом логине пользователя автоматически определяется имя культуры, по которым система связывает с сотрудником карточку с параметрами форматирования.
В web-клиенте используется язык интерфейса браузера.
![](images/formatting9.png)
Алгоритм определения параметров форматирования по имени культуры:
- Если отсутствуют параметры для культуры с регионом, то задействуются параметры нейтральной культуры, где указан только язык. Например, у пользователя определены региональные параметры “Русский (Россия)”, что соответствует культуре
ru-RU
. Если отсутствует карточка с именем культурыru-RU
, то используются настройки из карточкиru
“Русский”. - Если отсутствуют подходящие параметры для языка сотрудника, то используется карточка для английского языка
en
.
Изменение параметров форматирования¶
После того, как пользователь выполнил логин, в его карточке сотрудника определённые выше параметры записываются в поле Форматирование дат и чисел (в блоке полей Дополнительная информация), и в дальнейшем используются они.
Пользователь может самостоятельно изменить параметры форматирования через личные настройки.
Перед первым логином пользователя администратор системы может открыть его карточку сотрудника, и заполнить предпочитаемое значение в поле Форматирование дат и чисел (в блоке полей Дополнительная информация). В этом случае автоматическое определение не будет выполняться.
Также возможна ситуация, когда в карточке сотрудника поле не заполнено (логин не выполнялся), но система должна отправить пользователю почтовое уведомление, отобразив для него даты и числа понятным образом. Для этого, по аналогии с определением языка уведомлений, используется поле Настройки форматирования дат и чисел в уведомлениях по умолчанию в карточке настроек Типового решения.
Note
Значение параметров форматирования дат и чисел по умолчанию для новых сотрудников можно установить, указав в схеме данных в поле PersonalRoleSatellite.FormatName
имя культуры в поле “Значение по умолчанию”. Все созданные сотрудники автоматически получат эти параметры форматирования (в т.ч. в уведомлениях) и смогут изменить их уже после логина.
История действий¶
В соответствии с настройками сотрудника для каждой сессии назначаются параметры форматирования. Администратору системы эта информация доступна в истории действий в записи типа “Вход в систему”.
В поле Форматирование дат и чисел выводится актуальный заголовок и в скобках имя культуры для карточки справочника Форматирование дат и чисел, которая связана с пользователем на момент логина.
Форматирование в представлениях¶
Представление форматирует ввод для параметров фильтрации и вывод для колонок, в зависимости от их типов.
-
Тип колонки в конструкторе представлений:
-
Тип параметра фильтрации в конструкторе представлений:
-
Тип колонки в схеме данных, если тип в конструкторе представлений указан в формате
$Таблица.Колонка
:
Тип | Тип форматирования | Пример |
---|---|---|
Boolean | Логическое значение | да |
Currency | Десятичное число | 12,345.67 |
Date | Дата без времени | 6/27/2022 |
DateTime | Дата и время | 6/27/2022 5:52:30 PM |
DateTime2 | Дата и время | 6/27/2022 5:52:30 PM |
Decimal | Десятичное число | 12,345.67 |
Double | Вещественное число | 12345.67 |
Single | Вещественное число | 12345.67 |
Time | Время без даты | 5:52:30 PM |
другие | Строка | 1234567 |
Типы форматирования разделяются следующим образом:
- Вещественное число:
- Символ-разделитель десятичной точки используется для разделения целой и дробной частей числа.
- Дробная часть не дополняется оконечными нулями. Если число целое, то дробная часть не выводится, как и символ-разделитель десятичной точки. Например, значение
1
отображается как1
, а значение12.345
как12.345
. - Символ-разделитель числовых групп игнорируется при вводе и не используется при выводе.
- При вводе допустимо использовать символ “точка”
.
в качестве символа-разделителя десятичной точки, если символ-разделитель числовых групп отличен от точки. - Пример вывода:
12345.67
.
- Десятичное число:
- Символ-разделитель десятичной точки используется для разделения целой и дробной частей числа.
- В дробной части всегда выводится ровно две цифры, для целых и нецелых чисел. Например, значение
1
отображается как1.00
, а значение12.345
как12.35
(последний разряд округляется). - Символ-разделитель числовых групп игнорируется при вводе, но используется при выводе для разделения разрядов целой части (тройки цифр).
- При вводе допустимо использовать символ “точка”
.
в качестве символа-разделителя десятичной точки, если символ-разделитель числовых групп отличен от точки. - Пример вывода:
12,345.67
.
- Дата и время:
- Используются и параметры форматирования для даты, и параметры форматирования для времени.
- Компоненты даты и времени разделяются пробелом, и могут быть перенесены на разные строки, в зависимости от свободного места.
- Если время выводится в 12-часовом формате, то разделитель
AM/PM
указывается через неделимый пробел правее времени, что предотвращает перенос компоненты времени и разделителяAM/PM
на разные строки. - Если время выводится в 12-часовом формате, то при вводе разделитель
AM/PM
по умолчанию указан в позицииAM
. Чтобы его изменить, переместите выделение на эту позицию ([стрелка влево]
,[стрелка вправо]
), и нажмите клавишу[стрелка вверх]
или[стрелка вниз]
. Также можно ввести первую буквуA
дляAM
илиP
дляPM
. - Пример вывода:
6/27/2022 5:52:30 PM
- Дата без времени:
- Используются параметры форматирования для даты.
- Компонента времени игнорируется, если присутствует.
- Пример вывода:
6/27/2022
.
- Время без даты:
- Используются параметры форматирования для времени.
- Компонента даты игнорируется, если присутствует.
- Если время выводится в 12-часовом формате, то разделитель
AM/PM
указывается через неделимый пробел правее времени, что предотвращает перенос компоненты времени и разделителяAM/PM
на разные строки. - Если время выводится в 12-часовом формате, то при вводе разделитель
AM/PM
по умолчанию указан в позицииAM
. Чтобы его изменить, переместите выделение на эту позицию ([стрелка влево]
,[стрелка вправо]
), и нажмите клавишу[стрелка вверх]
или[стрелка вниз]
. Также можно ввести первую буквуA
дляAM
илиP
дляPM
. - Пример вывода:
5:52:30 PM
.
- Интервал:
- Используются параметры форматирования для времени.
- Компонента даты игнорируется, если присутствует.
- Время всегда выводится в 24-часовом формате.
- Пример вывода:
0:05:00
.
- Логическое значение:
- Строка
да
илинет
, в зависимости от того, отображается ли значениеtrue
илиfalse
. - Вывод не зависит от параметров форматирования, но зависит от языка интерфейса. При этом используются строки локализации
$Format_Boolean_Yes
дляtrue
и$Format_Boolean_No
дляfalse
.
- Строка
- Строка:
- Значение выводится в стандартной строковой форме, при этом не используются параметры форматирования.
- Это относится не только к строковым типам, но и к уникальным идентификаторам и целым числам.
- Для колонок строковых типов значение локализуется, если отмечен флаг
Localizable
. При этом локализуется как сама строка$String
(если начинается с символа$
), так и плейсхолдеры локализации внутри строки{$String}
. - Пример вывода:
1234567
.
Параметр с настройками форматирования в SQL-запросе¶
При выполнении представления в SQL-запрос передаётся служебный параметр FormatSettings
, в котором система автоматически указывает имя культуры параметров форматирования, которые являются текущими используемыми в сессии. Например, это строка en
или ru
.
Это позволяет использовать форматирование в теле SQL-запроса, отфильтровав таблицу FormatSettings
по колонке Name
, передав в неё значение параметра #param(FormatSettings)
.
Рассмотрим представление с таким SQL-запросом:
Оно отобразит поле Формат ввода и вывода дат в соответствии с текущими параметрами форматирования у пользователя:
Такое использование нельзя назвать полезным. Но смысл в том, что в SQL-запросе можно обратиться к хранимым функциям, которые используют данные из таблицы FormatSettings
для формирования строки с датой, временем, числом или денежной суммой. Пример в следующем разделе.
На вкладке Отладка допустимо указать значение этого параметра, где он назван Форматирование дат и чисел.
Параметр будет подставлен в сформированный текст запроса:
Note
Можно опираться на то, что параметр FormatSettings
передаётся во все представления, независимо от того, как они используются (в рабочих местах, в ссылочных полях, в коде расширений и др.).
При вызове в API метода получения данных представления ITessaView.GetDataAsync
этот параметр, как и параметр с языком интерфейса Locale
, не следует передавать явно, т.к. система подставит его автоматически при выполнении запроса на сервере.
Хранимая функция FormatAmount¶
В платформе доступна хранимая функция FormatAmount
, которая форматирует переданное число в соответствии с правилами форматирования десятичных чисел, описанными ранее.
Функция возвращает строку с форматированным значением, которую можно использовать для вывода суммы вместе с валютой в форме 10,000.00 USD
.
Первым параметром функция получает число, вторым - имя культуры для параметров форматирования, в который обычно передаётся значение служебного параметра FormatSettings.
Пример использования доступен в типовом представлении ContractsDocuments
, где в колонку “Сумма” выводится сумма договора вместе с наименованием валюты (если она указана).
Поскольку в колонке не только десятичное число (сумма), но и текст с валютой, то для форматирования недостаточно указать тип колонки Decimal. Вместо этого используется колонка строкового типа, а её содержимое формируется в SQL.
Note
Аналогичные хранимые функции допустимо реализовать в проектном решении, чтобы в тексте запроса представления можно было формировать строки, содержащие не только отформатированные денежные суммы, но и другие числа, а также дату и время.
Форматирование в карточках¶
Рассмотрим, как в различных контролах, отображаемых в типах карточек, диалогов и заданий, используются параметры форматирования.
Числовые контролы¶
В контролах “Вещественное число” и “Десятичное число” при вводе и выводе значений применяются параметры форматирования, аналогичные таковым для параметров фильтрации представлений вещественного типа и десятичного типа соответственно.
-
Вещественное число:
- Символ-разделитель десятичной точки используется для разделения целой и дробной частей числа.
- Дробная часть не дополняется оконечными нулями. Если число целое, то дробная часть не выводится, как и символ-разделитель десятичной точки. Например, значение
1
отображается как1
, а значение12.345
как12.345
. - Символ-разделитель числовых групп игнорируется при вводе и не используется при выводе.
- При вводе допустимо использовать символ “точка”
.
в качестве символа-разделителя десятичной точки, если символ-разделитель числовых групп отличен от точки.
-
Десятичное число:
- Символ-разделитель десятичной точки используется для разделения целой и дробной частей числа.
- В дробной части всегда выводится ровно две цифры, для целых и нецелых чисел. Например, значение
1
отображается как1.00
, а значение12.345
как12.35
(последний разряд округляется). - Символ-разделитель числовых групп игнорируется при вводе, но используется при выводе для разделения разрядов целой части (тройки цифр).
- При вводе допустимо использовать символ “точка”
.
в качестве символа-разделителя десятичной точки, если символ-разделитель числовых групп отличен от точки.
Дата и время¶
В контроле “Дата и время” в зависимости от настройки отображения Тип определяется, будет ли выполняться ввод и вывод даты и времени, даты без времени, времени без даты или интервала. При этом применяются параметры форматирования, аналогичные таковым для параметров фильтрации представлений.
-
Дата и время:
- Используются и параметры форматирования для даты, и параметры форматирования для времени.
- Компоненты даты и времени разделяются отступом.
- Если время выводится в 12-часовом формате, то при вводе разделитель
AM/PM
по умолчанию указан в позицииAM
. Чтобы его изменить, переместите выделение на эту позицию ([стрелка влево]
,[стрелка вправо]
), и нажмите клавишу[стрелка вверх]
или[стрелка вниз]
. Также можно ввести первую буквуA
дляAM
илиP
дляPM
.
-
Дата без времени:
- Используются параметры форматирования для даты.
- Компонента времени игнорируется, если присутствует.
-
Время без даты:
- Используются параметры форматирования для времени.
- Компонента даты игнорируется, если присутствует.
- Если время выводится в 12-часовом формате, то при вводе разделитель
AM/PM
по умолчанию указан в позицииAM
. Чтобы его изменить, переместите выделение на эту позицию ([стрелка влево]
,[стрелка вправо]
), и нажмите клавишу[стрелка вверх]
или[стрелка вниз]
. Также можно ввести первую буквуA
дляAM
илиP
дляPM
.
-
Интервал:
- Используются параметры форматирования для времени.
- Компонента даты игнорируется, если присутствует.
- Время всегда выводится в 24-часовом формате.
Формат поля¶
Контролы “Строка” (с флагом Только для чтения ), “Текст”, “Ссылка”, “Список” имеют настройку Формат поля, которая описывает, каким образом выводится строковое представление для колонок, указанных в настройке Поля карточки.
В первую очередь определяется порядок физических колонок, которые выводит контрол в соответствии с настройкой Поля карточки. В примере выше сначала указана комплексная колонка Partner
, которая в соответствии со схемой данных имеет физические колонки PartnerID
и PartnerName
, и дополнительно указана колонка DocDate
.
Это определяет следующий набор плейсхолдеров, ссылающихся на значение в колонке:
{0} - PartnerID
{1} - PartnerName
{2} - DocDate
Между цифрой и закрывающейся фигурной скобкой можно через двоеточие указать стандартную строку формата, аналогичную форматированию “custom format” в плейсхолдерах.
g
: дата со временем без указания секунд (пример:27.05.2022 18:09
).G
: дата со временем с секундами (пример:27.05.2022 18:09:30
).d
: дата без времени (пример:27.05.2022
).t
: время без указания секунд (пример:18:09
).T
: время с секундами (пример:18:09:30
).N
: число с разделителями разрядов, что удобно при выводе денежных сумм (пример:1 200 340,60
).
Note
За подробностями по использованию строк форматирования дат, времени и чисел обратитесь к документации .NET. Перечисленные здесь строки, а также строки с отдельными компонентами даты и времени поддерживаются в web-клиенте.
В формате поля {1}, {2:d}
выводится имя контрагента из колонки PartnerName
и далее, через запятую, дата документа DocDate
, которая форматируется строкой d
как дата без времени в соответствии с параметрами форматирования пользователя.
Warning
Для вывода даты и времени рекомендуем указать одну из стандартных строк форматирования, чтобы определить выводимые компоненты. По умолчанию для всех типов данных, содержащих дату и/или время (Date
, Time
, DateTime
, DateTime2
), определено форматирование по строке G
, т.е. вывод даты и времени с секундами. Для других типов данных значения выводятся аналогично колонкам представления.
Для параметров форматирования en
настроенный контрол будет выглядеть следующим образом (здесь в соответствии с настройками пользователя форматируется только дата, в плейсхолдере которой указана строка формата {2:d}
):
Note
Настройка Формат поля влияет на вывод значений в контролах, но не на их ввод. В контроле “Строка” настройка Формат поля игнорируется, если не указан флаг Только для чтения. В контролах “Ссылка” и “Список” значение форматируется после подтверждения ввода.
Формат колонки в контроле “Таблица”¶
В контроле “Таблица” по кнопке Колонки и форма настраивается список колонок, отображаемых пользователю в таблице. Для каждой колонки в настройке Формат колонки указывается строка формата, формируемая аналогично формату поля в строковых контролах.
В соответствии со значением в настройке Поля строки определяется список плейсхолдеров, соотносящихся с физическими колонками. В примере это:
{0} - WorkingDayStart
{1} - WorkingDayEnd
Note
Если связать колонку с комплексной колонкой, то плейсхолдеры назначались бы физическим колонкам внутри комплексной. Пример приведён в описании настройки Формат поля.
Между цифрой и закрывающейся фигурной скобкой можно через двоеточие указать стандартную строку формата, см. выше.
Строка формата {0:t} - {1:t}
выводит время без указания секунд из поля строки WorkingDayStart
, и через дефис - время без указания секунд из WorkingDayEnd
, при этом используются параметры форматирования пользователя.
Вот так это выглядит с параметрами форматирования en
:
Warning
Для вывода даты и времени рекомендуем указать одну из стандартных строк форматирования, чтобы определить выводимые компоненты. По умолчанию для всех типов данных, содержащих дату и/или время (Date
, Time
, DateTime
, DateTime2
), определено форматирование по строке G
, т.е. вывод даты и времени с секундами. Для других типов данных значения выводятся аналогично колонкам представления.
Контрол “Представлени唶
Контрол “Представление” выводит колонки и позволяет вводить параметры фильтрации в соответствии с той метаинформацией, которая указана у связанного с контролом представления.
Обратитесь к разделу Форматирование в представлениях. Перечисленные там особенности форматирования актуальны и для представлений, отображаемых в карточках.
Если же с представлением связано расширение “Таблица в представлении”, то по кнопке Колонки и форма определяются настройки отображаемых колонок.
Обратитесь к разделу Формат колонки в контроле “Таблица” за описанием настроек, их работа аналогична.
Форматирование в плейсхолдерах¶
Плейсхолдеры используются в различных функциях системы: в шаблонах файлов, в теме и тексте уведомлений, для определения дайджеста карточки, в действиях бизнес-процессов и др. Полный список мест использования доступен в профильном разделе документации.
При формировании строковых значений всех плейсхолдеров, например, {f:...}
и {t:...}
, используются правила форматирования, аналогичные колонкам представления, в зависимости от типа данных, который получает каждый из плейсхолдеров на входе. Например, для плейсхолдера {f:Table.Column}
форматирование определяется типом колонки по описанным выше правилам.
Warning
Важным исключением является вывод даты и времени. По умолчанию для всех типов данных, содержащих дату и/или время (в схеме данных это Date
, Time
, DateTime
, DateTime2
, в коде .NET - DateTime
, в коде TypeScript - Moment
), определён вывод даты и времени с секундами в соответствии с текущими параметрами форматирования в сессии. Если требуется вывести только дату или только время, то необходимо указать строку custom format
.
Строки custom format
в плейсхолдерах, указываемые после двоеточия (или после второго двоеточия, если после первого у этого плейсхолдера указывается параметр, такой как алиас колонки), могут дополнительно отформатировать вывод плейсхолдера по правилам, описанным выше.
Примеры плейсхолдеров:
{f:DocumentCommonInfo.DocDate:d}
заменяется на дату без времени из поля карточки Дата документа.{date}
, возвращающий текущие дату/время, в записи{date:T}
заменяется на текущее время с секундами без даты.{t:DocumentCommonInfo:Amount:N} {t:DocumentCommonInfo:CurrencyName}
заменяется на сумму договора с валютой, такую как10,000.00 USD
. Обратим внимание, что здесь строку:N
можно опустить, т.к. тип колонкиAmount
-Decimal
, а значит, к ней автоматически применяется форматирование для десятичного числа.
Использование в API¶
Для обеспечения корректного применения текущих параметров форматирования пользователя при выводе дат, времени, чисел и денежных сумм, необходимо следовать рекомендациям при использовании API в скриптах и расширениях.
C# / .NET (в скриптах, в серверных расширениях):
- Статические методы класса
FormattingHelper
используются для форматирования значений с учётом параметров пользователя:FormatValue
,FormatToString
,FormatDecimal
,FormatDateTimeWithoutSeconds
и др. - Методы
LocalizationManager.Format
позволяют сочетать локализацию (с учётом языка интерфейса пользователя) и форматирование подставляемых значений (с учётом параметров форматирования пользователя). - В проектах расширений основные методы
LocalizationManager
иFormattingHelper
добавлены как глобальные функции, которые можно вызывать без указания имени класса и подключения пространств имён, в соответствии с файломGlobalUsings.cs
в корне проекта. МетодыLocalizationManager.Format(Async)
вызываются какLocalizeFormat(Async)
. - При вызове метода
string.Format
с аргументами типовDateTime
,double
,decimal
следует явно передавать текущую культуру какstring.Format(LocalizationManager.CurrentCulture, format, args)
. - При вызове метода
ToString
для объектовDateTime
,double
,decimal
следует явно передавать текущую культуру какobj.ToString(format, LocalizationManager.CurrentCulture)
. - Для форматирования даты, времени, чисел и денежных величин необходимо использовать поддерживаемые типовые плейсхолдеры форматирования .NET. Например, необходимо указывать
{0:g}
вместо{0:dd.MM.yyyy HH:mm}
в вызовеstring.Format
для вывода даты и времени без секунд для учёта настроек форматирования пользователя. - Метод
LocalizationManager.GetCurrentFormattingSettingsAsync
возвращает объект с настройками форматирования текущего пользователяIFormattingSettings
, свойства которого соответствуют полям карточки. - При разработке элементов управления карточки, наследуемых от класса
ControlViewModelBase
, текущие настройки форматирования доступны через свойствоFormattingSettings
.
TypeScript (в web-клиенте):
- Функции из модуля
tessa/platform/formatting/formattingHelper
используются для форматирования значений с учётом параметров пользователя:formatValue
,formatToString
,formatDecimal
,formatDateTimeWithoutSeconds
и др.- Пример импорта:
import { formatToString } from 'tessa/platform/formatting'
.
- Пример импорта:
- Функция
localize
из модуля@tessa/application
используется как для локализации, так и для сочетания локализации (с учётом языка интерфейса пользователя) и форматирования подставляемых значений (с учётом параметров форматирования пользователя).- Пример импорта:
import { localize } from 'tessa/localization'
.
- Пример импорта:
- Свойство
FormattingManager.instance.settings
возвращает объект с настройками форматирования текущего пользователяIFormattingSettings
, свойства которого соответствуют полям карточки. - Для форматирования объектов
Moment
, содержащих дату/время, используется методformat
, которому передаются pattern-свойства объектаFormattingManager.instance.settings
. Например,momentObj.format(FormattingManager.instance.settings.dateTimeWithoutSecondsPattern)
.