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

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

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

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

alex0402

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

в данном случае. для определения открывать окно или нет (для того, чтобы установить значение реквизита НеОткрыватьФормуЭтогоДокумента ) в объекте выполняется некий код. Что мешает этот код выполнить в ПриСозданииНаСервере.

PS.
При обращении к серверу, не важно в форме или модуль объекта, объект на сервере каждый раз создается заново. Именно по этому все переменные (Экспортные в объекте и глобальные в форме) при первом обращении имеют значение неопределено.

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

Dmitrii_r

Цитата: alex0402 от 18 фев 2018, 08:48
сервер никогда не знает, что происходило в прошлые обращения к нему.
Вот теперь понятно. Код выполнить в ПриСозданииНаСервере мешала только идея небольшой оптимизации, что бы проверка происходила сразу в ОбработкаЗаполнения, там у меня в начале кода сразу проверка происходит и в результате либо происходит заполнение, либо сразу Возврат.

На счет хранилища, пока тоже никогда этим не пользовался, но пробовал в ОбработкаЗаполнения поместить мое значение в хранилище, а потом в ПриСозданииНаСервере его прочитать в результате ошибка - адрес это не адрес.

Делал так:
В  ОбработкаЗаполнения АдресМоегоЗначения = ПоместитьВоВременноеХранилище(МоеЗначение), а в ПриСозданииНаСервере МоеЗначение = ПолучитьИзВременногоХранилища(АдресМоегоЗначения), возвращает ошибку, что адрес не является адресом временного хранилища.

alex0402

Цитата: Dmitrii_r от 18 фев 2018, 09:51Делал так:
В  ОбработкаЗаполнения АдресМоегоЗначения = ПоместитьВоВременноеХранилище(МоеЗначение), а в ПриСозданииНаСервере МоеЗначение = ПолучитьИзВременногоХранилища(АдресМоегоЗначения), возвращает ошибку, что адрес не является адресом временного хранилища.

отсюда еще вопрос! как передать адрес хранилища из сервера клиенту? чем это отличается от передачи экспортной переменной?
Спасибо за Сказать спасибо

Dmitrii_r

Цитата: alex0402 от 18 фев 2018, 09:57
Цитата: Dmitrii_r от 18 фев 2018, 09:51Делал так:
В  ОбработкаЗаполнения АдресМоегоЗначения = ПоместитьВоВременноеХранилище(МоеЗначение), а в ПриСозданииНаСервере МоеЗначение = ПолучитьИзВременногоХранилища(АдресМоегоЗначения), возвращает ошибку, что адрес не является адресом временного хранилища.

отсюда еще вопрос! как передать адрес хранилища из сервера клиенту? чем это отличается от передачи экспортной переменной?
Ну это уже совсем другая история)
Я так понимаю что данные в хранилище хранятся до следующего серверного вызова ?

Стало быть что бы с сервера передать клиенту, на клиенте надо вызвать метод выполняемый на сервере, в случае с хранилищем, а в случае с переменной, если тоже самое, только вызов сервера с клиента не надо выполнять, но данные будут храниться до следующего серверного вызова, так?

alex0402

Цитата: alex0402 от 18 фев 2018, 08:48нельзя, созданное на сервере, получить на клиенте.
только фоновое задание может возвращать результат, но для этого нужно создать адрес хранилища и передать в фоновое задание, после выполнения задания результат будет доступен в хранилище.

Спасибо за Сказать спасибо

Dmitrii_r

Цитата: alex0402 от 18 фев 2018, 10:31
Цитата: alex0402 от 18 фев 2018, 08:48нельзя, созданное на сервере, получить на клиенте.
только фоновое задание может возвращать результат, но для этого нужно создать адрес хранилища и передать в фоновое задание, после выполнения задания результат будет доступен в хранилище.

Но ведь в модуле объекта ОбработкаЗаполнения и в модуле формы ПриСозданииНаСервере явно выполняются на сервере, здесь ситуация, что созданное на сервере, нельзя получить на сервере. Получается что данные хранятся в одном серверном вызове до следующего серверного вызова и в случае с временным хранилищем.
Добавлено: 18 фев 2018, 10:57



Цитата: alex0402 от 18 фев 2018, 08:48нельзя, созданное на сервере, получить на клиенте.


Да и к тому же, например в модуле формы, на клиенте можно вызвать серверную функцию, которая вернет результат в процедуру клиента из которого она была вызвана.

alex0402

Цитата: Dmitrii_r от 18 фев 2018, 10:42Да и к тому же, например в модуле формы, на клиенте можно вызвать серверную функцию, которая вернет результат в процедуру клиента из которого она была вызвана.

вызвать можно и получить можно только результат функции, но нельзя получить никакие данные созданные на сервере ранее, до вызова функции.
учи мат часть.
Спасибо за Сказать спасибо

Dmitrii_r

Цитата: alex0402 от 18 фев 2018, 11:03
Цитата: Dmitrii_r от 18 фев 2018, 10:42Да и к тому же, например в модуле формы, на клиенте можно вызвать серверную функцию, которая вернет результат в процедуру клиента из которого она была вызвана.

вызвать можно и получить можно только результат функции, но нельзя получить никакие данные созданные на сервере ранее, до вызова функции.
учи мат часть.
Эх) таки учу мат часть.
Спасибо!

AIFrame

Цитата: Dmitrii_r от 18 фев 2018, 09:51но пробовал в ОбработкаЗаполнения поместить мое значение в хранилище
Зачем, если основание по твоей логике содержит в себе признак - открывать форму или нет.
Проверь это и установи нужный параметр у открываемого документа, а потом не открой его, если параметр так указывает.

wise

(11)
Цитата: Dmitrii_r от 18 фев 2018, 09:51что бы проверка происходила сразу в ОбработкаЗаполнения, там у меня в начале кода сразу проверка происходит и в результате либо происходит заполнение, либо сразу Возврат.

дык, у Вас СРАЗУ всё известно... МОЖНО сделать проверку{в начале кода сразу проверка происходит} ещё ДО команды "Заполнить" и НЕ "париться"...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Теги:

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

Рейтинг@Mail.ru

Поиск