|
Клиент-серверное взаимодействие, на сервере без контекста |
☑ |
0
Bibr
17.08.16
✎
09:27
|
Всем привет, в двух словах подскажите по методологии, чтоб велосипед не изобретать. (или ткните, где почитать)
Есть увесистая форма внешней обработки - много вкладок, таблиц и тд.
Мне нужно передать из формы на сервер одну таблицу и несколько реквизитов, весь контекст формы долго передаётся.
делаю так:
&НаКлиенте
Процедура команда()
СоздатьДок(Объект.Товары, Объект.Реквизит1,...)
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СоздатьДок(Товар, Реквизит1,..)
.....
КонецПроцедуры
Работает.
Это правильно? Или есть более феншуйный метод?
|
|
1
butterbean
17.08.16
✎
09:34
|
>> весь контекст формы долго передаётся
не надо его туда передавать, он там уже есть
|
|
2
lubitelxml
17.08.16
✎
09:37
|
на сервере вроде норм работает ЭтаФорма.Элементы.Поле1.ТекущиеДанные..
|
|
3
Bibr
17.08.16
✎
12:21
|
(1) не понял, как это к моей ситуации относится?
(2) неа. На сервере без контекста ЭтаФорма нету.
|
|
4
Bibr
17.08.16
✎
12:23
|
второй момент.
Можно ли как-то получить макет в процедуре, которая на сервере без контекста?
РеквизитФормыВЗначение("Объект") без контекста не работает
|
|
5
lubitelxml
17.08.16
✎
13:23
|
(4) попробуй через хранилище значений
|
|
6
lubitelxml
17.08.16
✎
13:24
|
+(5) ну или через параметры, только в строку уложи через ЗначениеВСтрокуВнутр
|
|
7
portowyi
17.08.16
✎
14:02
|
(0) Работает? Как минимум передача на сервер ТЧ от объекта должно падать. Иногда такой код падает даже с ошибкой "Нельзя изменять поле, содержащее объект данных формы"!
|
|
8
Bibr
17.08.16
✎
14:18
|
(7) Работает, Процедура СоздатьДок(Знач Товар, Реквизит1,..)
Забыл знач указать, от руки набирал.
Но быть может, вы хотели поделиться какой-то полезной информацией? :)
|
|
9
Bibr
17.08.16
✎
14:20
|
(6) А можно поподробнее?
ЗначениеВСтрокуВнутр оно же только на сервере..
У меня сейчас печальная ситуация, что простейшая функция по получению макета работает 6секунд из-за тяжёлой формы.
Такая функция:
&НаСервере
Функция ПолучитьМакет()
Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
КонецФункции;
|
|
10
Bibr
17.08.16
✎
14:22
|
+(9)
Вот как её преобразовать, чтобы без контекста?
|
|
11
Bibr
17.08.16
✎
16:19
|
апну.
есть мысли?
мне кроме как изврата а-ля пробовать получать обработку из дополнительных внешних отчётов-обработок по наименованию и уже оттуда тащить макет, ничего больше не приходит.
Но это совсем некрасиво(
|
|
12
Bibr
19.08.16
✎
08:15
|
нет мыслей)
я уже сделал на самом деле, добавил макет в общие формы.
Но сообщество послушать всё ещё интересно.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший