Имя: Пароль:
1C
1С v8
Передать переменную из модуля документа в модуль формы
0 Надежда25
 
16.08.11
14:01
В модуле документа есть: Перем ФормЗаявку Экспорт;
Ей присваивается значение Истина или Ложь.
Не получается передать переменную из модуля документа в модуль формы:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Если Объект.ФормЗаявку = Ложь Тогда
       Отказ=Истина;
   КонецЕсли;
КонецПроцедуры
Подскажите, пожалуйста, как надо?
1 Grusswelle
 
16.08.11
14:05
(0) Управляемое приложение? В реквизит выводи (появится рядом с объектом), потом обращайся. Не через Объект, разумеется.
2 Надежда25
 
16.08.11
14:21
Что значит "в реквизит выводи"? У меня форма формируется автоматически, реквизиты не указаны.
3 Надежда25
 
16.08.11
14:40
Есть что?
Приложение управляемое.
4 zak555
 
16.08.11
14:42
фотку
5 unregistered
 
16.08.11
14:45
(2) Что значит "форма формируется автоматически"?

В конфигурации её нет?

Если создавать влом, пользуй ДополнительныеСвойства документа.
6 Надежда25
 
16.08.11
15:03
Получилось:
В параметрах формы создала параметр ФормЗаявку,
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Если Параметры.ФормЗаявку = Ложь Тогда
       Отказ=Истина;
   КонецЕсли;
КонецПроцедуры

Но, вероятно, переменная ФормЗаявку = Ложь и я не могу открыть ни один уже созданный документ. Где поменять на Истину?
7 Надежда25
 
16.08.11
15:30
Извиняюсь, что-то не то. Параметры.ФормЗаявку всегда Ложь. Пробую через реквизиты.
8 Надежда25
 
16.08.11
16:11
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ФормЗаявку = РеквизитФормыВЗначение("Объект");
Если ФормЗаявку = Ложь Тогда
       Отказ=Истина;
9 Надежда25
 
16.08.11
16:12
В модуле документа ФормЗаявку Истина, а в модуле формы документа всегда Ложь, откуда берется?
10 5 Элемент
 
16.08.11
16:14
В модуле формы неправильно использовать модуль документа
11 5 Элемент
 
16.08.11
16:14
Опиши свою задачу
12 Надежда25
 
16.08.11
16:23
Спасибо за участие.
Есть документ "Расходная", на его основе создается документ "Заявка". Если СуммаДокумента (расходная) меньше 1000, "Заявку" формировать не надо.
В модуле документа "Заявка":
Перем ФормЗаявку Экспорт;
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.Расходная") Тогда
Если ДанныеЗаполнения.СуммаДокумента > 1000 Тогда
   ФормЗаявку = Истина;
   Дата = ТекущаяДата();
   ДокументОснование = ДанныеЗаполнения.Ссылка;
       Покупатель = ДанныеЗаполнения.Контрагент;
Иначе    
    ФормЗаявку = Ложь;
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Сумма покупки не превышает 1000 руб.! Невозможна бесплатная доставка!";
            Сообщение.Сообщить();
КонецЕсли;
КонецЕсли;
Эта часть работает, но форма документа все равно открывается. Что писать в модуле формы - нет четкого представления.
13 5 Элемент
 
16.08.11
16:51
По-хорошему это нужно проверять при проведении заявки - проверяй сумму основания и не давай провести.
14 Надежда25
 
16.08.11
17:36
Документ "Заявка" вообще не надо открывать, если Документ.расходная.СуммаДокумента больше 1000.
15 5 Элемент
 
16.08.11
17:38
(14) К сожалению не всегда можно реализовать дружелюбный интерфейс. В этом случае делают типовой сценарий
16 Надежда25
 
16.08.11
17:57
(15)Извините, мы об одном и том же говорим? Мне кажется, в (12) все написала. На основании одного документа по условию надо создавать или не создавать другой документ. Не знаю, как отказаться от создания документа.
17 5 Элемент
 
16.08.11
18:08
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   ДокОснование = Параметры.Основание;
   Если ТипЗнч(ДокОснование) = Тип("ДокументСсылка.Расходная") Тогда
       Если ДокОснование.СуммаДокумента <= 1000 Тогда
           Отказ = Истина;
       КонецЕсли;
   КонецЕсли;
   
КонецПроцедуры
18 Надежда25
 
16.08.11
18:46
Спасибо большое! А я все с экспортной переменной маялась.
Независимо от того, куда вы едете — это в гору и против ветра!