(изменено: , 27 ноября 2013 15:32:52)

Тема: Не даёт редактировать в разделе "Все версии итоговой СП"

TCS 6.2 Wint

Пытаюсь отредактировать поле NAME, но мне выдаётся сообщение:
"Модуль данных не допускает редактирования". Поле имеет тип Edit.
Что предпринять?

Не Wint, а Win 7

(изменено: Дмитрий Гамий, 27 ноября 2013 17:39:20)

Re: Не даёт редактировать в разделе "Все версии итоговой СП"

JAEAEJ пишет:

Пытаюсь отредактировать поле NAME, но мне выдаётся сообщение:
"Модуль данных не допускает редактирования". Поле имеет тип Edit.

Не смотря на то, что поле "NAME" в режиме "Все версии итоговой спецификации" имеет тип доступа  paEdit, сам модуль не допускает внесение изменений (а также добавление и удаление), о чем программа Вам говорит (см. значения свойств AllowInsert, AllowEdit, AllowDelete).
Не даёт редактировать в разделе "Все версии итоговой СП"

JAEAEJ пишет:

Что предпринять?

Нужно считать идентификатор версии, получить доступ к интерфейсу нужной версии (TCSApp.NmkVersion(VerId)) и изменить её название. Кроме этого, нужно проверять возможность изменения заголовка версии текущим пользователем.
Привожу пример процедуры, которая позволяет изменить наименование версии:

Sub ChangeNmkVersionName(NmkVerId, NewVerName)
    ' NmkVerId As Integer Идентификатор версии номенклатуры 
    ' NewVerName As String Новое наименование версии

    Dim SingleVersion ' As INmkVersion 
                                                    
    If NmkVerId > 0 Then
        Set SingleVersion = TCSApp.NmkVersion(NmkVerId)
        If Not SingleVersion Is Nothing Then 
            If SingleVersion.EditAction.Enabled Then 
                Call SingleVersion.Edit
                
                SingleVersion.Properties("NAME").Value = NewVerName
    '            SingleVersion.Properties("OPEN_DEFAULT").Value = "F"
    '            SingleVersion.Properties("VerKind_ID").Value = 1
                
                On Error Resume Next
                Call SingleVersion.SaveChangesEx
                Call SingleVersion.CancelChanges
                On Error goto 0
            Else
                Call TCSApp.ShowErrorMessage("Нет прав на редактирование версии!")
            End If ' If SingleVersion.EditAction.Enabled
        Else          
            Call TCSApp.ShowErrorMessage("Ошибка доступа к версии номенклатуры по идентификатору " & CStr(NmkVerId) & "!") 
        End If ' If Not SingleVersion Is Nothing
        Set SingleVersion = Nothing    
    Else 
        Call TCSApp.ShowErrorMessage("Не задан идентификатор версии!")
    End If ' NmkVerId > 0

End Sub

Внимание - код написан для примера, в реальных условиях могут быть нюансы...

Спасибо сказали: Олег Зырянов, JAEAEJ2
Post's attachments

IPModule.PNG 16.82 Кб, файл не был скачан. 

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

Re: Не даёт редактировать в разделе "Все версии итоговой СП"

Всё отработало великолепно. Спасибо. Всё так просто.
Но возник ещё вопрос по этой тематике. Дело в том, что в режиме "Все версии
итоговой спецификации"  невозможно выделить запись(записи). Можно-ли
добраться к папке "Все версии итоговой СП" из "Номенклатурный справочник"?

Re: Не даёт редактировать в разделе "Все версии итоговой СП"

В настоящее время режим "Все версии итоговой СП" через API недоступен.

Не совсем понятно, для чего это Вам надо. Есть другии способы получения доступа к итоговой спецификации номенклатуры.

Re: Не даёт редактировать в разделе "Все версии итоговой СП"

Можно-ли
добраться к папке "Все версии итоговой СП" из "Номенклатурный справочник"?

Используйте наборы данных.