Денежные поля: требования по локализации

#std778

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1. Для обеспечения работы конфигурации в странах с низким курсом национальной валюты, необходимо предусмотреть увеличение разрядности целой части числовых полей (реквизитов, ресурсов, измерений), содержащих денежный эквивалент – денежные поля. Примеры денежных полей: Сумма, Цена, Себестоимость.

Для этого в метаданных

В тех случаях, когда определяемый тип невозможно указать (например, в качестве типа для параметра формы или включить в составной тип), то следует задать числовой тип максимальной длины - Число(31, 2). При этом в отдельных случаях эта длина должна быть снижена из-за ограничений СУБД, например, в ресурсах регистров.

2. При использовании в конфигурации Библиотеки стандартных подсистем не следует использовать конструктор типа Число для получения описания типа денежного поля. Вместо этого использовать функцию, возвращающую описание на основании определяемого типа.

Неправильно:

ОписаниеТиповСумма = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2));

Правильно:

ОписаниеТиповСумма = РаботаСКурсамиВалют.ОписаниеТипаДенежногоПоля();

3. При использовании ВЫРАЗИТЬ в текстах запросов для денежных полей, использовать приведение к типу ЧИСЛО(31,2), что обеспечивает поддержку максимальной длины целой части 29. Ограничение длины целой части 29 обусловлено поддержкой сервера DB2.

Неправильно:

ВЫРАЗИТЬ(Т.Сумма / Т.Количество КАК ЧИСЛО(15,2))

Правильно:

ВЫРАЗИТЬ(Т.Сумма / Т.Количество КАК ЧИСЛО(31,2))

4. При использовании функции Формат и при задании формата в свойствах элементов формы, свойствах полей наборов схем компоновки данных и т.д. не следует задавать общую длину.

Неправильно:

Формат(Выборка.СуммаДокумента, "ЧЦ=15; ЧДЦ=2")

Правильно:

Формат(Выборка.СуммаДокумента, "ЧДЦ=2")

Неправильно:

Правильно: