...

Не отображаются добавленные атрибуты документа в сценарии

Тема в разделе "Разработчикам", создана пользователем a.shishlov, 3 окт 2018.

  1. a.shishlov

    a.shishlov New Member

    Доброго времени суток.

    Создаю тип документа doc1, в нем создаю атрибут atr1.
    Сохраняю, опубликовываю тип документ.

    Далее в БП создаю документ (используя стандартный блок создания документа модуля документооборота). Контекстная переменная документа - document.

    Затем пытаюсь изменить или прочитать атрибут этого документа через context.documetn.atr1 - выдает ошибку, что такого поля не существует.

    Подскажите. в чем может быть проблема?
     
  2. pushkarev

    pushkarev Active Member

    А вы перезагружали сервер ELMA после публикации типа документа?
    Дело в том, что изменение объектной модели (объектов, типов документов, типов проектов) требует перезапуска сервера ELMA, и без него не появится в системе. Посмотреть требуется ли перезапуск системы можно в дизайнере на вкладке "Публикация", там указывается если нужно перезапустить сервер.
     
  3. a.shishlov

    a.shishlov New Member

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

    pushkarev Active Member

    Если я вас правильно понял, то скорее всего стоит просто перезапустить дизайнер, если у вас уже перезапускался сервер после изменения типа документа.
     
  5. a.shishlov

    a.shishlov New Member

    Не помогает. возможно, я что-то не так делаю?

    Попробую чуть подробнее описать:
    Элемент создания документа. Здесь тип документа - doc1. В типе документа есть атрибут atr1.
    на вкладке "Документы" указана переменная контекста document, тип - Документ(Объект).

    после элемента создания документа идет элемент сценария.
    В нем я пишу context.document.atr1 - и здесь выдает ошибку. Причем данного атрибута нет в выпадающей подсказке, там только базовые атрибуты.
     
  6. pushkarev

    pushkarev Active Member

    Тогда понятно :) Смотрите в контексте у вас используется базовый тип документа, в котором нет вашего атрибута atr1, соответственно и в сценарии он вам не дает обращаться к такому полю, потому что считает, что там лежит базовый тип документа. Если вам нужно обращаться к полю atr1, то и переменная хранящая документ должна быть соответствующего типа, то есть doc1. Поэтому вам нужно либо завести другое поле с типом doc1 и везде использовать его, либо в коде сделать приведение типа переменной document, к типу doc1, но замечу, если у вас фактически в этой переменной будет лежать не документ типа doc1, а документ другого типа, то процесс выдаст ошибку.
     
    1 это нравится
  7. a.shishlov

    a.shishlov New Member

    Да, действительно. Спасибо большое!
     
    1 это нравится

Поделиться: