Тема: Перевести версию ТП в состояние редактирования

Set NmkTechnology = TCSApp.NmkTechnology(NmkId, VerId)
    If Not NmkTechnology Is Nothing Then

      Set Versions = NmkTechnology.Properties("Versions").AsIDispatch
      If  Not Versions Is Nothing Then

        If Versions.Locate("ID", VerId, 0) Then
          If Not Versions.Properties( "VER_STATE" ).IsEditVerState Then
            Versions.MakeEdit
           
          End If
...


На строчке Versions.MakeEdit ругается, что нет больше утвержденной версии.
Здесь есть только одна версия ТП. Неужели надо создать фиктивную версию ТП, сделать ее утвержденной(а потом ее удалить) для редактирования активной утвержденной версии.

Пробовала с CurrentVersion - то же самое

Или есть другой метод?

Вручную переводит нормально.

Re: Перевести версию ТП в состояние редактирования

Должна быть активная версия.

3 (изменено: Кузнецова Марина, 29-03-2017 17:47:55)

Re: Перевести версию ТП в состояние редактирования

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

Должна быть активная версия.

Она активная Активная(Утверждена). Вручную выбирала Активная(редактирование) - работает. А по АПИ  - Versions.MakeEdit должна перевести активную версию Активная(Утверждена) в состояние Активная(Редактирование)?

Что еще можно сделать?

Re: Перевести версию ТП в состояние редактирования

Смотрите внимательнее. Скиньте точное сообщение об ошибке, выведите окно версий (список). Данное сообщение говорит о том что нет активной версии. Точнее вы как раз активную версию переводите в редактирование похоже, а надо в активное редактирование.

help.technologics.ru/7.1/TCSAPIH … ive_13.htm, help.technologics.ru/7.1/TCSAPIH … tive_9.htm

Спасибо сказали: Кузнецова Марина1

Re: Перевести версию ТП в состояние редактирования

Спасибо, получилось так:

            Versions.MakeActive
            If Not Versions.Properties( "VER_STATE" ).IsEditVerState Then Versions.MakeEdit

Re: Перевести версию ТП в состояние редактирования

Мне кажется так будет правильнее

If Versions.Properties( "VER_STATE" ).IsActive Then 
  Versions.MakeActive
Else
  Versions.MakeEdit
End If

Хотя в хелпе нетривиально расписано sad