|   |   | 
| 
 | v8.2 Как определить тип ХранилищеЗначение COM объекта | ☑ | ||
|---|---|---|---|---|
| 0
    
        ЭЦ 08.08.12✎ 11:23 | 
        ГОСПОДА !
  Имеется ComСоединение Требуется прочитать значения реквизитов справочника все за исключенем тех которые имеют тип ХранилищеЗначения. Код типа : Если ComСоединение.ТипЗНЧ(РекСправ) = ComСоединение.Тип("ХранилищеЗначения") Тогда ... КонецЕсли; - не работает Прошу подсказать как это правильно записать. | |||
| 1
    
        бомболюк 08.08.12✎ 11:28 | 
        можно сделать так: использовать функцию ЗначениеВСтрокуВнутр, а потом анализировать подстроку между 1-й и 2-й запятой (там ГУИД какой то), она для каждого типа своя и постоянная.     | |||
| 2
    
        ЭЦ 08.08.12✎ 11:43 | 
        (1) Получил : "{"#",2319dcf1-f4ee-438d-b16f-6a145d6b9422}"     | |||
| 3
    
        Kashemir 08.08.12✎ 11:46 | 
        Можно конечно сериализировать через хтдо и вытянуть на вызывающую сторону - но это конечно кривое решение.     | |||
| 4
    
        Лоботряс 08.08.12✎ 12:14 | 
        А по Метаданным отфильтровать реквизиты с нужным типом нельзя?     | |||
| 5
    
        ЭЦ 08.08.12✎ 12:19 | 
        (4)
  Попытка Мтд = РекСпр.Метаданные(); Исключение КонецПопытки; Вызывает исключение | |||
| 6
    
        Ksandr 08.08.12✎ 12:21 | 
        ComСоединение.String(ComСоединение.ТипЗНЧ(РекСправ)) говорит что нить?     | |||
| 7
    
        Kashemir 08.08.12✎ 12:28 | 
        (6) Проверял ?     | |||
| 8
    
        Kashemir 08.08.12✎ 12:29 | 
        +(3) Вобщем если не лень перетягивать значение на вызывающую сторону - то 
  Функция ПолучитьПроизвольноеЗнчСОМ(Соединение, ЗначениеСОМ) ХранилищеВнешнее = Соединение.NewObject("ХранилищеЗначения", ЗначениеСОМ, Соединение.NewObject("СжатиеДанных",9)); ЗаписьXML = Соединение.NewObject("ЗаписьXML"); ЗаписьXML.УстановитьСтроку(); Соединение.СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ХранилищеВнешнее); ХранилищеВСтроке = ЗаписьXML.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ХранилищеВСтроке); Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML); КонецФункции | |||
| 9
    
        Лоботряс 08.08.12✎ 12:31 | 
        (5)А "V82.COMConnector" или "V82.Application"?;     | |||
| 10
    
        ЭЦ 08.08.12✎ 12:42 | 
        (6) Говорит : Метод объекта не обнаружен (ТипЗНЧ)
  а вот ComСоединение.String(РекСправ) говорит - "ХранилищеЗначения" так что Ksandrу спасибо | |||
| 11
    
        ЭЦ 08.08.12✎ 12:49 | 
        (9) COMConnector     | |||
| 12
    
        olegves 08.08.12✎ 13:07 | 
        Описание типов пробовал?     | |||
| 13
    
        olegves 08.08.12✎ 13:43 | 
        (12) или 
  ComСоединение.XMLТип(РекСправ) | |||
| 14
    
        ЭЦ 08.08.12✎ 13:44 | 
        (12,13) Меня устраивает (10)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |