Re: Модуль данных не допускает редактирования

Подскажите, пожалуйста, в чем дело.
Необходимо скопировать из одного техпроцесса в другой значение параметра с типом ссылка на номенклатуру. Точнее не значение, а обозначение и наименование.
Пробовала создать новый параметр:
para.createnew
para.properties("Par_code").value="GUID422"
para.properties("NMK_NAME").value=b
para.properties("NMK_NOTE").value=c
Ошибка: модуль данных не допускает редактирования

Пробовала брать на редактирование:
para.edit
para.properties("NMK_NAME").value=b
para.properties("NMK_NOTE").value=c 
para.SaveChanges
Точно такая же ошибка.

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

Re: Модуль данных не допускает редактирования

хелп. IParameterValues

Re: Модуль данных не допускает редактирования

para - у Вас является зависимым объектом "Параметры позиции техпроцесса", который является наследником интерфейса IParameterValues (это проверяется свойством IsParameterValues).
Данный интерфейс позволяет читать\писать информацию о привязанный параметрах и их значениях. Для добавления параметра используйте: SetParameterValueByParCode






PS. Было бы неплохо, если бы Вы заполнили в графе "Откуда" вашего профиля наименование своего предприятия.

please-change-link

Re: Модуль данных не допускает редактирования

Спасибо большое!!

Re: Модуль данных не допускает редактирования

Подскажите, пожалуйста, еще один момент.
При добавлении нового ТТП в спецификацию без createnew, наверно, не обойтись.
Ошибка такая же: модуль не допускает редактирования. Как быть??

Re: Модуль данных не допускает редактирования

Мария Мякина писал(а):
При добавлении нового ТТП в спецификацию ...

Это я не понял. Вы хотите добавить Типовой Технологический Процесс в конструкторскую спецификацию?

Re: Модуль данных не допускает редактирования

Извините, неправильно выразилась.
Необходимо программно добавлять позицию в спецификацию типового техпроцесса. Технологическая спецификация.

Re: Модуль данных не допускает редактирования

Позиция спецификации добавляется через CreateNew.
Для того, чтобы модуль был доступен для добавления, необходимы следующие условия:
1. Наличие версии
2. Наличие прав на редактирование у пользователя
3. Доступность версии на редактирование

Re: Модуль данных не допускает редактирования

Простите, пожалуйста, бедного-несчастного начинающего за бестолковые вопросы. Но теперь оказываются недоступными для редактирования свойства.
Spc.CreateNew
Spc.Properties("NMK_NOTE").Value = obozn
Spc.Properties("NMK_NAME").Value = naimen

Ошибка:Значение данного свойства доступно только на чтение!

А про
Spс.Properties("SPEC_CONST").Value = False
Spс.Properties("SPEC_UPOS").Value = 0
вообще пишут, что Требуется объект  Spс.Properties(...)'

Подскажите, пожалуйста, что не так. :? Я рассматриваю не те свойства??

Re: Модуль данных не допускает редактирования

Spc - это что за объект?

Re: Модуль данных не допускает редактирования

Та самая спецификация.
If TCSApp.NmkClasses.RunModuleForSelect("Выберите класс", False) Then
     Set NMks1 = TCSApp.Nomenclatures(TCSApp.NmkClasses.Properties("ID").AsInteger)         
      If NMks1.RunModuleForSelect("Выберите номенклатуру", False) Then 
        Set Spс = TCSApp.NmkSpecification(NMks1.Properties("ID").AsInteger, -1)

Re: Модуль данных не допускает редактирования

Для того, чтобы узнать список свойств конкретного объекта, используйте TCS API Explorer.

Вот пример добавления позиций в спецификацию

Sub NmkSpecification_CreateNew
    Dim NmkClassID, NmkID
    If SelectNomenclature( NmkClassID, NmkID ) Then
        Dim INmkSpecification
        Set INmkSpecification = TCSApp.NmkSpecification( NmkID, -1 )
        If Not INmkSpecification Is Nothing Then
            INmkSpecification.UserModuleName = INmkSpecification.UniqueUserModuleName
            If INmkSpecification.AllowInsert Then
                Do While SelectNomenclature( NmkClassID, NmkID )
                    Call INmkSpecification.CreateNew
                    INmkSpecification.Properties("ATTACH").Value = NmkClassID
                    INmkSpecification.Properties("NMK_ID").Value = NmkID
'                    INmkSpecification.Properties("MESUR_ID").Value = Null
'                    INmkSpecification.Properties("POSITION").Value = Null
'                    INmkSpecification.Properties("ZONE").Value = Null
'                    INmkSpecification.Properties("FORMAT").Value = Null
'                    INmkSpecification.Properties("QUANTITY").Value = Null
'                    INmkSpecification.Properties("COMMENT").Value = Null
'                    INmkSpecification.Properties("SPEC_POS_NUM").Value = Null
'                    INmkSpecification.Properties("IS_CONST").Value = Null
'                    INmkSpecification.Properties("EXCLUDE_FROM_ITOGSSPEC").Value = Null
                    Call INmkSpecification.SaveChanges
                    Call INmkSpecification.CancelChanges
                Loop
            Else
                Call TCSApp.ShowErrorMessage( "Check rights!" )
            End If 
            TCSApp.DeleteModuleByUserModuleName( INmkSpecification.UserModuleName )
        End If
    End If 
End Sub

Function SelectNomenclature( NmkClassID, NmkID )
    Dim FunctionResult : FunctionResult = False
    Set INmkClasses = TCSApp.NmkClasses
    INmkClasses.UserModuleName = INmkClasses.UniqueUserModuleName
    If INmkClasses.RunModuleForSelect("Select position", False) Then
        NmkClassID = INmkClasses.Properties("ID").AsInteger
        Dim INomenclatures
        Set INomenclatures = TCSApp.Nomenclatures( NmkClassID )
        If Not INomenclatures Is Nothing Then
            INomenclatures.UserModuleName = INomenclatures.UniqueUserModuleName
            If INomenclatures.RunModuleForSelect("Select position", False) Then
                NmkID = INomenclatures.Properties("ID").AsInteger
                FunctionResult = True
            End If 
            TCSApp.DeleteModuleByUserModuleName( INomenclatures.UserModuleName )
        End If 
    End If 
    TCSApp.DeleteModuleByUserModuleName( INmkClasses.UserModuleName )
    SelectNomenclature = FunctionResult
End Function

please-change-link

Re: Модуль данных не допускает редактирования

Спасибо!! Очень выручили!!