Имя: Пароль:
1C
1С v8
Использование Обработки в форме другой обработки
0 kimba
 
11.03.14
19:18
В форме обработки используется другая обработка, точнее её методы.
Раньше чтобы не создавать постоянно это обработку в форме я использовал "ПоместитьВоВременноеХранилище".
Теперь в 8.3 эта хрень перестала работать, т.к. ОбработкаОбъект не сериализуется.
И при каждом нажатии кнопки или необходимости выполнить метод этой обработки надо её создавать, что замедляет работу.
Глобальные переменные я так понимаю работают только на клиенте.
Вот не пойму, как мне её один раз создать и потом постоянно ей пользоваться, во всех серверных функциях и процедурах формы?
1 ДенисЧ
 
11.03.14
19:20
модуль скешированием возвращаемых знаачений?
2 kimba
 
11.03.14
19:22
(1) куда?
3 ДенисЧ
 
11.03.14
19:24
(2) направо и в стенку головой...
4 Zypse
 
11.03.14
19:26
(0) ИМХО, если используются только методы обработки, а сама обработка с ее формами не используется - то эти методы нужно помещать в общие модули. Как то так...
5 kimba
 
11.03.14
19:29
(4) Это не возможно в данной ситуации, т.к. обработкка зашифрована, в конфе используется СЛК
6 Infsams654
 
11.03.14
19:34
(0) а почему нельзя так Обработки.<имя обработки>.Создать()
7 Zypse
 
11.03.14
19:35
(5) СЛК - это печально. Тем более что шифровать можно и общие модули, но ребята об этом видимо не знают...
8 Infsams654
 
11.03.14
19:36
(6)+ но один раз в серверных функциях не получится. В форме можно сохранить в переменную и пользоваться много раз, пока форма жива
9 kimba
 
11.03.14
19:38
(7) шифровать, в смысле ставить пароль на модуль, средствами платформы? это совсем не подходит.
(8) в какую переменную? и как?
10 Infsams654
 
11.03.14
19:48
(9) &НаКлиенте
Перем ПеремОбработка;

&НаКлиенте
// Процедура - обработчик события "ПриОткрытии" формы
Процедура ПриОткрытии(Отказ)
ПеремОбработка = Обработки.<имя обработки>.Создать();
....

или еще где-то на клиенте.

Затем обращаться к экспортным методам через точку: ПеремОбработка.<метод>
11 Zypse
 
11.03.14
20:00
(0) Кстати у меня на 8.3 "ПоместитьВоВременноеХранилище" работает (в связке с параметром сеанса)- храню com-соединение:

//Запоминаем соединение
Парам = Новый Структура;
Парам.Вставить("Соединение", Соединение);
            ПараметрыСеанса.СоединениеРаспределенка = ПоместитьВоВременноеХранилище(Парам,Новый УникальныйИдентификатор);

//Получаем соединение
Парам = ПолучитьИзВременногоХранилища(ПараметрыСеанса.СоединениеРаспределенка);
Если Парам<>Неопределено Тогда
Соединение = Парам.Соединение; // соединение уже установлено. Его и используем.
КонецЕсли;
12 Zypse
 
11.03.14
20:01
+(11) ПараметрыСеанса.СоединениеРаспределенка - это строка неограниченной длины
13 Infsams654
 
12.03.14
08:44
(12) может до поры до времени и работает. А в дальнейшем, хз его знает, что там будет доставаться из структуры во временном хранилище.
Сказано, нельзя.
14 kimba
 
12.03.14
11:27
(10) На клиенте данная структура не работает
ПеремОбработка = Обработки.<имя обработки>.Создать();
(11) А какая версия платформы? Чувствую в этом случае 1с нам все урежет в итоге.
15 kimba
 
12.03.14
12:07
(1) Да клевая штука не разу не пользовался
Кому надо используйте модуль с повторным использованием возвращаемых значений.
v8: Повторное использование возвращаемых значений
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс