Передача значения из формы документа в модуль объекта

1. fugu 23 09.08.13 15:23 Сейчас в теме
Хочу передать значение из формы документа в модуль объекта и сделать проверку при проведении.

В модуле формы в какой-либо процедуре:
--------------------
ЗначениеПеременной = Истина;
УстановитьГлобальноеЗначениеПеременнойВОбъекте(ЗначениеПеременной);

В модуле объекта:
----------------------------------------------

Перем мПеременная;
Функция УстановитьГлобальноеЗначениеПеременнойВОбъекте(Переменная) Экспорт
мПеременная = Переменная;
КонецФункции


В модуле объекта процедура обработка проведения:
----------------------------------------------

Если мПеременная = ИСТИНА Тогда ...

Не работает, подскажите ошибку.
Зараннее спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Allexe8.1 09.08.13 15:47 Сейчас в теме
(1) fugu, или в модуле документа определяй переменную как экспортную, или вставляй в ЭтотОбъект.ДополнительныеСвойства(имхо, этот способ лучше)
LomayaZakat; namazi74; +2 Ответить
5. juntatalor 63 09.08.13 15:54 Сейчас в теме
(4) Allexe8.1, ДополнительынеСвойства работают только в пределах модуля объекта. Т.е. можно установить в процедуре ПередЗаписью, и потом прочитать в ОбработкаПроведения. Установить ДополнительныеСвойства из модуля формы, и потом прочитать в модуле объекта не получится.
kabantus; Alex17; user633736_actors.bas; RomanKod; erazh; Irwin; Tangram; portwein; arabesca; -Denton-; GeraZ; PLAstic; rrunover; a45; +14 Ответить
7. sommid 09.08.13 15:58 Сейчас в теме
лучше через доп. свойства объекта. при каждом обращении к объекту он занаво инициализируется..

вот пример аналогичного вопроса:
В модуле объекта справочника объявляю переменную:
Перем м_Перем Экспорт;

В этом же модуле инициализирую переменную значением:
м_Перем = "1";

Далее, в обработчике ОбработкаЗаполнения() или ПриКопировании() этой переменной присваивается другое значение:
м_Перем = "2";

Вопрос: почему в модуле формы в процедурах ПриСозданииНаСервере() или ПриЧтенииНаСервере() значение выражения РеквизитФормыВЗначение("Объект").м_Перем равно "1", а не "2"? Естественно, либо ОбработкаЗаполнения(), либо ПриКопировании() обрабатывается. Кто мне может объяснить это поведение? Как нужно менять значение экспортируемой переменной модуля объекта, чтобы её изменённое значение было доступно в форме?


почитайте про видимость экспортных переменных в 8.2

(5) может и так.. не пробовал из формы менять
8. DJDUH 17 09.08.13 16:06 Сейчас в теме
(1) fugu,
В модуле объекта:
Перем мПеременная;

А нужно: В модуле объекта:
Перем мПеременная Экспорт;
Затем в модуле формы - присваивай ей любое значение!
И в обработке проведения проверяй на значение!
10. fugu 23 09.08.13 17:43 Сейчас в теме
(8)(3) Так как Вы предложили не работает.
(9) У меня обычная не управляемая форма.

Может ещё что-то подскажите?)
Ещё раз всем спасибо, кто откликнулся.
11. DJDUH 17 09.08.13 17:53 Сейчас в теме
(10) fugu, Такого принципе быть не должно, если ты делаешь В МодулеОбъекта "свою переменную" и делаешь её " гулящей " по всему объекту, то она держится в нём! А ты скорее всего её про100 затираешь где-то в своём коде!
Дай код посмотреть, что ты хо сделать!
14. Boneman 298 14.08.15 11:20 Сейчас в теме
(10) fugu,
Так как Вы предложили не работает.

странно,
в обычных формах там почти и хитростей никаких нет, должно все работать.
Присоединяюсь к мнению (11)
2. qwed557 30 09.08.13 15:37 Сейчас в теме
а что вообще мПеременная возвращает в отладчике?
3. Xatori111 18 09.08.13 15:43 Сейчас в теме
Вводи реквизит и в модуле формы присваивай ему значение или в Модуле объекта Перем Переменная Экспорт и в модуле формы будет доступна эта переменная, а так как у тебя написано насколько я помню работать не будет.
6. Allexe8.1 09.08.13 15:58 Сейчас в теме
В обычной (неуправляемой) форме - доступен весь контекст объекта, в т.ч. и ДополнительныеСвойства
9. sommid 09.08.13 16:21 Сейчас в теме
прокатит и через экспортную переменную модуля и через дополнительные свойства если присваивать в обработчиках, где в параметрах есть наш объект, например:
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	ТекущийОбъект.ДополнительныеСвойства.Вставить("А", 1);
	//ТекущийОбъект.мБылаПроверкаЗаполнения = 1;
	
КонецПроцедуры


а вот если присваивать получая объект из данных формы, то ни так ни так работать не будет:
&НаСервере
Процедура УстановитьДоступностьСоглашений()
	
	Если ЗначениеЗаполнено(Объект.Партнер) Тогда
		КоличествоСоглашенийСПоставшиком  = ЗакупкиВызовСервера.ПолучитьКоличествоСоглашенийСПоставщиком(Объект.Партнер);
		ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "Соглашение", "Видимость", КоличествоСоглашенийСПоставшиком > 0);
	КонецЕсли;
	
	ТекОбъект = РеквизитФормыВЗначение("Объект");
	ТекОбъект.мБылаПроверкаЗаполнения = 2;
	ЗначениеВРеквизитФормы(ТекОбъект, "Объект");
	
КонецПроцедуры
Показать
kabantus; ZDmitry83; POWone; Alex_mar; user717534; SadrA; SkAt91; mangy; zyama; pyrkin_vanya; Olenevod; Патриот; kholkin; portwein; cwant; slawanix; MsDjuice; PLAstic; solary; Talim; kentavr27; McCoy77; Allexe8.1; +23 Ответить
12. kanalya 109 09.08.13 18:09 Сейчас в теме
В модуле:

Форма = Ссылка.ПолучитьФорму("ФормаДокумента");
Если Форма.Открыта() тогда
	ЗначениеРеквизита = Форма.ЭлементыФормы.ИскомыйРеквизит.Значение;
КонецЕсли;
13. vladimir_che 13.08.15 18:04 Сейчас в теме
В событии формы ПередЗаписьюНаСервере есть параметр ТекущийОбъект, можно установить ему доп свойства или экспортную переменную модуля
xoisim; treedo; Zarikus26; Quasar; cwant; sertak; Anton64; Denic_01; +8 Ответить
15. sokol_6630 3 20.06.16 11:36 Сейчас в теме
Спасибо. Использовал Дополнительные свойства в обработчике ПередЗаписьюНАСервере
16. uriy007@ya.ru 25.04.18 17:50 Сейчас в теме
в модуле формы документа:
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
 ПараметрыЗаписи.Вставить("НашПараметр", Истина);
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
 Если ПараметрыЗаписи.Свойство("НашПараметр") Тогда
  ТекущийОбъект.ДополнительныеСвойства.Вставить("НашПараметр", ПараметрыЗаписи["НашПараметр"]);
 КонецЕсли;
КонецПроцедуры
Показать



В модуле объекта:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
 Если ДополнительныеСвойства.Свойство("НашПараметр") Тогда
  ...
 КонецЕсли;
...
КонецПроцедуры
yak127; Nad_kin; Alex17; link_l; SnowflakeM; vanessa; Патриот; user632174_as_lexa; Desnyanka; Serg2000mr; skalex; LomayaZakat; ImHunter; +13 Ответить
17. LomayaZakat 26.06.19 09:08 Сейчас в теме
Спасибо. По (16) все работает без проблем.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот