Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1. Для обеспечения работы конфигурации в странах с низким курсом национальной валюты, необходимо предусмотреть увеличение разрядности целой части числовых полей (реквизитов, ресурсов, измерений), содержащих денежный эквивалент – денежные поля. Примеры денежных полей: Сумма, Цена, Себестоимость.
Для этого в метаданных
В тех случаях, когда определяемый тип невозможно указать (например, в качестве типа для параметра формы или включить в составной тип), то следует задать числовой тип максимальной длины - Число(31, 2). При этом в отдельных случаях эта длина должна быть снижена из-за ограничений СУБД, например, в ресурсах регистров.
2. При использовании в конфигурации Библиотеки стандартных подсистем не следует использовать конструктор типа Число для получения описания типа денежного поля. Вместо этого использовать функцию, возвращающую описание на основании определяемого типа.
Неправильно:
ОписаниеТиповСумма = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2));
Правильно:
ОписаниеТиповСумма = РаботаСКурсамиВалют.ОписаниеТипаДенежногоПоля();
3. При использовании ВЫРАЗИТЬ в текстах запросов для денежных полей, использовать приведение к типу ЧИСЛО(31,2), что обеспечивает поддержку максимальной длины целой части 29. Ограничение длины целой части 29 обусловлено поддержкой сервера DB2.
Неправильно:
ВЫРАЗИТЬ(Т.Сумма / Т.Количество КАК ЧИСЛО(15,2))
Правильно:
ВЫРАЗИТЬ(Т.Сумма / Т.Количество КАК ЧИСЛО(31,2))
4. При использовании функции Формат и при задании формата в свойствах элементов формы, свойствах полей наборов схем компоновки данных и т.д. не следует задавать общую длину.
Неправильно:
Формат(Выборка.СуммаДокумента, "ЧЦ=15; ЧДЦ=2")
Правильно:
Формат(Выборка.СуммаДокумента, "ЧДЦ=2")
Неправильно:
Правильно: