Тема: Изменить состояние версии

Как в API  изменить состояние версии ?

Re: Изменить состояние версии

https://help.technologics.ru/7.0/TCSAPI … rsion2.htm

Re: Изменить состояние версии

Не совсем правильно задала вопрос.
Из окна спецификации СП вызывается "Версии спецификации"
Из окна "Версии спецификации" вызывается "Изменить состояние версии"
Надо это выполнить в АПИ
Извините, если тупой вопрос, но помощь очень нужна.

Re: Изменить состояние версии

Вот пример макросов для вызова из режима "Спецификация номенклатуры":

Sub FormMacro_MakeActive(TCSActiveModule)'Сделать версию активной
  Dim CurVersion ' As INmkVersion
   
  LogObject.ScriptTimeOut = 0 
  
  Set CurVersion = Nothing
  Set CurVersion = TCSActiveModule.Properties("CurrentVersion").AsIDispatch
  If Not CurVersion Is Nothing Then 
    CurVersion.MakeActive
  End If
  Set CurVersion = Nothing
  
  TCSActiveModule.Refresh
  
End Sub

Sub FormMacro_MakeApproval(TCSActiveModule)'Сделать версию утверждённой 
  Dim CurVersion ' As INmkVersion
   
  LogObject.ScriptTimeOut = 0
   
  Set CurVersion = Nothing
  Set CurVersion = TCSActiveModule.Properties("CurrentVersion").AsIDispatch
  If Not CurVersion Is Nothing Then 
    CurVersion.MakeApproval
  End If
  Set CurVersion = Nothing
  
  TCSActiveModule.Refresh
End Sub
Спасибо сказали: Анна1

Re: Изменить состояние версии

Да вопросы обычные наверное.
На самом деле мы стараемся делать АПИ и макросы довольно простыми, чтобы не требовалось особых знаний по программированию для автоматизации простых задач. Так что главное что бы вы сами знали что вы хотите сделать в TehnologiCS.
Напишите нам типичные проблемы которые возникают при программировании, мы постараемся это представить это доступно в виде роликов.

Re: Изменить состояние версии

Дмитрий Гамий пишет:

Вот пример макросов для вызова из режима "Спецификация номенклатуры":

Sub FormMacro_MakeActive(TCSActiveModule)'Сделать версию активной
  Dim CurVersion ' As INmkVersion
   
  LogObject.ScriptTimeOut = 0 
  
  Set CurVersion = Nothing
  Set CurVersion = TCSActiveModule.Properties("CurrentVersion").AsIDispatch
  If Not CurVersion Is Nothing Then 
    CurVersion.MakeActive
  End If
  Set CurVersion = Nothing
  
  TCSActiveModule.Refresh
  
End Sub

Sub FormMacro_MakeApproval(TCSActiveModule)'Сделать версию утверждённой 
  Dim CurVersion ' As INmkVersion
   
  LogObject.ScriptTimeOut = 0
   
  Set CurVersion = Nothing
  Set CurVersion = TCSActiveModule.Properties("CurrentVersion").AsIDispatch
  If Not CurVersion Is Nothing Then 
    CurVersion.MakeApproval
  End If
  Set CurVersion = Nothing
  
  TCSActiveModule.Refresh
End Sub

НАПРИМЕР:
В VERSIONS =  5 записей

1  - в архиве
2 -  в архиве
3 -  в архиве
4 - редактир
5 - астивно(ред)

А В CurrentVersion - отражена одна запись - пятая из VERSIONS

В CurrentVersion - перевести в активно(утв) - получается,
А в VERSIONS - четвертую запись в активно(ред) - НЕ получается.
потому что в CurrentVersion - как есть пятая - так и остается

Re: Изменить состояние версии

В CurrentVersion - перевести в активно(утв) - получается,
А в VERSIONS - четвертую запись в активно(ред) - НЕ получается.
потому что в CurrentVersion - как есть пятая - так и остается

А можно подробней что значит не получается?

Re: Изменить состояние версии

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

В CurrentVersion - перевести в активно(утв) - получается,
А в VERSIONS - четвертую запись в активно(ред) - НЕ получается.
потому что в CurrentVersion - как есть пятая - так и остается

А можно подробней что значит не получается?


Set NMK_Ver = NMK_SP.Properties("VERSIONS").AsIDispatch
Set NMK_Ver_Act = NMK_SP.Properties("CurrentVersion").AsIDispatch
NMK_Ver.First
Do While Not NMK_Ver.Eof
   If NMK_Ver.Properties("NAME").DisplayText = OboznIz Then
       NMK_STAT_OLD0 = NMK_Ver.Properties("VER_STATE").Value
       If NMK_STAT_OLD0 = 3 Then
          If NMK_Ver_Act.IsActive Then
             NMK_Ver_Act.MakeApproval
          Else
             NMK_Ver_Act.MakeArchive
          End If
          NMK_Ver.MakeActive
       End If
   End If
   NMK_Ver.Next
Loop

NMK_Ver.MakeActive - не переводится в активно-редак

Re: Изменить состояние версии

Да действительно. Похоже на нашу ошибку.

Если версия находится в состояние Редактирование, то она не перейдет в состояние Активная редактирование.
Ошибка в АПИ.

Попробуйте так

If  NMK_Ver.Properties("VER_STATE").AsSafeInteger=3 Then  NMK_Ver.MakeArchive
NMK_Ver.MakeActive
Спасибо сказали: Евсеева Людмила, Анна2

Re: Изменить состояние версии

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

Да действительно. Похоже на нашу ошибку.

Если версия находится в состояние Редактирование, то она не перейдет в состояние Активная редактирование.
Ошибка в АПИ.

Попробуйте так

If  NMK_Ver.Properties("VER_STATE").AsSafeInteger=3 Then  NMK_Ver.MakeArchive
NMK_Ver.MakeActive

Спасибо - получилось