Показать сообщение отдельно
Старый 14.10.2009, 16:50   #11  
corner77 is offline
corner77
Участник
 
18 / 25 (1) +++
Регистрация: 28.04.2009
Цитата:
Всё нормально работает, как то не так окрываете...
Все нормально компилируется, но не работает

Джоб сделал такой:
X++:
    ttsBegin;
        address.overwriteSystemfields(true);
    while select forupdate address
    {
        address.(fieldNum(personTitleTable, dataAreaId)) = 'dat';
        address.overwriteSystemfields(true);
        address.update();
        //break;
    }

    ttsAbort;
метод overwriteSystemfields как мертвому припарка. Что с ним, что без него данные остаются неизменные, хотя джоб отрабатывает и ошибка не воспроизводится.

Можно сменить двумя способами - через чистый SQL c Connection, Statement и пр. Или через создание новой записи в другой компании и копировании данных в нее:

X++:
    select address;
    addressNew.company('dat');
    buf2buf(address, addressNew);
    addressNew.insert();
    address.delete();
buf2buf нужен, чтобы компания осталась без изменения (data() сменит компанию)