Показать сообщение отдельно
Старый 06.07.2018, 11:59   #10  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
396 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Спасибо за подсказки. Пока сделал еще несколько тестов.

Вот эти три сообщения выдают правильное значение "05-07-18":

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");

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

Date.RESET;
Date.SETRANGE("Period Type",Date."Period Type":ate);
Date.SETFILTER("Period Start",'>=%1&<=%2', DMY2DATE(5,7,2018),DMY2DATE(5,7,2018));
IF Date.FINDLAST THEN
MESSAGE('%1', Date."Period Start");


А вот эти три выдают "01-01-9999", т.е. последнее значение в виртуальной таблице:

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

Date.RESET;
Date.SETRANGE("Period Type",Date."Period Type":ate);
Date.SETFILTER("Period Start",'>%1&<%2', DMY2DATE(4,7,2018),DMY2DATE(6,7,2018));
IF Date.FINDLAST THEN
MESSAGE('%1', Date."Period Start");

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

Т.е. даже если диапазон или фильтр используют два одинаковых значения, т.е. сортировка не должна влиять, запрос всё равно не работает.

Похоже, придется в майкрософтовскую поддержку обращаться.