Показать сообщение отдельно
Старый 02.09.2015, 15:58   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,711 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Как оказалось, в Ax2012 метод SysQuery::value() выполняет разбор символьной строки и экранирует ряд спец.символов наклонной чертой. В данном случае, экранируется символ точки в значении "632.000"

X++:
SELECT * FROM MainAccount(MainAccount_1) WHERE ((MainAccountId = N'632\.000')) ...
Это значит, что обрамление значений функцией SysQuery::value() - обязательно! Именно с целью экранирования возможных спец.символов, которые могут встречаться в значении. Вероятно, из-за этого у Вас запрос и не запускался. Символ точки в значении "632.000" как-то мешал корректной работе запроса.

PS: Кстати, проверил. Действительно, без экранировки спец.символов через SysQuery::value() соответствующие значения не находятся в таблице. Ошибок не возникает, просто запись не находит...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 02.09.2015 в 16:18.
За это сообщение автора поблагодарили: AlGol (2).