Имя: Пароль:
1C
1С v8
v8: Как получить реквизит из СОМ объекта
0 makfromkz
 
18.10.11
17:27
[code]
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Путь = "C:\Базы1С82\ФМР3_82";
   V82 = Новый COMОбъект("V82.Application");
   
   Попытка
       Открытие = V82.Connect("File=""" + Путь + """;Usr=""Бухгалтер"";");
   Исключение
       Предупреждение("База данных не открыта!!!");
       Возврат;
   КонецПопытки;
   
   тзРаботники = V82.РегистрыСведений.РаботникиОрганизаций.СрезПоследних(ТекущаяДата());
   Для Каждого СтрФизлицо Из тзРаботники Цикл
       Сообщить( "" + СтрФизлицо.ФизЛицо.Код + СтрФизлицо.ФизЛицо.Наименование + " --  " + СтрФизлицо.ПричинаИзмененияСостояния);
   КонецЦикла
КонецПроцедуры
[/code]
СтрФизлицо.ПричинаИзмененияСостояния - имеет тип перечисление и возвращает СОМ объект, как вернуть его текстом?
1 ssh2006
 
18.10.11
17:32
COM-соединение
String (String)
Синтаксис:
String(<Параметр>)
Параметры:
<Параметр> (обязательный)
Тип: Произвольный. Выражение произвольного типа.
Возвращаемое значение:
Тип: Строка.
Описание:
Получает строковое представление значения произвольного типа.
2 Kreont
 
18.10.11
17:35
Аналогично:
Document.ВидОперації = СокрЛП(ОЛЕ8.Метаданные().Перечисления.ВидыОперацийРегистрацияВходящегоНалоговогоДокумента.EnumValues.Get(ОЛЕ8.Перечисления.ВидыОперацийРегистрацияВходящегоНалоговогоДокумента.Индекс(Выборка.ВидОперации)).Name);
3 makfromkz
 
18.10.11
17:37
(1)вот первые три строчки выдачи :
000000901Иманбетов Бостандык Иманусенович --  COMОбъект
000000219Камерер Александр Александрович --  COMОбъект
00000946 Злобин Юрий Михайлович --  COMОбъект
4 Reset
 
18.10.11
17:41
(3) те ж сказали, напиши V82.String(СтрФизлицо.ПричинаИзмененияСостояния)
5 makfromkz
 
18.10.11
17:54
(2) СПАСИБО, РАХМЕТ, DANKE, THANKS, GRACIA, MERCI !!!
работает :

[code]
ввв = V82.Метаданные().Перечисления.ПричиныИзмененияСостояния.ЗначенияПеречисления.Получить(V82.Перечисления.ПричиныИзмененияСостояния.Индекс(СтрФизлицо.ПричинаИзмененияСостояния)).Имя;
[/code]
(3) щас проверю
6 makfromkz
 
18.10.11
18:07
(3) СПАСИБО, РАХМЕТ, DANKE, THANKS, GRACIA, MERCI !!!

в начале я решил V82.Строка() - но 1Ска покрыла матом, пришлось вернуться на
V82.String(

(1) сорри, твою подсказку я не вразумил, хотя она верная, потому СПАСИБО!!
7 makfromkz
 
18.10.11
18:07
тема закрыта!!!
Закон Брукера: Даже маленькая практика стоит большой теории.