Перейти к содержанию

Форматирование дат и чисел

При вводе и выводе дат, времени, чисел и денежных сумм система использует параметры форматирования, соответствующие настройкам сотрудника.

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

Настройки форматирования определяются в карточках справочника, который доступен в рабочем месте “Администратор” в представлении “Служебные → Форматирование дат и чисел”.

Дважды нажмите на строку с карточкой, чтобы открыть диалог с параметрами. Или нажмите на кнопку “карандаша”, чтобы создать новую карточку.

Поля карточки:

  • Заголовок - отображаемое пользователю имя параметров форматирования. Может быть любой строкой, в т.ч. неуникальной. Обычно это название культуры (языка), заданной в поле “Имя культуры”.
  • Имя культуры - строковый уникальный идентификатор карточки, который должен соотноситься с действительной культурой по стандарту 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 в типовом решении доступны следующие карточки с преднастроенными параметрами форматирования дат и чисел.

  1. en (заголовок English) - параметры для английского языка.

  2. ru (заголовок Русский) - параметры для русского языка.

Вы можете переопределить указанные карточки в проектном решении, экспортировав и заменив их в папке конфигурации проектного репозитория по пути Configuration/Cards/Format settings.

Определение параметров форматирования

При первом логине пользователя автоматически определяется имя культуры, по которым система связывает с сотрудником карточку с параметрами форматирования.

  1. В desktop-клиенте это соотносится с культурой в панели управления в разделе “Язык и региональные параметры”.

  2. В web-клиенте используется язык интерфейса браузера.

Алгоритм определения параметров форматирования по имени культуры:

  • Если отсутствуют параметры для культуры с регионом, то задействуются параметры нейтральной культуры, где указан только язык. Например, у пользователя определены региональные параметры “Русский (Россия)”, что соответствует культуре ru-RU. Если отсутствует карточка с именем культуры ru-RU, то используются настройки из карточки ru “Русский”.
  • Если отсутствуют подходящие параметры для языка сотрудника, то используется карточка для английского языка en.

Изменение параметров форматирования

После того, как пользователь выполнил логин, в его карточке сотрудника определённые выше параметры записываются в поле “Форматирование дат и чисел”, и в дальнейшем используются они.

Пользователь может изменить параметры форматирования, выбрав в правой боковой панели плитку “Мои настройки → Форматирование дат и чисел → (Заголовок карточки с параметрами)” (текущие параметры отмечены галкой).

  • desktop-клиент предложит пользователю перезапустить приложение. Пользователь может также изменить язык интерфейса, после чего закрыть окно приложения и вновь его открыть из Tessa Applications. До перезапуска параметры форматирования не оказывают влияния на ввод и вывод дат и чисел.
  • web-клиент откроет диалог подтверждения на перезапуск приложения. Если пользователь согласится, то страница браузера автоматически обновится, что аналогично нажатию на кнопку обновления страницы браузера. При этом повторный логин не потребуется, и пользователь продолжит работу от ранее открытой сессии, в свойствах которой (в таблице Sessions) будут изменены текущие используемые настройки форматирования. Это поведение аналогично изменению языка интерфейса.

Перед первым логином пользователя администратор системы может открыть его карточку сотрудника, и заполнить предпочитаемое значение в поле “Форматирование дат и чисел”. В этом случае автоматическое определение не будет выполняться.

Также возможна ситуация, когда в карточке сотрудника поле не заполнено (логин не выполнялся), но система должна отправить пользователю почтовое уведомление, отобразив для него даты и числа понятным образом. Для этого, по аналогии с определением языка уведомлений, используется поле “Настройки форматирования дат и чисел в уведомлениях по умолчанию” в карточке настроек “Типовое решение”.

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 (в скриптах, в серверных расширениях и в desktop-клиенте):

  • Используйте статические методы класса 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).
Back to top