Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 07:09

Передача значения переменной из модуля объекта в модуль формы (8.3 управляемое приложение)

Автор Dmitrii_r, 16 фев 2018, 16:53

0 Пользователей и 1 гость просматривают эту тему.

Dmitrii_r

Доброго здоровьица!
Буду краток - я начинающий.
Ситуация:
При определённых условиях, форма документа, который вводиться на основании, не должна открываться.
Сделал так - создал доп. реквизит документа (НеОткрыватьФормуЭтогоДокумента) с типом булево, в модуле документа в ОбработкаЗаполнения проверяю условия и присваиваю этому реквизиту либо ложь, либо истина.
В модуле формы пишу так

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Отказ = Объект.НеОткрыватьФормуЭтогоДокумента;
КонецПроцедуры
.

Так работает, но это решение мне не очень нравиться, да и сточки зрения познавательного процесса хочется понять какие есть еще способы, но без добавления в документ доп. реквизита?

Пробовал создавать экспортную переменную в модуле объекта, но потом не могу понять как в модуле формы прочитать из нее значение(в момем случае значение всегда получается неопределено) или может через временное хранилище можно передать? но я тож не смог понять как это правильно сделать (адрес у меня получался вовсе и не адрес (в модуле объекта пишу АдресМоейПеременной = ПоместитьВоВременноеХранилище(МояПеременная), в модуле формы пишу так: ПолучитьИзВременногоХранилища("АдресМоейПеременной ") - не получатеся так.

Подскажите пожалуйста, а то ум болит.

wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Dmitrii_r

Цитата: wise от 16 фев 2018, 17:13
(0)пробуй "ДополнительноеСвойство"

В модуле объекта пишу ДополнительныеСвойства("ключ",значние) а как в модуле формы это прочитать?
Добавлено: 16 фев 2018, 19:47


Не правильно написал, но не суть
ДополнительныеСвойства.Вставить("ключ",значние)

В модуле формы единственное где нашел ДополнительныеСвойства, если РеквизитФормыВЗначение сделать, но там пусто

IL2016

Цитата: Dmitrii_r от 16 фев 2018, 16:53Ситуация:
При определённых условиях, форма документа, который вводиться на основании, не должна открываться.
можно ведь описать условия, далее при наступлении этих условий сделать недоступной/неактивной кнопку ВводНаОсновании.

Dmitrii_r

Цитата: IL2016 от 16 фев 2018, 20:29
Цитата: Dmitrii_r от 16 фев 2018, 16:53Ситуация:
При определённых условиях, форма документа, который вводиться на основании, не должна открываться.
можно ведь описать условия, далее при наступлении этих условий сделать недоступной/неактивной кнопку ВводНаОсновании.
Кстати не плохая идея! Попробую.
Ну а если в академических целях, все равно теперь стало интересно как передать значение, неужели только создавать реквизит у документа?

IL2016


Dmitrii_r

Цитата: IL2016 от 16 фев 2018, 20:48
необязательно, вариантов много.
нужен только самый оптимальный.
Интригу нагоняете))) Может поделитесь вариантом, потому что я начитал, что в случае с управляемыми формами не все так однозначно, но хорошего примера так и не нашел.

AIFrame

Оптимальный вариант - передать в форму структуру при создании (т.н. Параметры в процедуре ОткрытьФорму()).
В модуле формы на обработчике ПриСозданииНаСервере() эту структуру обработать.

Самый оптимальный вариант.

Dmitrii_r

Цитата: AIFrame от 17 фев 2018, 13:40
Оптимальный вариант - передать в форму структуру при создании (т.н. Параметры в процедуре ОткрытьФорму()).
В модуле формы на обработчике ПриСозданииНаСервере() эту структуру обработать.

Самый оптимальный вариант.
Все это происходит в интерфейсе управляемое приложение.
Вопрос в том, как из модуля объекта передать значение в модуль формы. Т е в модуле объекта случается проверка и в результате в модуле объекта для переменной присваивается значение, в зависимости от значения форма должна либо открываться, либо не открываться.
Либо я вас не понял, если так, пожалуйста напишете более подробно.

AIFrame

ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ОбработкаЗаполнения (Filling)
Синтаксис:

ОбработкаЗаполнения(<ДанныеЗаполнения>, <ТекстЗаполнения>, <СтандартнаяОбработка>)
Параметры:

<ДанныеЗаполнения>

Тип: Произвольный.
Значение, которое используется как основание для заполнения.
Если обработчик вызван при выполнении метода Заполнить, параметр равен параметру <ДанныеЗаполнения> метода Заполнить.
При обработке заполнения во время ввода на основании параметр имеет значение основания.
При интерактивном вводе нового из формы списка параметр является структурой, элементы которой соответствуют тем параметрам отбора формы списка, у которых способ сравнения Равно или ВСписке с единственным элементом списка. Если таких элементов отбор списка не содержит, данный параметр равен Неопределено. Если параметр <СтандартнаяОбработка> по окончании работы обработчика равен Истина (установлен по умолчанию), система автоматически произведет заполнение одноименными элементами структуры.
<ТекстЗаполнения>

Тип: Строка; Неопределено.
Текст, используемый для заполнения документа.
Если у объекта реквизит Номер находится в списке "Ввод по строке" и не установлен признак Автонумерация, то значение присваивается реквизиту Номер.
В противном случае присвоение не выполняется.
Неопределено - для мобильной платформы.
<СтандартнаяОбработка>

Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Отказ от стандартной обработки не отменяет действие.
Значение по умолчанию: Истина.
Описание:

Возникает при вводе документа на основании, а также при выполнении метода Заполнить, при вводе на основании, а также при интерактивном вводе нового. В процедуре-обработчике этого события должен быть описан сам алгоритм заполнения реквизитов документа на основании переданного значения.
Примечание:

При копировании (как интерактивном, так и средствами встроенного языка), данный обработчик не вызывается.
Замечание:

Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
См. также:

ДокументОбъект.<Имя документа>, метод Заполнить

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск