VB.NET 1c - Внешнее соединение, Справочники - вид иерархии #693677


#0 by IGOR_777
Подскажите пожалуйста - как при внешнем соединении получить Вид справочника Dim n_Con As New V82.COMConnector         Dim n_Base As Object         'Не работает - В переменную присваивается  {System.__ComObject}         Dim Hierarchy_Spr As Object Причем внутри, в 1с все работает Может кто знает как вытащить ВидИерархии ?
#1 by Apokalipsec
а зачем к метаданным цепляться?
#2 by mehfk
Преобразуй в строку
#3 by IGOR_777
Внутри 1с все работает же :) Во внешнем соединии нет
#4 by mehfk
#5 by IGOR_777
Тоже не помогает
#6 by IGOR_777
Нет не проходит {System.__ComObject}
#7 by gornovrom
А что у кого-то номенклатура в базе имеет иерархию, от личную от "иерархия групп и элементов"?
#8 by IGOR_777
Это просто пример В реальности задача чуть посложнее
#9 by IGOR_777
Но всеравно нужно узнать ВидИерархии справочника :)
#10 by Jaap Vduul
... Элемент системного перечисления также является объектом и доступен через интерфейс IDispatch, однако ни свойств, ни методов он не имеет. По этой причине анализ полученных значений системных перечислений возможен только посредством их сравнения со значениями системных перечислений, полученными через свойства глобального контекста. ... If n_Base.Метаданные.Справочники.Номенклатура.ВидИерархии = n_Base.Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Then
#11 by gornovrom
+1
#12 by IGOR_777
Спасибо, Работает :)
#13 by mehfk
Проверил C:WORK>cscript 1.vbs Microsoft (R) Windows Script Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. Номенклатура ИерархияГруппИЭлементов
#14 by IGOR_777
Странно Член группы не найден. (Исключение из HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND)) Наверно это только в скриптах работает - в Visual Studio не работает - Меня спас ответ Но всеравно Спасибо :)
#15 by mehfk
Квадратные скобки нужны были чтобы русские буквы в VBScript можно было использовать. В VS наверное можно писать так как у вас в
#16 by mehfk
*нужно
#17 by IGOR_777
Пробовал И без них и с ними не помогает сей вариант В .Net Такое не проходит Хотя очень жаль
#18 by mehfk
{         static void Main(string[] args)         {     } } C:...ojectsConsoleApplication1ConsoleApplication1inDebug>ConsoleApplication1.exe
#19 by IGOR_777
Сейчас с компилю :)
#20 by IGOR_777
Что то какая то магия в C# Name_Spr = Номенклатура Буду гуглить как правильно тип Dynamic будет на Бейсике :)
#21 by mehfk
> Буду гуглить как правильно тип Dynamic будет на Бейсике :) это лишнее, dynamic можно было и  на object поменять, тем более он никак не влияет на переменную Hierarchy Может есть смысл попробовать поменять тип на string вот в этой строке ? >Dim Hierarchy_Spr As Object
#22 by IGOR_777
Тоже самое Грешу именно на Dynamic Больше разницы в коде не вижу
#23 by mehfk
Странно. n_Base.String(...) - это аналог Строка(...) в 1С, через COM мы передаем строку. Почему эта конструкция не работает в вашем случае - х.з. В качестве эксперимента - попробуйте перечисления передавать с явным преобразованием и без него.
#24 by IGOR_777
Спасибо :)
#25 by IGOR_777
Да, дело оказалось в dynamic В VB.Net  нет полного аналога dynamic Добавлю контролы на C# Спасибо за помощь :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С