|
Прошу пояснить про передачу управляемой формы на сервер. | ☑ | ||
---|---|---|---|---|
0
ptiz
16.01.23
✎
15:24
|
Когда мы из клиентской процедуры формы вызываем серверную процедуру этой же формы (&НаСервере, т.к. с контекстом), то форма преобразуется в ДанныеФормы и с этим можно работать на сервере.
Почему тогда нельзя форму (с преобразованием в ДанныеФормы) передать на сервер другим образом? Например, в отдельной обработке делаю Форма=ПолучитьФорму("Документ....") и далее хочу передать её общий серверный модуль, превратив в те же ДанныеФормы. Но это невозможно. Приходится расширением добавлять процедуру в самой форме документа - и там гоняй её на сервер сколько пожелаешь. Или я что-то упустил? |
|||
1
polosov
16.01.23
✎
15:55
|
(0) Форма существует и на клиенте и на сервере. Когда ты уходишь на сервер (&НаСервере), то идет переключение контекста выполнения с частичным переносом данных (максимально оптимальным).
А вот если ты берешь данные формы и отдаешь на сервер, то ты будешь работать с данными уже не формы, а просто с данными отвязанными от формы. Короче не правильно это. |
|||
2
mikecool
16.01.23
✎
16:05
|
||||
3
ptiz
16.01.23
✎
16:48
|
Собственно, почему вопрос возник: есть процедура серверного общего модуля, которая на входе принимает ДанныеФормы.
Мне надо создать документ, и заполнить его, вызывав эту процедуру. Я точно не первый человек, который "радуется" типовым конфигурациям, когда всё делается через ... формы. Приходится городить костыль - делать экспортную процедуру формы через расширение, т.к. там контекст формы свободно отправляется на сервер. Или есть другие способы? |
|||
4
mikecool
16.01.23
✎
16:51
|
(3) типовым конфигурациям, когда всё делается через ... формы. - источник скорее всего &НаКлиентеНаСервереБезКонтекста
|
|||
5
FirstLine Support
16.01.23
✎
17:04
|
(3) Если делать в парадигме вендора, то всё идет гладко и естественным образом. Если делать поперёк парадигмы, то постоянно путаешься в костылях, расширениях и прочем мусоре под ногами, который норовит тебя ударить по лбу граблями.
Откуда взялась занятная идея, что процедура в общем модуля получает данные формы, а не объект? |
|||
6
H A D G E H O G s
16.01.23
✎
17:09
|
(3) Передай туда Структуру
|
|||
7
mikecool
16.01.23
✎
17:20
|
(5) см(4)
|
|||
8
Chai Nic
16.01.23
✎
17:24
|
(5) Такое сплошь и рядом в типовых. Какой-нибудь пересчет в строке документа вызывается или прямо в модуле формы, или через общие модули, с передачей контекста формы. В результате, при программном создании документа приходится весь этот код повторять, потому что форму не создашь вне клиента. Недоработка.
|
|||
9
ptiz
16.01.23
✎
17:52
|
(6) Придется повторить всю структуру формы. Но возможно сработает. А есть готовые процедуры создания структуры из ДанныхФормы и переноса обратно?
|
|||
10
mistеr
16.01.23
✎
17:57
|
(8) Но внутри обычно вызывается серверный метод без всякой формы. Его и нужно использовать при программном создании.
|
|||
11
Kassern
16.01.23
✎
18:00
|
(9) Иногда достаточно передать объект вместо формы, пробовали?
|
|||
12
magicSan
16.01.23
✎
18:05
|
(0) задачу скажи уже полностью
|
|||
13
ptiz
16.01.23
✎
18:26
|
(11) Там есть вызов метода .Свойство() - на нём споткнулось.
|
|||
14
ptiz
16.01.23
✎
18:27
|
(12) Создать и заполнить документы "Справка 2-НДФЛ для сотрудника" по списку сотрудников. Задачу-то сделал, но хотел прояснить про передачу формы.
|
|||
15
ДедМорроз
16.01.23
✎
19:25
|
Это горе-оптимизаторы делают расчет на клиенте,а в результате - с сервера его не вызвать.
|
|||
16
magicSan
16.01.23
✎
19:40
|
(14) дак там тд формируется на сервере - не с той стороны копаешь
|
|||
17
rozer76
16.01.23
✎
19:43
|
(14) эмм, а вот еще интереснее непосредственно из фонзадания такое "имитировать" - там никакая экспортная процедура формы не спасет. Да, это древняя боль... 1с делает как ей удобно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |