Кто-нибудь! Объясните, пожалуйста, что делает параметр UniqueCode в
function GetSingleItemByCode(Code, UniqueCode) {
if (Services.AlwaysGetLastItemVersion){
return Services.GetNewItemByUSI(Code);
}
if (IsEmptyValue(Code)) {
return null;
}
if (IsEmptyValue(UniqueCode)) {
UniqueCode = '';
}
var SingleItemsDictionary = Connector.Attributes('SingleItemsDictionary');
if (!Assigned(SingleItemsDictionary)) {
SingleItemsDictionary = GetNewDictionary();
Connector.Attributes('SingleItemsDictionary') = SingleItemsDictionary;
}
var ServiceKey = Code + UniqueCode;
var Item = SingleItemsDictionary(ServiceKey);
if (!Assigned(Item)) {
Item = Services.GetNewItemByUSI(Code);
SingleItemsDictionary(ServiceKey) = Item;
}
if (Item.ServiceTypeCode == 'DBDataset') {
Item.Close();
}
return Item;
}
if (Services.AlwaysGetLastItemVersion){
return Services.GetNewItemByUSI(Code);
}
if (IsEmptyValue(Code)) {
return null;
}
if (IsEmptyValue(UniqueCode)) {
UniqueCode = '';
}
var SingleItemsDictionary = Connector.Attributes('SingleItemsDictionary');
if (!Assigned(SingleItemsDictionary)) {
SingleItemsDictionary = GetNewDictionary();
Connector.Attributes('SingleItemsDictionary') = SingleItemsDictionary;
}
var ServiceKey = Code + UniqueCode;
var Item = SingleItemsDictionary(ServiceKey);
if (!Assigned(Item)) {
Item = Services.GetNewItemByUSI(Code);
SingleItemsDictionary(ServiceKey) = Item;
}
if (Item.ServiceTypeCode == 'DBDataset') {
Item.Close();
}
return Item;
}
Я уже давно на это смотрю, но так и не понял
Нравится
2 комментария
4 марта 2013 15:35
Если его задавать разным для одного USI сервиса - будут разные объекты в памяти.
Если одинаковым для одного USI сервиса - будет возвращать ссылку на один и тот же объект, что экономит время на его создание.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать