Имя: Пароль:
1C
1С v8
Как определить существует ли переменная модуля?
0 Gorr
 
20.03.14
15:34
Функция НельзяИзменятьДокумент(ДокументОбъект,Отказ) экспорт
РежимПерестроения = Ложь;
Попытка
  РежимПерестроения = ДокументОбъект.мРежимПерестроения;
Исключение
КонецПопытки;
если РежимПерестроения тогда
  возврат Ложь;
конецесли;
...
конецфункции
1 butterbean
 
20.03.14
15:34
перестать делать через жпо
2 Maxus43
 
20.03.14
15:35
задать её в модуле объекта документа - всегда будет переменная.
Что за вопрос? Или ты её прописал, или нет
3 VikingKosmo
 
20.03.14
15:36
Мне что то подсказывает, что ТС хочет получить переменную модуля объекта, где то в недрах общего модуля или что то подобное :)
4 Maxus43
 
20.03.14
15:37
(3) и что? Она или есть, или нет
5 butterbean
 
20.03.14
15:38
(4) тс не знает заранее тип документа, а у него не во всех документах она есть :-)
не хочет почему-то параметр добавить в функцию
6 VikingKosmo
 
20.03.14
15:38
(4) погоди, каким боком в контексте общего модуля может существовать переменная из модуля объекта?
7 Gorr
 
20.03.14
15:38
(2) Во-первых это переменная модуля объекта. в какихто документах я ее прописал,а в каких то нет...
хочу сделать универсальную функцию контроля для всех доков вызываемую из модуля объекта ПередЗаписью
8 Gorr
 
20.03.14
15:38
(5) телепат?)
9 Maxus43
 
20.03.14
15:39
(7) тогда только через попытку, или Тип анализируй.

Как вызывается функция?
10 Maxus43
 
20.03.14
15:40
Есть такая штука как ДополнительныеСвойства, его можно анализировать без Попыток
11 Gorr
 
20.03.14
15:42
(6) никаким!
(9) а вот так:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
        
    Если ОбменДанными.Загрузка  Тогда
        Возврат;
    КонецЕсли;
    
    //я))
    если ниоСлужебный.НельзяИзменятьДанныеДокумента(ЭтотОбъект, Отказ, РежимЗаписи, РежимПроведения) тогда
        возврат;
    конецесли;//->

а допсвойства пожалуй тема))
12 Maxus43
 
20.03.14
15:43
(11) т.е. вызов ты пихнул во ВСЕ документы, а переменную объявил НЕ во всех?)) ну бред же, не находишь?
13 Maxus43
 
20.03.14
15:44
в данном случае не только ДопСвойства тема, но и подписки на события...
14 butterbean
 
20.03.14
15:44
(11) вот так:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения=Неопределено)
15 zladenuw
 
20.03.14
15:44
так можно же по типу документа проверять на крайняк
16 Maxus43
 
20.03.14
15:45
(14) айайай, в предопределённые процедуры вмешиватся не смей сугубо и трегубо)
17 butterbean
 
20.03.14
15:46
(16) да опечатался :-)
имелось ввиду
НельзяИзменятьДокумент(ДокументОбъект,Отказ,РежимПроведения=Неопределено)
18 Gorr
 
20.03.14
15:59
(11) таким образом вся логика контроля выносится пользовательский модуль. Включил не во все, а только тех что есть переменная. Просто у меня подход такой далать универсальный код где это возможно. Позже возможно будет обработка и других документов.
(15) можно! но через попытку короче)
(17) какой смысл в условности третьего параметра?
19 butterbean
 
20.03.14
16:00
(18) чтоб подпихивать его только в нужных документах, этож очевидно
20 zladenuw
 
20.03.14
16:01
(18) тогда по другому.
Если ДокументОбъект.Метаданные().Найти("РежимПерестроения ")<> Неопределено Тогда
РежимПерестроения = ДокументОбъект.Метаданные().Найти("РежимПерестроения ");

Иначе Возврат КонецЕсли;
21 zladenuw
 
20.03.14
16:02
(20) а пля переменная модуля :)
22 Нерезидент РФ
 
20.03.14
16:04
попытка
  Выполнить("ТваяПеременая = Истина");
23 Gorr
 
20.03.14
16:04
(18) нифига не очевидно. в Процедуре ПередЗаписью все три параметра всегда доступны.
(21)и зачем хранить в базе то, что не нужно??? Вот это уже точно бред.
24 Maxus43
 
20.03.14
16:05
Открой для себя подписки уже, всмето этого кода в каждом документе
25 hhhh
 
20.03.14
16:05
(23)

Структура = Новый Структура("мРежимПерестроения");
ЗаполнитьЗначенияСвойств(Структура, ДокументОбъект);
26 butterbean
 
20.03.14
16:06
(23) в (0) ни слова про ПередЗаписью, только про какие-то левые переменные модуля
27 Gorr
 
20.03.14
17:14
(25) супер вот это очень интересное решение - понравилось!!!
(26) в 0 нет, но в 11 пример приводился
28 mrDSide
 
20.03.14
17:27
(7) А использовать универсальные механизмы для универсальных "функций", общие реквизиты подошли бы, я думаю.
29 Gorr
 
21.03.14
12:40
(28) а разве использование общих реквизитов не ресурсоемко?