Имя: Пароль:
1C
1С v8
Клиент-серверное взаимодействие, на сервере без контекста
,
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
нет мыслей)
я уже сделал на самом деле, добавил макет в общие формы.
Но сообщество послушать всё ещё интересно.