|
Передача формы на сервер из модуля общей команды | ☑ | ||
---|---|---|---|---|
0
biimmap
02.08.17
✎
18:50
|
Ситуация такая:
1. Есть общая команда, которая вызывается из 3-х типовых документов. В документах ни строчки кода. 2. При выполнении этой команды необходимо выполнить несколько серверных процедур, которые описаны в модуле каждого из документов. 3. Процедуры, которые необходимо выполнить - серверные. 4. Эти процедуры имеют параметры. Параметр - это строка табличной части. 5. Как известно такие вещи нельзя с клиента на сервер передать. Задача: любой ценой выполнить эти процедуры не изменяя типовые документы. Вопрос: Как передать на сервер из команды данные? через хранилище это не передается! или Форму передать на сервер. т.е. из клиентской процедуры команды, где форма есть, передать её в серверную процедуру команды. Это также не получается сделать. ессно это всё управляемые формы. |
|||
1
Diman000
02.08.17
✎
18:57
|
Три раза перечитал, так и не вкурил кто на ком стоял.
Где типовой код, который нельзя менять и где твой где можно изголяться? Почему из клиентского кода выполнения команды нельзя передать на сервер строку табличной части в качестве параметра? Взял в модуле команды добавил серверную процедуру и через нее вызвал серверные же процедуры модуля документов, не? |
|||
2
biimmap
02.08.17
✎
19:03
|
(1)
СтрокиСостава = ЭтаФорма.Объект.Состав.НайтиСтроки(Новый Структура("ИдентификаторСтроки", ИдентификаторСтроки)); ЭтаФорма.ПриПолученииДанныхСтрокиСостава(СтрокиСостава[0]); ЭтаФорма.Модифицированность = Истина; Процедура ПриПолученииДанныхСтрокиСостава - СЕРВЕРНАЯ. описанный код вызывается с клиента из модуля команды. СтрокаСостава - это тот параметр который не могу передать никак никуда. его тип - строка табличной части. |
|||
3
biimmap
02.08.17
✎
19:05
|
получается мне нужно этот код вызвать из серверной процедуры команды. Но для этого нужно в серверную процедуру команды передать строку табличной части. или форму из которой я потом с легкостью получу строку табличной части.
|
|||
4
biimmap
02.08.17
✎
19:07
|
СтрокиСостава = ЭтаФорма.Объект.Состав.НайтиСтроки(Новый Структура("ИдентификаторСтроки", ИдентификаторСтроки));
ЭтаФорма.ПриПолученииДанныхСтрокиСостава(СтрокиСостава[0]); ЭтаФорма.Модифицированность = Истина; |
|||
5
biimmap
02.08.17
✎
19:07
|
почему-то удалили наши посты...
|
|||
6
Diman000
02.08.17
✎
20:57
|
Так, то есть у тебя серверные процедуры не в модуле документов, а в модуле ФОРМЫ документы. Это очень разные вещи, поэтому я и не вкурил (0)
Я вот поискал сейчас в своих поделках такие фортели. И быстро нашел. Из модуля формы одного документа, С КЛИЕНТА идет получение формы другого документа и совершенно спокойно вызывается серверная процедура формы этого другого документа. Ровно также как у тебя написано, через точку. Отсюда вопрос. ПриПолученииДанныхСтрокиСостава точно объявлена в форме документа как экспортная? Может в этом дело? |
|||
7
Diman000
02.08.17
✎
21:00
|
Хотя, может я опять все не так понял. Ну, короче, попробуй вместо СтрокиТабличнойЧасти передать структуру с набором свойств как реквизиты этой строки.
Если в вызываемой процедуре нет хитрых проверок, что это именно СтрокаТабличнойЧасти, то должно прокатить, какая ей разница-то? Но! Если эта СтрокаТабличнойЧасти должна измениться после выполнения вызываемой процедуры, то придется тебе в своей команде из структуры заполнить строку. |
|||
8
biimmap
02.08.17
✎
21:09
|
(7) т.е. передать структуру, а потом поместить структуру опять в строку?
есть документ Ведомость. в нём есть кнопка - общая команда. кнопка вызывает общую форму. Когда закрывается общая форма, надо провести обработку данных ведомости! и после этого вызвать процедуры серверные экспортные которые в модуле ФОРМЫ ведомости. и вот в этот момент проблема с передачей параметра. |
|||
9
biimmap
03.08.17
✎
10:10
|
подниму...
|
|||
10
Мимохожий Однако
03.08.17
✎
10:17
|
Платформа какая?
|
|||
11
biimmap
03.08.17
✎
12:41
|
8.3.9
|
|||
12
biimmap
03.08.17
✎
12:43
|
Коллеги. те проблемы которые я здесь описал, они решились. Параметр преобразовал в структуру и успешно выполнились процедуры все. НО! несмотря на то, что в из модуля команды удалось изменить форму как надо мне, назад эти данные не попадают. И у пользователя на экране данные до корректировки.Обновляется только если написать Форма.Записать(), но это чушь полная. поэтому буду переделывать по-другому.
я даже пробовал открыть существующую форму через ключ уникальности. Открылось, всё поменялось, а у пользователя опять всё по-старому. |
|||
13
dezss
03.08.17
✎
12:50
|
а ты не пробовал в команду передавать эту форму, а после изменения данных делать
Форма.ОбновитьОтображениеДанных() |
|||
14
biimmap
03.08.17
✎
12:58
|
(13) этот оператор считывает данные из ссылки и запихивает их в форму. а у меня ссылка не менялась! менялись данные в форме.
|
|||
15
dezss
03.08.17
✎
13:00
|
(14) если они менялись в форме, то они и будут изменены в форме. Покажи код.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |