Имя: Пароль:
1C
1С v8
Как узнать, есть ли экспортная переменная в модуле документа?
,
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_ и бомболюк, как раз то, что нужно.