|
Можно как-то узнать значение (представление) перечисления в 1с77 из 1с82? |
☑ |
0
palpetrovich
08.05.13
✎
15:09
|
Подключаюсь так:
База77 = Новый COMОбъект("V77.Application");
может как-то через Метаданные? не найду решения пока
|
|
1
zharkin
08.05.13
✎
15:11
|
я так делал
Функция ПолучитьЗначениеПеречисления(ИмяПеречисления, COMЗначение)
Если Метаданные["Перечисления"][ИмяПеречисления].ЗначенияПеречисления.Найти(COMИсточник.XMLString(COMЗначение)) = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Перечисления[ИмяПеречисления][COMИсточник.XMLString(COMЗначение)];
КонецФункции // ПолучитьЗначениеПеречисления()
|
|
2
zharkin
08.05.13
✎
15:12
|
сорри, это 8->8
|
|
3
palpetrovich
08.05.13
✎
15:13
|
(1) угу, я для 8->8 тоже XMLString пользовался
|
|
4
zharkin
08.05.13
✎
15:13
|
вот так делал
Функция ПолучитьЗначениеПеречисления(ИмяПеречисления, COMЗначение) Экспорт
Если Метаданные["Перечисления"][ИмяПеречисления].ЗначенияПеречисления.Найти(COMЗначение.Идентификатор()) = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Перечисления[ИмяПеречисления][COMЗначение.Идентификатор()];
КонецФункции // ПолучитьЗначениеПеречисления()
|
|
5
palpetrovich
08.05.13
✎
15:14
|
+(0) тулю горбатого: База77.Метаданные.Перечисление([Спр77.ВидКонтрагента]).Значение()
гворит - "ожидается выражение" :)
|
|
6
palpetrovich
08.05.13
✎
15:16
|
(4) меня терзают смутные сомненья по поводу: Возврат Перечисления[ИмяПеречисления][COMЗначение.Идентификатор()];
...ну какие еще "Перечисления"
|
|
7
zharkin
08.05.13
✎
15:18
|
ты что хочешь получить на выходе?
|
|
8
zharkin
08.05.13
✎
15:19
|
у тебя перенос данных из 8 в 7?
|
|
9
palpetrovich
08.05.13
✎
15:20
|
(8) наоборот
Спасибо, натолкнул, банально вот это:
Спр77.ВидКонтрагента.Идентификатор()
дает нужный результат
|
|
10
palpetrovich
08.05.13
✎
15:20
|
+9 то-бишь в твоей пункуации: COMЗначение.Идентификатор() :)
|
|
11
1Сергей
08.05.13
✎
15:20
|
не нужно обращаться к метаданным тут вообще
|
|
12
zharkin
08.05.13
✎
15:21
|
(10) - аха
|
|
13
palpetrovich
08.05.13
✎
15:23
|
(11) та да, оказывается тут проще чем в 8+8 :)
|
|
14
Ковычки
08.05.13
✎
15:30
|
EvalExpr ?
|
|
15
Ковычки
08.05.13
✎
15:31
|
Дак нужно значение, идентификатор или представление ?
|
|
16
palpetrovich
08.05.13
✎
15:48
|
(15) точного совпадения нет, поэтому приходится так:
Если Спр77.ВидКонтрагента.Идентификатор() = "Организация" Тогда
НовыйОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
Иначе
НовыйОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо;
КонецЕсли;
|
|
17
drongo-god
08.05.13
✎
16:01
|
(16) Так же релизовывал. По другому не получалось.
|
|
18
Ковычки
08.05.13
✎
16:07
|
БазаОле.глПеременная=БазаОле.Метаданные.Перечисление(1).Значение(1);
Сообщить(БазаОле.EvalExpr("глПеременная.Представление"));
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший