|
Как узнать, есть ли экспортная переменная в модуле документа? | ☑ | ||
---|---|---|---|---|
0
semenich
29.07.15
✎
16:08
|
Здравствуйте. Допустим, в конфигурации есть документ, у которого в модуле объекта объявлена экспортная переменная КурсДокумента. Реквизита такого нет. Когда передаю ДокументОбъект в другую функцию, там ДокументОбъект.КурсДокумента виден. Но ОбщегоНазначения.ЕстьРеквизитДокумента("КурсДокумента", Метаданные), естественно, возвращает Ложь.
Как можно проверить, доступно ли свойство ДокументОбъект.КурсДокумента, если это не реквизит? Попытка Исключение не хотелось бы. Заранее спасибо. |
|||
1
ДенисЧ
29.07.15
✎
16:10
|
не хотелось бы, а придётся
|
|||
2
Лодырь
29.07.15
✎
16:12
|
(0) Ты можешь устроить адский изврат, выгрузив модули конфигурации в файлы и распарсив их. Но не думаю, что это решение тебе понравится больше чем конструкция "попытка исключение".
|
|||
3
бомболюк
29.07.15
✎
16:12
|
через ВК можно. COM-интерфейс IDispatch, метод GetIDsOfNames
|
|||
4
semenich
29.07.15
✎
16:20
|
Если, действительно, нет хитрого и простого способа, то придется через Попытку.
Спасибо |
|||
5
fisher
29.07.15
✎
16:21
|
Попытка Исключение ему не нравится. После таких-то проектных решений. Снявши голову по волосам не плачут. Если уж овнокодить, то видно должно быть издалека. Попытка/Исключение - самое то.
|
|||
6
semenich
29.07.15
✎
16:26
|
Это в типовой Бухгалтерия 1.5 использовалось. Кардинально переделывать нерезонно в моей ситуации.
|
|||
7
hhhh
29.07.15
✎
16:59
|
(6) а тупо проверить тип документа не вариант?
|
|||
8
Lexey_
29.07.15
✎
17:17
|
(0) а если:
Структура = Новый Структура("КурсДокумента", Неопределено); ЗаполнитьЗначенияСвойств(Структура, ДокументОбъект); ЕстьПеременная = (Структура.КурсДокумента <> Неопределено); |
|||
9
бомболюк
29.07.15
✎
17:59
|
(8) круто, но ведь неинициализированный "КурсДокумента" тоже будет равен Неопределено :-(
|
|||
10
бомболюк
29.07.15
✎
18:00
|
лучше
Структура = Новый Структура("КурсДокумента", "длофывптфоитловалдифвтидшгвтдигфвтидтгфвиш"); ЗаполнитьЗначенияСвойств(Структура, ДокументОбъект); ЕстьПеременная = (Структура.КурсДокумента <> "длофывптфоитловалдифвтидшгвтдигфвтидтгфвиш"); ;-) |
|||
11
Lexey_
29.07.15
✎
18:00
|
(9) ну, да, если неинициализирована, тогда сравнивать с чем-нить другим
|
|||
12
semenich
02.08.15
✎
07:25
|
Спасибо, Lexey_ и бомболюк, как раз то, что нужно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |