Как вызвать процедуру из модуля объекта в модуле формы этого

Аватар пользователя
Администратор
Сообщений: 159
Зарегистрирован: 27 фев 2011, 17:40
Откуда: откуда и все :)
СообщениеДобавлено: 28 мар 2012, 22:51
В модуле Объекта:

Код: выделить все
Процедура Тест() Экспорт
   Сообщить("ГыГы");
КонецПроцедуры


В модуле Формы:

Код: выделить все
&НаСервере
Процедура ТестНаСервере()
   ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
   ОбъектНаСервере.Тест();
   ЗначениеВРеквизитФормы(ОбъектНаСервере, "Объект");
КонецПроцедуры

&НаКлиенте
Процедура ТестВыполнить()
   ТестНаСервере();
КонецПроцедуры


Юзаем процедуру ТестВыполнить()... =)

Если в процедуре Тест() в модуле объекта НЕ меняешь данные Объекта Формы, то команду можно не писать. Измененные данные объекта нужно преобразовать обратно в реквизит управляемой формы, иначе никаких изменений с данными в форме не увидишь.
Команда Сообщить() никакого отношения к изменению данных объекта формы не имеет, потому в этом случае сработает, а общем - нет.

Ответ содержится в книге Максима Радченко "1С:Предприятие 8.2. Практическое посибие разработчика" на стр. 785. Почему уважаемый автор книги не захотел привести код из книги, я не знаю... Потому и написал, чтобы ответ был доступен всем желающим :)

Вот текст из книги:

В серверной процедуре формы мы получаем прикладной объект из реквизита формы и выполняем метод этого прикладного объекта Пересчитать(). Затем данные объекта, измененные в результате пересчета, преобразуем обратно в реквизит формы (Листинг 27.2).

Код: выделить все
&НаСервере
Процедура ПересчитатьНаСервере()
 
   // Преобразует реквизит Объект в прикладной объект.
   Документ = РеквизитФормыВЗначение("Объект");
 
   // Выполняет пересчет методом, определенным в модуле документа.
   Документ.Пересчитать();
 
   // Преобразует прикладной объект обратно в реквизит.
   ЗначениеВРеквизитФормы(Документ, "Объект");
 
КонецПроцедуры
Проблема, это задача в решении которой никто не заинтересован.
СВС
Цитата

Вернуться в Для программиста

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Яндекс.Метрика
cron