Показать сообщение отдельно
Старый 15.11.2011, 12:39   #1  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Приветствую!
Много раз задавался вопросом, почему сделано именно так. Встречал в нескольких местах в системе. Вот код процедуры из 37 таблицы:

Код:
ItemChargeAssgntSales.SETCURRENTKEY(
  "Applies-to Doc. Type","Applies-to Doc. No.","Applies-to Doc. Line No.");
ItemChargeAssgntSales.SETRANGE("Applies-to Doc. Type",DocType);
ItemChargeAssgntSales.SETRANGE("Applies-to Doc. No.",DocNo);
ItemChargeAssgntSales.SETRANGE("Applies-to Doc. Line No.",DocLineNo);
IF NOT ItemChargeAssgntSales.ISEMPTY THEN
  ItemChargeAssgntSales.DELETEALL(TRUE);
Вопрос: Зачем проверять методом ISEMPTY, если DELETEALL и так удаляет?
Единственное объяснение у меня - т.к. ISEMPTY быстрее позволяет обнаружить наличие записей, чем DELETEALL. Т.е. deleteall будет дольше искать записи для их удаления по сложному фильтру, нежели это делает ISEMPTY.
Так ли это? Есть еще какие-нибудь предположения?