Показать сообщение отдельно
Старый 02.07.2021, 11:40   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,658 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Поле "XXX" (= -0,000) может содержать только положительные числа
dax2012 R3

Поле имеет свойство AllowNegative = No. Т.е. запрет отрицательных значений

X++:
ttsbegin;

qty = (  );    // здесь расчет значения
qty = decRound(qty, 3);
myTab.MyField = qty;

if (myTab.MyField < 0)
   throw error('Отрицательное значение');

if (myTab.validateWrite())
{
    myTab.update();
}

ttscommit;

Иногда! При выполнении этого кода в пакете получаю указанную в названии темы ошибку


Цитата:
Поле "XXX" (= -0,000) может содержать только положительные числа

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

Пока обошел проблему вот так

X++:
ttsbegin;

qty = (  );    // здесь расчет значения
qty = decRound(qty, 3);

// Если в результате расчет ноль, то явно указать ноль
if (qty == 0)
{
     qty = 0;
}

myTab.MyField = qty;

if (myTab.MyField < 0)
   throw error('Отрицательное значение');

if (myTab.validateWrite())
{
    myTab.update();
}

ttscommit;
Никто не сталкивался с такой проблемой?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...