Тема: Nomenclatures2()

подскажите пожалуста как правильно обращатся с Nomenclatures2(). В справке примеров нет, апи эксплорер на мысли не наталкивает. Хочу присоеденить параметр к справочнику номеклатуры. Nomenclatures2() отрабатывает. А где взять результат ? откуда брать значение присоединенного параметра через апи ?

Re: Nomenclatures2()

alex_msk пишет:

А где взять результат ? откуда брать значение присоединенного параметра через апи ?

Да, похоже, что не откуда. Не позволяет Nomenclatures2 этого.

Попробуйте лучше IAttachedParams

Re: Nomenclatures2()

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

А где взять результат ? откуда брать значение присоединенного параметра через апи ?

Да, похоже, что не откуда. Не позволяет Nomenclatures2 этого.

Попробуйте лучше IAttachedParams

Cудя по хелпу использовать этот метод можно только в ТП. А нужен спрвочник номенклатур.

Re: Nomenclatures2()

alex_msk пишет:

использовать этот метод можно только в ТП

Ну почему же? Можно и в номенклатуре, и в спецификации.

Вот пример как раз для номенклатуры:

    ' ИД класса "Материалы"
    Const NmkClassId = 25    
    ' GUID интерфейса IAttachedParams
    Const IID_IAttachedParams = "{3ED1B392-6183-4C29-9ACF-C9407D96474E}"
    ' Постоянная часть проверочного сообщения
    Const MsgConstPart = "Значение параметра с кодом"
    ' Список уникальных кодов присоединяемых параметров 
    Const AttachParCodeList = "TCS_M1_KG;TCS_UV_KG;M_HB"

    
    Dim Nmk            ' Справочник номенклатуры
    Dim AttachPars     ' Интерфейс присоединённых параметров
    Dim I              ' Служебная переменная
    Dim Msg            ' Текст проверочного сообщения
    
    ' Подключаемся к справочнику номенклатуры "Материалы"
    Set Nmk = TCSApp.Nomenclatures(NMkClassId )
    If Not Nmk Is Nothing Then
        
        ' Получаем интерфейс присоединённых параметров
        Set AttachPars = Nmk.CSDN_QueryInterface(IID_IAttachedParams)
        
        ' Присоединяем нужные параметры    
        Call AttachPars.AttachParams(AttachParCodeList)
        
        ' Демонстрируем, что получилось 
        I = AttachPars.RunmoduleForSelect("Справочник номенклатуры с присоединёнными параметрами.", False)
        ' Если пользователь нажал "ОК"
        If i = 1 Then            
            ' Формируем сообщение, считывая значения присоединённых параметров
            With AttachPars
                If .IsParamAttached("TCS_M1_KG") Then
                    msg = msg + MsgConstPart + " 'TCS_M1_KG' = " + .AttachedParamValue("TCS_M1_KG") + vbCrLf        
                End If
                If .IsParamAttached("TCS_UV_KG") Then
                    msg = msg + MsgConstPart + " 'TCS_UV_KG' = " + .AttachedParamValue("TCS_UV_KG") + vbCrLf            
                End If
                If .IsParamAttached("M_HB")Then
                    msg = msg + MsgConstPart  + " 'M_HB' = " + .AttachedParamValue("TCS_UV_KG") + vbCrLf
                End If
                ' Выводим сообщение
                TCSApp.ShowMessageBox "Результат считывания", msg                
            End With
        Else
            TCSApp.ShowMessageBox "Сообщение", "Отменено пользователем!"
        End If          
    End if
    Set AttachPars = Nothing
    Set Nmk = Nothing

Re: Nomenclatures2()

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

использовать этот метод можно только в ТП

Ну почему же? Можно и в номенклатуре, и в спецификации.


Большое спасибо :) Действительно работает.