Ваш браузер устарел, не поддерживает современные веб-стандарты и представляет угрозу Вашей безопасности. Для комфортной работы с порталом, пожалуйста, установите современыый браузер.
Портал технической поддержки

Доступ к карточке, размещенной в конструкторе справочников по GUID

Комментарии

Комментариев: 3

  • Официальный комментарий

    Чего именно Id известен?

    Если записи, то достаточно получить запись справочника по Id:
    BaseUniversalItem item = objectContext.GetObject<BaseUniversalItem>(itemId);
    // item.ItemCard - карточка записи

    Если Id карточки записи, то запись можно найти через FindObject:
    BaseUniversalItem item = objectContext.FindObject<BaseUniversalItem>(new QueryObject(RefBaseUniversal.Items.ItemCard, itemCardId));

    Если Id значения из карточки записи, то тут лучше сделать обычный поисковый запрос для нахождения этой карточки, а дальше, найдя карточку, уже получать запись.

    Действия с комментариями Постоянная ссылка
  • Avatar
    Юрий Нойкин

    Сделал как вы сказали, получаю карточку через BaseUniversalItem item = objectContext.GetObject<BaseUniversalItem>(itemId);

    Однако где-то раз из 10, при выборе значения из поля или при открытии карточки получаю ошибку в поле на событии ValueChanged.

    Property 'BaseUniversalItemCardMainInfo:Согласованты1' not registered. в DocsVision.Platform.ObjectModel.ObjectBase.GetValue(String propertyName)
    в BackOffice.CardDocumentОтчет_исполнителяScript.Предприятие_ValueChanged(Object sender, EventArgs e) на строке 378
    enterpriseGuid = ae7abff7-9f0c-4126-b108-1b6ace7e14f1

     

    ILayoutPropertyItem curEnterprise = customizable.FindPropertyItem<ILayoutPropertyItem>("Предприятие");

    Guid enterpriseGuid = new Guid(curEnterprise.ControlValue.ToString());

    BaseUniversalItem item1 = CardControl.ObjectContext.GetObject<BaseUniversalItem>(enterpriseGuid);

    if (item1 != null)
    {
        if (item1.ItemCard != null)

         {

         // Здесь происходит ошибка

           string DNRSGroupValue = item1.ItemCard.MainInfo.GetValue("Согласованты1").ToString(); // Согласованты ДНРС

         // Здесь происходит ошибка

           IEnumerable<StaffEmployee> expertsDNRS = staffService.GetGroupEmployees(staffService.GetGroup(new Guid (DNRSGroupValue)));

    ....

          }

    }

     

     

    0
    Действия с комментариями Постоянная ссылка
  • Методом GetValue пользоваться нельзя никогда и ни при каких обстоятельствах.

    Можно использовать только индексер [] или GetGuid для идентификаторов.

     

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.