• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Атрибут между классами

Автор Ярослав ЕТМ, 15.11.17, 11:50:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ярослав ЕТМ

Ситуация следующая, есть типовый ТП, в нем есть атрибут «Обозначение тех. док.» в который записывается номер ТТП. Нельзя ли сделать так что бы содержимое этого атрибута автоматически попадало в единичный ТП? (например в атрибут Обозначение основного документа или любой другой)

tur

Добавьте его в функцию "afterconstruction"
Или Вы про карту?

Ярослав ЕТМ

Я не совсем Вас понял, можно немножко подробнее, приведите пример строки (если не сложно) и в каком классе нужно редактировать функцию? Да, этот атрибут будет использоваться в картах но это потом, основная задача состоит в том что бы обозначение типового процесса попадало в единичный.

tur

Если из Типового в Единичный то в вычисляемом атрибуте Единичного ТП должно быть, нечто подобное:

'В этом атрибуте в атрибут для типа Оборудование (подчиненного для операции), тянется номер цеха из вышестоящей операции

function box_operations_get(obj)
On Error Resume Next
  Set VParents = obj.vrObjectsVector.vrCreateIterator("operations",obj,false)
  If VParents.vrFirst Then
   Set VParent = VParents.vrGetObject
    box_operations_get = VParent.vrAttrByName("num").vrValue ' num - атрибут который нужно вытащить с верхнего уровня
  End If
End Function

P.S. Сработает или нет на типовом, не проверял, некогда, но по идее должно сработать.
Приведенный пример для оборудования работает уже давно и без всяких проблем.

ВОЗМОЖНО ТАК:


On Error Resume Next
  Set VParents = obj.vrObjectsVector.vrCreateIterator("ttp или возможно ttps",obj,false)
  If VParents.vrFirst Then
   Set VParent = VParents.vrGetObject
    box_operations_get = VParent.vrAttrByName("Обозначение типового ТП").vrValue
  End If

И не забывайте, что для работы нужно переключится с объекта на объект. только после это сработает вычисление.

Ярослав ЕТМ

Идея понятна, спасибо. Синтаксис тоже понятен, отдельное спасибо. Но, не работает. : (

tur

Я не знаю какая у вас Вертикаль, но вроде имя атрибута должно быть box_operations
А имя вычисляемой функции box_operations_get
P.S. В Вертикали со скриптами сильно накручено.