Re: Параметр N_ORDTRTP_OPERPOS

В версии TCS 4.0.3 в плане производства был параметр N_ORDTRTP_OPERPOS, где он находится в TCS 4.3?

Re: Параметр N_ORDTRTP_OPERPOS

Этот параметр "попахивает" именем поля. Если вы используете ChildModules то состав их свойств может меняться от версии к версии. Поэтому лучше вязаться на декларированные интерфейсы и их свойства.

Re: Параметр N_ORDTRTP_OPERPOS

А поподробнее можно?

Re: Параметр N_ORDTRTP_OPERPOS

А что именно?

У модуля есть список свойст - Properties - то через что рекомендуется работать. Тут есть нормальные названия свойств, русские названия. Свойства могут быть редактируемыми, о чем говорят соответствующие методы.

Есть список команд - ActionList - набор команд, может меняться от версии к версии, если используетте то имейте это ввиду.
Есть список ChildModules - набор зависммых объектов. Он тоже может менять отверсии к версии, доступен только на чтение. Если используете то имейте это в виду.

Если вы создаете макрос, то обратите внимание на галочку IModule2.IsChildModule - она указывает создан ли для модуля стандартный интерфейс, или же просто зависимый объект по умолчанию ( в последнем случае работают все правила для зависимых объектов).

Re: Параметр N_ORDTRTP_OPERPOS

Непонятно, как именно вязаться к этим декларированным интерфейсам?
Я всегда использовал TCSActiveModule.Properties(...). Разработчики божились, что сохранится приемственность версий, т.е. скрипты из 4.0.3 будут работать в 4.3. Возможно ли написать скрипт который не будет привязан к версии TCS? Или придется каждый раз от версии к версии переписывать скрипты?

Re: Параметр N_ORDTRTP_OPERPOS

TCSActiveModule.Properties(...)  это все правильно, только вот если   
IModule2.IsChildModule =True то значит никакого интерфейса не создано,а создан по умолчанию - т. е. тот который не поддерживается. Скрипты вы из любых мест можетет создавать и запускать, поэтому обращайте на это внимание. https://forum.technologics.ru/docs-hz/T … ule_13.htm,
https://forum.technologics.ru/docs-hz/T … les_13.htm

please-change-link

Re: Параметр N_ORDTRTP_OPERPOS

Ни чего не понимаю, как же тогда быть?
В примере до спецификации добираются через зависимые объекты.

Re: Параметр N_ORDTRTP_OPERPOS

ну их же не запрещено использовать. Просто свои нюансы есть.

Re: Параметр N_ORDTRTP_OPERPOS

Возможно ли написать скрипт не зависимый от версий?

Re: Параметр N_ORDTRTP_OPERPOS

AlexB писал(а):
Возможно ли написать скрипт не зависимый от версий?

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

Re: Параметр N_ORDTRTP_OPERPOS

Т.е. от версии к версии скрипты нужно будет переписывать?
Что мне делать с N_ORDTRTP_OPERPOS?

Re: Параметр N_ORDTRTP_OPERPOS

AlexB писал(а):
Т.е. от версии к версии скрипты нужно будет переписывать?
Что мне делать с N_ORDTRTP_OPERPOS?


Не все, но некоторые придется переписывать.

Re: Параметр N_ORDTRTP_OPERPOS

В нашем API существуют два вида интерфейсов, у одних IsChildModule = False, а у других IsChildModule = True. Те, у которых IsChildModule = False, являются "поддерживаемыми" интерфейсами, они не изменяют свои старые свойства от версии к версии, только могут получить новые. Такие интерфейсы в основном позволяют редактировать данные, так же у них проработаны имена свойств и написаны к ним Caption на русском языке, позволяющие определить что за данные в них находятся. Поэтому если ваш скрипт использует такие интерфейсы, то его не прийдется переписывать для новой версии.

Интерфейсы, у которых IsChildModule = False, создаются "автоматически" где нет проработанных интерфейсов, и предназначены в основном только для чтения. Свойства в них не всегда имеют понятные имена (типа N_ORDTRTP_OPERPOS) и могут не иметь описания. Такие интерфейсы в новой версии могут изменить имена свойств, так же может измениться их состав. В новой версии на месте такого интерфейса может появиться "поддерживаемый" интерфейс, который по составу своих свойств будет кардинально отличаться от предшественника. Если ваш скрипт в своей работе использует интерфейс у которого IsChildModule = True, то большая вероятность что его прийдется переписывать в новой версии.