|
Заполнение общей формы на сервере | ☑ | ||
---|---|---|---|---|
0
СемёнКим
27.08.21
✎
14:07
|
Всем привет.
Как получить форму на сервере и заполнить ее реквизиты, затем открыть, это все программно. Уже каша в голове по этой теме. На клиенте делал так: Ф=ПолучитьФорму("ОбщаяФорма.<форма>"); Ф.Реквизит_1 = Значение_1; ... Ф.Реквизит_n = Значение_n; Ф.Открыть(); Или как вернуть с функции на сервере результат запроса в процедуру на клиенте? |
|||
1
ДенисЧ
27.08.21
✎
14:11
|
"Как получить форму на сервере"
Очень просто. Никак. |
|||
2
eTmy
27.08.21
✎
14:12
|
(0) как ты себе представляешь существование формы на сервере?)
|
|||
3
VladZ
27.08.21
✎
14:14
|
(0) Зачем?
|
|||
4
VladZ
27.08.21
✎
14:15
|
Передай параметры. При открытии формы проверяй.
|
|||
5
СемёнКим
27.08.21
✎
14:34
|
Решил через возврат массива с сервера делать и остальное так же как и на клиенте.
|
|||
6
VladZ
27.08.21
✎
14:35
|
(5) Может тогда уж лучше структуру?
|
|||
7
Мультук
гуру
27.08.21
✎
14:37
|
(0) >>Или как вернуть с функции на сервере результат запроса в процедуру на клиенте?
Зачем все это на клиенте? Чтобы нажать на кнопку и снова отдать на сервер? Дык, засунь это во временное хранилище, на клиент отдай адрес. |
|||
8
СемёнКим
27.08.21
✎
14:45
|
(6) разве не будет одно и то же? или все же через структуру быстрее будет?
|
|||
9
Chameleon1980
27.08.21
✎
14:49
|
через структуру ключи будут
|
|||
10
СемёнКим
27.08.21
✎
14:50
|
(7) В общем эта (общая) форма открывается при событии выбор по области табличного документа на форме документа. Через текущую область получаю значение по которому на сервере через запрос получаю остальные данные и после их загоняю в общую форму, чтоб клиент мог видеть что он там написал и изменить, если что. Так и получается, беру данные с сервера что то меняю и отправляю обратно на сервер.
А временное хранилище мне не нравится, нет над ним контроля и он точно ограниченный, насколько ограниченный не знаю |
|||
11
СемёнКим
27.08.21
✎
14:52
|
(9) массивДанные = Новый Массив();
Пока Выборка.Следующий() Цикл СтруктураДанных = Новый Структура("<поля выборки через запятую>"); ЗаполнитьЗначенияСвойств(СтруктураДанных,РезультатЗапроса); массивДанные.Добавить(СтруктураДанных); КонецЦикла; так делаю. |
|||
12
Мультук
гуру
27.08.21
✎
16:13
|
(10)
>>А временное хранилище мне не нравится, нет над ним контроля и он точно ограниченный, насколько ограниченный не знаю Я его не знаю, я его не умею, я его боюсь. P.S. То что ты делаешь, делается через стандартные функции БСП тз = запрос.выполнить().Выгрузить(); массивДанные = ОбщегоНазначения.ТаблицаЗначенийВМассив(тз); P.P.S. А передавать значения в общую форму, чтобы она сама получала данные и сама себя заполняла? |
|||
13
СемёнКим
28.08.21
✎
09:57
|
(12) Спасибо за ответ.
тз = запрос.выполнить().Выгрузить(); массивДанные = ОбщегоНазначения.ТаблицаЗначенийВМассив(тз); >>Я его не знаю, я его не умею, я его боюсь. Да, именно так) Пока не знаком с временным хранилищем. Нужно приличное время выделить для изучения этого блока. А сейчас времени почти нет, клиент торопит, вот и приходится писать "говнокод" так как я умею. >>А передавать значения в общую форму, чтобы она сама получала данные и сама себя заполняла? Например, добавить реквизит на общ форму с типом динамический список, запросом вытащить необходимые поля по ключевым(период записи и измерения для регистра сведений) значениям и заполнить общ форму? Или есть более оптимальный способ? |
|||
14
acht
28.08.21
✎
10:00
|
(13) > времени почти нет, клиент торопит, вот и приходится писать "говнокод"
Кстати, а как ты относишься, например, к обилию багов в Cyberpank 2077? |
|||
15
ДедМорроз
28.08.21
✎
17:14
|
Во-первых,на сервере ничего открыть нельзя, формы открываются только на клиенте,но как ни странно,готовятся они на сервере.
Поэтому,если у вас данные,которые на сервере,нужно показать в форме,то их нужно передать в ее процедуру ПриСозданииНаСервере. Самый простой способ - поместить их во временное хранилище,а его адрес передать в параметрах формы. Если же данные получаются из базы,то ПриСозданииНаСервере самое место их получить. Конечно,может быть ситуация,когда данные на клиенте,и на сервере их нет. Тогда,стандартный механизм не подходит,но в процедуре ПриОткрытии новой формы можно обратиться к владельцу и вызвать его экспортную процедуру,которая позволит передать параметры,причем,в отличие от серверных вызовов,сериализация не требуется,можно передавать даже Com-объекты. Опять же,форма,открывшая другую форму получает ее контекст как результат функции открытия и точно также может вызвать экспортную процедуру или функцию. Но,такой механизм саиа 1с не одобряет и не использует. |
|||
16
СемёнКим
28.08.21
✎
18:44
|
(15) Спасибо, учту на будущее.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |