|
Можно ли вызвать методы внешней обработки НаСервереБезКонтекста ? | ☑ | ||
---|---|---|---|---|
0
ИС-2
naïve
08.11.21
✎
13:26
|
Гнать всю форму на сервер очень ресурсоемко. Поэтому хочу делать все по максимуму НаСервереБезКонтекста .
Можно ли вызвать методы модуля объекта обработки, получить макет и т.д не передавая всю форму на сервер? Была бы строена, то проблем нет, но обработка внешняя ? |
|||
1
mikecool
08.11.21
✎
13:31
|
а в чем разница?
да и попробовать - 5 минут |
|||
2
timurhv
08.11.21
✎
13:36
|
(0) Внешняя обработка включена в справочник дополнительных отчетов и обработок?
|
|||
3
ДенисЧ
08.11.21
✎
13:39
|
Получаешь объект и зовёшь его методы. В чём проблема?
|
|||
4
H A D G E H O G s
08.11.21
✎
13:41
|
Создай 2 обьект по имени внешней обработки и полу его макет.
|
|||
5
ИС-2
naïve
08.11.21
✎
13:44
|
(1) хочу максимально быстрое решение сделать - для этого ухожу, где могу от передачи формы на сервер
(2) нет. Если она будет подключена, то смогу к подключенной обработке обращаться... (3) Объекта нет - это внешняя обработка |
|||
6
ДенисЧ
08.11.21
✎
13:45
|
(5) Как нет объекта у внешней обработки??
|
|||
7
ИС-2
naïve
08.11.21
✎
13:48
|
(6) очень просто - нет объекта на НаСервереБезКонтекста
|
|||
8
ДенисЧ
08.11.21
✎
13:50
|
(7) А зачем он там тебе? получай там, где он есть. И зови.
|
|||
9
Мультук
гуру
08.11.21
✎
13:55
|
(3)
Проблема в том, что если в этот момент на форме лежит таблица значений из 10 тыс. строк то это больно. Автор хочет этого "больно" "как-нибудь" избежать. Но как обработать макет "наСервере" чтобы "НаСервере" не было ? :-) Парадокс :-) |
|||
10
серый КТУЛХУ
08.11.21
✎
14:00
|
например что ты хочешь сделать на сервере что без контекста не получится?
|
|||
11
серый КТУЛХУ
08.11.21
✎
14:02
|
(10)+ в смысле - с чем именно хочешь поработать на сервере таким, чтобы это было бы невозможно сериализовать и передать на сервер в параметре?
|
|||
12
Ryzeman
08.11.21
✎
14:28
|
(0), (5) насколько я понимаю из того, что ты хочешь - нет, так сделать нельзя
То есть из формы обработки получить объект обработки в серверной процедуре без контекста, при этом сама обработка не записана даже в справочник. Даже логически прикинуть - откуда серверу узнать что именно ты хочешь выполнить, если этого нет ни в конфе ни в оперативной памяти? Думается, тут проблема в архитектуре решения. Либо стоит перенести всю логику обработку в модуль формы и там уже самому решать где вызывать с контекстом, где без, либо вообще выносить в общий модуль, если код используется несколько раз и в разных целях (регламентное задание, интерактивно). |
|||
13
timurhv
08.11.21
✎
14:41
|
(4) Говнокод получается (помимо ПоместитьФайл):
&НаКлиенте Процедура ПриОткрытии(Отказ, СтандартнаяОбработка) ИмяФайла = ПолучитьИмяОбработки(); АдресХранилища = ""; Результат = ПоместитьФайл(АдресХранилища, ИмяФайла, , Ложь); // сохраняем в реквизит формы ИмяОбработки = ПодключитьВнешнююОбработку(АдресХранилища); // используем получение макета с сервера без контекста МакетКлиент = ПолучитьМакетОбработки(ИмяОбработки, "Макет1"); КонецПроцедуры &НаСервере Функция ПолучитьИмяОбработки() Возврат РеквизитформыВзначение("Объект").ИспользуемоеИмяФайла; КонецФункции &НаСервереБезКонтекста Функция ПодключитьВнешнююОбработку(АдресХранилища) Возврат ВнешниеОбработки.Подключить(АдресХранилища); КонецФункции &НаСервереБезКонтекста Функция ПолучитьМакетОбработки(ИмяОбработки, Макет) Возврат ВнешниеОбработки.Создать(ИмяОбработки).ПолучитьМакет(Макет); КонецФункции |
|||
14
fisher
08.11.21
✎
14:46
|
(13) Имя внешней обработки можно выкусить из имени формы. А дальше уже ВнешниеОбработки.Создать()
|
|||
15
fisher
08.11.21
✎
14:47
|
Подключать уже не надо. Это будет имя подключенной.
|
|||
16
timurhv
08.11.21
✎
14:59
|
(15) Да, так хорошо:
&НаКлиенте Процедура ПолучитьМакетВнешнейОбработки() Макет = ПолучитьМакетОбработки(СтрРазделить(ЭтаФорма.ИмяФормы, ".")[1], "Макет1"); КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьМакетОбработки(ИмяОбработки, Макет) Возврат ВнешниеОбработки.Создать(ИмяОбработки).ПолучитьМакет(Макет); КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |