Имя: Пароль:
1C
1С v8
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)
2 + 2 = 3.9999999999999999999999999999999...