Re: импорт скриптов

к форме может быть привязан только один модуль формы
правильно ?
например в режиме "Спецификации" это CSDN_Specification
значит в режиме спецификации я свой макрос могу записать только в 
CSDN_Specification
тогда при импорте скриптов например из новой версии Technologics
мои скрипты пропадут ?
спасибо

Re: импорт скриптов

В системе TechnologiCS существует два вида скриптовых модулей:
1.Привязанный к форме (модуль формы).
2.Не привязанный к форме (библиотека скриптов).

К каждой форме TechnologiCS может быть привязан только один модуль формы. Модулей, не привязанных к форме (библиотек скриптов), можно создавать неограниченное количество; создаются они в режиме Справочники -> Скриптовые модули. При редактировании текста модуля одним пользователем, другие пользователи могут его только просматривать. При импорте в систему скриптовых модулей, происходит перезапись модулей с одинаковыми наименованиями и/или с одинаковыми привязками. В связи с чем предлагается следующая методика работы:
Все процедуры и функции, содержащие выполняемый код необходимо писать в скриптовых модулях, не привязанных к форме, создавая библиотеки скриптов. А в модулях формы добавлять процедуры запуска, т.е. в процедуре будет только одна строка, перенаправляющая в библиотеку скриптов.

Например:
В модуле формы:

Sub FormMacro_MySub(TCSActiveModule)                                          
     Call MyModule.MySub(TCSActiveModule)
End Sub

В библиотеке скриптов MyModule:

Sub MySub(TCSActiveModule)
     'текст программы
End Sub

При этом, если вы изменяете текст стандартной процедуры, то копируйте процедуру в свою библиотеку скриптов и там изменяйте (при этом в модуле формы вы поменяете имя модуля, из которого вызывается процедура). Тогда при обновлении системы ваши наработки сохранятся. Если вы будете изменять тексты стандартных процедур без их отсадки, то после обновления системы ваши изменения пропадут.

Re: импорт скриптов

спасибо за подробный ответ, 
но тогда получается что после Импорта скриптов   
во всех модулях форм (CSDN_Specification и т д) необходимо
перезаписывать вызовы своих скриптов (в вашем ответе названы - процедуры запуска)

то есть в CSDN_Specification пишем, например

Sub FormMacro_MySub(TCSActiveModule)                                           
     Call MyModule.MySub(TCSActiveModule) 
End Sub

где  MyModule - это моя библиотека скриптов

после импорта эти процедуры запуска исчезают из модулей форм
Как быть с этим ?
Может делаю что-то не так ?
Спасибо

Re: импорт скриптов

всё так :(
После импорта модуль перезаписывается, причем старый не убивается, а отсаживается, т.е. убивается его привязка к форме. После чего, вы руками восстанавливаете изменения.

Но поскольку изменений от версии к версии не много, то проще изменения перенести через буфер обмена, чем экспортом/импортом всего модуля.

Re: импорт скриптов

Сергей Девятериков пишет:

Но поскольку изменений от версии к версии не много, то проще изменения перенести через буфер обмена, чем экспортом/импортом всего модуля.


непонятно :
"Но поскольку изменений от версии к версии не много" ...
если вы имеете ввиду что ваших изменений от версии к версии немного, то
для того, чтобы ваши изменения перенести руками, надо знать все модули, где сделаны эти изменения - нереально ... это  надо брать старые ваши модули и новые и сравнивать их ?
а если имели  ввиду что наших изменений немного - то опять получается надо импортировать ваши скрипты, а потом руками во все модули вносить наши изменения, что тоже не очень правильно.

Вот для того чтобы импортировать ваши скрипты из новой версии TGS, на пробной базе делаю импорт, ставлю 3 галки: 
-перезаписывать модули,
-перезаписывать привязки в форме
-перезаписывать описания макросов
после импорта смотрю - все наши наработки исчезли ...

- (1) добавляю наши библиотеки в справочник скриптов 
- (2) в каждом модуле CSDN_Nomenclatures,CSDN_Technology и тд вручную ПОВТОРНО(так как до Импорта всё это уже было сделано и работало) делаю "вызовы" макросов этих модулей

- (3) в каждом режиме, Номенклатура, Спецификации и тд вручную ПОВТОРНО (так как до Импорта всё это уже было сделано и работало) делаю "вызовы" макросов этих модулей в пользовательской части (чтобы пользователь мог вызывать эти скрипты).

а это 5-6 мест в пункте (2) в зависимости от того, в модулях каких режимов вызываются наши скрипты
и 10-12 мест в пункте (3) 
а к следующему обновлению их может быть 30-35 ... , и что тогда ?

Может опять делаю что-то не так? Как можно свести до минимума переписывание того, что уже сделано? 
Спасибо

Re: импорт скриптов

На мой взгляд просто импортировать все новые скрипты в основную базу (т.е. всем пользователям), не попробовав как они работают с уникальными для каждого предприятия данными, несколько опасно. 
Не успеешь и глазом моргнуть как пользователь запустит и бездумно нажмет "ОК" на возникший вопрос "чего нибудь удалить", а потом будет бежать к тебе же и уричать: шеф - усе пропало.
Так что, уж лучше переносить понравившийся скрипт (от разработчиков) через буфер обмена, предварительно поигравшись с ним самому, чем экспортом/импортом всего модуля.

Пусть разработчики лучше АПИ расширяют, чем пишут переделываю импортер скриптовых модулей с анализатором текстов процедур (новая или старая). :wink:

Re: импорт скриптов

1. Где можно посмотреть список добавленных в новую версию скриптов с описанием их работы ?

2. В  Списке исправлений и дополнений указано 3 пункта "Добавлены функции API ..."

Где посмотреть какие конкретно функции добавлены по принадлежности, то есть
- Для работы с сообщениями такие-то ...
- Для работы с состояниями номенклатуры такие-то ...
и тд