T
TIA
использовать проще, т.к. не нужен обработчик
Ну вот. Обсуждали, обсуждали, что GetDocumentByUNID всё равно надо заключать в функцию, обязательно имеющую обработчик. Т.к. в некоторых ситуациях GetDocumentByUNID бросает эксепшен и никакой проверки IsValid, IsArray выполнить уже не удастся.
Так что отсутствие обработчика -- не аргумент. Время выполнения doc.Items - операция сильно зависящая от количества и объёма полей.
Ладно, вот мои замеры. У документа 300 полей. Значение каждого поля -- строка из 16 байт. Каждая операция выполнялась 300 раз над одним и тем же документом.
=======================================
seconds % calls max.secs event
=======================================
00004,125 100,0% 0000001 00004,125 Total run time
00004,015 097,3% 0000001 00004,015 IsArray
00000,016 000,4% 0000001 00000,016 GetItemValue
00000,015 000,4% 0000001 00000,015 HasItem
=======================================
IsArray в 250 раз тормознее GetItemValue. Если учесть ещё распространённость вызовов GetDocumentByUNID -- существенная разница.
Тысячи документов -- обычное дело для серверного агента.если не ведется обработка тысяч документов