|
Как сравнить два объекта COM? | ☑ | ||
---|---|---|---|---|
0
Triumph
11.05.11
✎
12:23
|
Подключение через COM к базе, нужно сравнить два COM-объекта и по результату в текущей базе получить аналогичный элемент, вот пример:
//эл.ТипСуммы - комобъект Если эл.ТипСуммы = База.Перечисления.ВидыСумм.Значение1 Тогда стр.ТипСуммы = Перечисления.ВидыСумм.Значение1; ИначеЕсли эл.ТипСуммы = База.Перечисления.ВидыСумм.Значение2Тогда стр.ТипСуммы = Перечисления.ВидыСумм.Значение2; КонецЕсли; В результате ни одно условие не срабатывает, как тут быть? |
|||
1
Jstunner
11.05.11
✎
12:24
|
может, ТипСуммы равен Значению3?
|
|||
2
Mitriy
11.05.11
✎
12:25
|
или вообще пустое...
|
|||
3
Amiralnar
11.05.11
✎
12:26
|
сравнивайте по номеру или представлению
|
|||
4
Triumph
11.05.11
✎
12:36
|
(1), нет все это проверено в первую очередь, типы и значения правильные.
(3) Как это сделать с перечислениями, там только две функции Метаданные() и Пустая() ? |
|||
5
Axel2009
11.05.11
✎
12:39
|
в поиске найти. значение перечисления в comобъектах.. уже не раз обсуждалось
|
|||
6
Alpen906
11.05.11
✎
12:40
|
Я сделал так. Не знаю, может есть другой вариант.
Функция ПолучитьЗначениеПеречисления(ВидПеречисления, ЗначениеПеречисленияВ8) Ном = Соединение.Перечисления[ВидПеречисления].Индекс(ЗначениеПеречисленияВ8); Имя = Соединение.Метаданные().Перечисления[ВидПеречисления].EnumValues.Получить(Ном).Имя; Возврат Имя; КонецФункции |
|||
7
DmitrO
11.05.11
✎
12:43
|
Или использовать объект СравнениеЗначений (той базы конечно).
БазаСравнениеЗначений = База.NewObject("СравнениеЗначений"); Если БазаСравнениеЗначений.Сравнить(эл.ТипСуммы, База.Перечисления.ВидыСумм.Значение1) Тогда стр.ТипСуммы = Перечисления.ВидыСумм.Значение1; ... |
|||
8
Mitriy
11.05.11
✎
12:44
|
можно так... с предварительными проверками, если нужно, на пустые и типы, если там составной...
стр.ТипСуммы = Перечисления.ВидыСумм[XMLСтрока.эл.ТипСуммы]; |
|||
9
Mitriy
11.05.11
✎
12:45
|
стр.ТипСуммы = Перечисления.ВидыСумм[XMLСтрока(эл.ТипСуммы)];
|
|||
10
DmitrO
11.05.11
✎
12:46
|
(7)+ точнее так надо:
Если БазаСравнениеЗначений.Сравнить(эл.ТипСуммы, База.Перечисления.ВидыСумм.Значение1)=0 Тогда стр.ТипСуммы = Перечисления.ВидыСумм.Значение1; ... |
|||
11
Mitriy
11.05.11
✎
12:47
|
блин...
|
|||
12
Mitriy
11.05.11
✎
12:48
|
стр.ТипСуммы = Перечисления.ВидыСумм[База.XMLСтрока(эл.ТипСуммы)];
|
|||
13
Triumph
11.05.11
✎
12:55
|
(10),(12), спасибо парни,оба способа подошли, выручили:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |