Показать сообщение отдельно
Старый 05.07.2018, 15:34   #1  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
396 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Date.SETRANGE не работает
Коллеги, я вообще по AX, а тут попался проект на NAV, сижу ковыряюсь.

Не могу понять, что происходит с Date.SETRANGE, если указаны и второй, и третий параметры.

К примеру, вот это:

Date.RESET;
Date.SETRANGE("Period Type",Date."Period Type"ate);
Date.SETRANGE("Period Start",DMY2DATE(5,7,2018));
IF Date.FINDLAST THEN
MESSAGE('%1', Date."Period Start");

... как и положено возвращает сообщение "05-07-18".

А вот это:

Date.RESET;
Date.SETRANGE("Period Type",Date."Period Type"ate);
Date.SETRANGE("Period Start",DMY2DATE(5,7,2018),CALCDATE('<CM>',DMY2DATE(5,7,2018)));
IF Date.FINDLAST THEN
MESSAGE('%1', Date."Period Start");

... возвращает 01-01-1999, т.е. не просто дата не та, но и год стал четырехзначный.

Подозреваю, что проблема в collations. Подскажите, куда копать?


---
NAV 2018
Server collation: Danish_Norwegian_CI_AS
Database collation: Latin1_General_100_CS_AS
И на клиенте, и на SQL сервере в Виндах выбран датский регион, т.е. с форматом даты dd-mm-yyyy

Последний раз редактировалось Stitch_MS; 05.07.2018 в 15:48.