#std763¶
Форматирование даты, числа, Булево: требования по локализации¶
1.¶
При использовании функции Формат в ряде случаев применяйте НСтр для форматной строки.
Форматная строка, заданная в свойствах метаданных (форм), всегда подлежит локализации, как и синоним.
1.1.¶
При выводе дат учитывайте, что в разных странах различаются порядок и разделители компонентов даты.
Поэтому вместо явного формата даты используйте локальный формат даты ДЛФ.
Если нужен произвольный формат (ДФ) или представление пустой даты (ДП), оборачивайте форматную строку в НСтр, чтобы она могла переводиться.
Неправильно
1.2.¶
Для чисел применяйте НСтр к форматной строке, когда:
- задается нечисловое представление нулевого значения (
ЧН); - задан шаблон форматирования числа (
ЧФ); - переопределяется разделитель дробной части (
ЧРД).
Неправильно
1.3.¶
Для вывода пользователю значений Булево всегда применяйте НСтр к форматной строке.
1.4.¶
Не переопределяйте локализацию отображения данных по умолчанию (формат ОС).
При использовании Формат избегайте параметра L=.
2.¶
При задании формата в полях ввода форм и полях отчетов на СКД также предпочитайте локальный формат даты.
Другой формат допустим, если локальный формат не подходит по смыслу задачи. В этом случае форматная строка должна переводиться при локализации конфигурации.
3.¶
При переопределении стандартных представлений полей в отчетах на СКД соблюдайте те же правила, что и в модульном коде.
4.¶
Если значение нужно передать в машиночитаемом виде независимо от настроек локализации, вместо локализации выполняйте сериализацию.
Локализацию дат используйте всегда, когда это возможно. Отказ от нее допустим только по технической необходимости (например, генерация XML для внешней специфичной системы).
В общем случае для сериализации используйте XMLСтрока, для десериализации XMLЗначение или ПривестиЗначение объекта ОписаниеТипов.
4.1.¶
Для собственных форматов обмена рекомендуется сериализация дат в формате ISO ГГГГ-ММ-ДДTЧЧ:ММ:ССZ (тип dateTime XML Schema): http://www.w3.org/TR/xmlschema-2/#dateTime.
Правильно
// Сериализация
Строка = XMLСтрока(Дата);
// Или
Строка = ЗаписатьДатуJSON(Дата, ФорматДатыJSON.ISO);
// Десериализация
ОписаниеТипа = Новый ОписаниеТипов("Дата");
Дата = ОписаниеТипа.ПривестиЗначение(Строка);
// Или
Дата = XMLЗначение(Тип("Дата"), Строка);
// Или
Дата = ПрочитатьДатуJSON(Строка, ФорматДатыJSON.ISO);
4.2.¶
Для чисел:
4.3.¶
Для Булево:
Неправильно
Проверки¶
#acc:335 #acc:1367 #acc:1368 #acc:1369