Тема: Показать зависимый объект (по имени) на экране

objectvariable.CM_SelectChildItem( Name )

          Set TP = TCSApp.NmkTechnologyVersions(NMK_ID)
...
          Call TP.CM_ShowChildItem( False, "*" )
          Call TP.CM_ShowChildItem( True, "Техпроцесс" )
          If Not TP.IsEmpty Then Call TP.CM_SelectChildItem( "NmkTechnology" )

Не срабатывает CM_SelectChildItem
Зависимый объект есть, а сам модуль "Техпроцесс" не показан.
Приходится на каждой записи вручную нажимать кнопочку справа - "Техпроцесс"
Может, я что-то не указала.
(Вариант Call TP.CM_SelectChildItem( "Техпроцесс" ) пробовала на всякий случай, тоже не подходит.)

Post's attachments

2018-12-17_14-49-13.jpg 43.17 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

Re: Показать зависимый объект (по имени) на экране

Call TP.CM_ShowChildItem( False, "*" )
Call TP.CM_ShowChildItem( True, "Техпроцесс" )
Call TP.CM_ApplyCustomization
If Not TP.IsEmpty Then Call TP.CM_SelectChildItem( "NmkTechnology" )

А так?

Re: Показать зависимый объект (по имени) на экране

Не в это дело скорей всего.

Во первых SelectChildItem - выбирает зависимый объект, а он называется Technology.
Во вторых - эти методы работают по факту когда модуль видимый (то есть вы его показали где то), иначе его вызов не понятен.

Пример во вложении

Post's attachments

TestShowTPForm.eiScript 1.16 Кб, 2 скачиваний с 2018-12-18 

You don't have the permssions to download the attachments of this post.

Re: Показать зависимый объект (по имени) на экране

Олег Зырянов пишет:

Не в это дело скорей всего.

Во первых SelectChildItem - выбирает зависимый объект, а он называется Technology.
Во вторых - эти методы работают по факту когда модуль видимый (то есть вы его показали где то), иначе его вызов не понятен.

Пример во вложении

Спасибо, разобралась.
Все было верно кроме имени модуля.

Я брала имя "NmkTechnology" Caption="Техпроцесс" из зависимых объектов на закладках API Explorer
IPModule/Properties/
А надо было на закладках
IDModule/ChildModules/
имя "Technology" Caption="Техпроцесс"

Поменяла имя - заработало
          If Not TP.IsEmpty Then Call TP.CM_SelectChildItem( "Technology" )
Потом бы в описании это уточнить.

Re: Показать зависимый объект (по имени) на экране

Нет, все же у меня разрыв шаблона.

Судя по именам полей таблицы "Техпроцесс" она все же взята из
зависимых объектов
IPModule/Properties/NmkTechnology, а не IDModule/ChildModules/Technology
но с именем "Technology" (((

Re: Показать зависимый объект (по имени) на экране

А разрыв то в чем? Есть Properties - это то что для использования в АПИ создано.Это то, что мы стараемся поддерживать, чтобы программы написанные с использованием АПИ работали от версии к версии без проблем.

А ChildModules (и другие вещи подобные есть) - это то что видит пользователь на экране в TechnologiCS. Этот список постоянно меняется от версии к версии (переименовывается, удаляется, изменяется и пр.). Но когда АПИ на модуль нет, либо данные надо прочитать с экрана - этим способом можно воспользоваться, хотя нет никакой гарантии что с первым же обновлением все это не перестанет работать (это наши внутренние объекты)

(изменено: Кузнецова Марина, 18 декабря 2018 18:02:13, причина: Скриншот)

Re: Показать зависимый объект (по имени) на экране

Разрыв в том, что в  Properties стоит "NmkTechnology",
а в команде надо писать "Technology"

И API Explorer тоже генерит
    Set @ = TCSApp.NmkTechnologyVersions(NmkId)
    If Not @ Is Nothing Then
    End if
    Set @ = Nothing
      @ = TCSActiveModule.IsParameterValues
       Set Module_5 = Module_4.Properties("NmkTechnology").AsIDispatch
      If  Not Module_5 Is Nothing Then
      End If
      Set Module_5 = Nothing

Post's attachments

2018-12-18_12-04-26.jpg 83.82 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

Re: Показать зависимый объект (по имени) на экране

Все правильно! Properties - это АПИ! и пользователь к нему доступа не имеет никак. Работу с ним пишите вы через АПИ.
ChildModules - это TechnologiCS. То что и видит пользователь.

Это просто совершенно разные вещи.

Мы их можем соединить конечно, но в АПИ вы вы видите только то что разработчики вынесли в АПИ, а в ChildModules все как есть (иногда это бывает нужно).