Re: Обработка исключений
Здравствуйте, уважаемые!
Есть вот такой кусок кода:
// GUID представляет собой вот такую строчку 2c0ded82-2d48-11dd-90b1-001708508aba if not BalanceDocs.Locate['NUMBER', GUID, 0] then begin DocDate:= StrToDate(Copy(ADODataSet.Fields[3].AsString, 0, 10)); i:= BalanceDocs.AddBalanceDocument['', DocDate, ADODataSet.Fields[2].AsString, ADODataSet.Fields[10].AsString, DocType, CehID, -1, 0, '', -1]; BalanceDocs.DateStart:= DocDate - 1; BalanceDocs.DateEnd:= DocDate + 1; BalanceDocs.Refresh; if BalanceDocs.Locate['ID', i, 0] then begin BalanceDocs.Edit; BalanceDocs.Properties['NUMBER'].AsString:= GUID; try BalanceDocs.SaveChanges; except BalanceDocs.CancelChanges; end; end; end;
Этот кусок взят из программы импорта учетных документов из dbf файла в ТКС (dbf формировался из 1С). В этом куске кода создается учетный документ, если его не существует. Проблема в том, что на одном из GUIDов почему то документ не находится (хотя он существует) и документ создается вновь, но при попытке переименовать его возникает ошибка, ТКС пишет, что документ уже существует и не может переименовать его.
Собственно сам вопрос: как можно обработать эту ошибку и сделать так, чтоб она не выводилась на экран? Блок try...except не помогает. Может это нужно делать как то подругому?