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