Показать сообщение отдельно
Старый 16.07.2008, 12:18   #7  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Кстати.
Из-за этого бага могут быть проблемы при сравнивании "больших" методов в Ax 3.
Например, при импортировании CustVendSettle с изменениями в конце метода settleNow() стандартная сравнивалка изменений не заметит.
Так что для тройки желательно подправить SysCompare.strCompare(), например, так:

X++:
boolean strCompare(str s1, str s2, boolean source=true)
{
    if (_suppressWhiteSpace && source)
    {
        s1 = SysCompareText::suppressWhiteSpace(s1);
        s2 = SysCompareText::suppressWhiteSpace(s2);
    }
    if (_caseSensitive)
        return strCmp(s1,s2) == 0;

    // бла бла бла -->
    // Баг в Ax 3. Неправильное сравнение строк длиной более 32767 символов
    // Исправлено в AX 4
    if (strlen(s1) > 32767 || strlen(s2) > 32767)
        return strCmp(strUpr(s1), strUpr(s2)) == 0;
    // бла бла бла <--

    return s1 == s2;
}
Можно еще проверять версию аксапты как, например, тут: .#ifdef.ax4
За это сообщение автора поблагодарили: mazzy (2), Logger (3).