|
|
Внешняя ОбработкаОбъект в общем модуле. Реально? |
☑ |
|
0
sereban
23.01.15
✎
15:22
|
Пытаюсь сделать общие модули для передачи ВнешнейОбработки на сервер. Суть такая: пользователь запускает обработку на клиенте, двоичные данные обработки копируются на сервер, после этого на сервере определенным образом используются функции и процедуры и модуля обработки.
Не получается сделать универсально само копирование обработки на сервер, т.к. там используется свойство из ОбработкаОбъект.
Вот пример моего кода, который работает в форме:
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
ДвоичныеДанныеОбработки = Новый ДвоичныеДанные(ПолноеИмяФайлаОбработкиОтчета());
ИмяФайлНаСервере = ПолучитьИмяФайлаОбработкиНаСервере(ДвоичныеДанныеОбработки);
СделатьЧтоТоСОбработкойНаСервере(ИмяФайлНаСервере);
КонецПроцедуры
&НаСервере
Функция ПолноеИмяФайлаОбработки()
Возврат РеквизитФормыВЗначение("Объект").ИспользуемоеИмяФайла;
КонецФункции
Вместо этого должен быть вызов клиентского общего модуля(из клиенсткого будут вызовы серверного). Как-то так:
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
ИмяФайлНаСервере = ОМ.ПолучитьИмяФайлаОбработкиНаСервере(Объект);
СделатьЧтоТоСОбработкойНаСервере(ИмяФайлНаСервере);
КонецПроцедуры
Но, Объект имеет тип ДанныеФормыСтруктура, и преобразовать в объект его можно только на сервере, а РеквизитФормыВЗначение является методом управляемой формы, которую нельзя передать на сервер. Пытался использовать метод ДанныеФормыВЗначение, но не подходит тип (параметр 2). Возможно как-нибудь реализовать поставленную задачу?
|
|
|
1
polosov
23.01.15
✎
15:23
|
(0) А зачем это все?
|
|
|
2
ДенисЧ
23.01.15
✎
15:24
|
(1) Наверное, жена надоела, а любовниц под рукой нет...
|
|
|
3
Garykom
гуру
23.01.15
✎
15:27
|
(0) "...Хрень какая то..."
|
|
|
4
sereban
23.01.15
✎
15:40
|
(1) Это нужно для выполнение процедур из модуля обработки в параллельных фоновых заданиях
|
|
|
5
Defender aka LINN
23.01.15
✎
15:42
|
(4) Идея перенести эти процедуры в общий модуль не рассматривается?
|
|
|
6
ДенисЧ
23.01.15
✎
15:42
|
(4) В БСП посмотреть, как регламентные задания на внешне-встроенных обработках сделаны - не предлагать?
|
|
|
7
sereban
23.01.15
✎
15:45
|
(5) Зачастую возникает необходимость выполнения разовых массовых операций по большому количеству Абонентов (база полтерабайта) и применять изменения к базе каждый раз нет возможности (после динамического обновления возникают глюки). Да и зачем в общих модулях разовые процедуры
|
|
|
8
sereban
23.01.15
✎
15:53
|
(6) Предложить можно много чего, но мой вариант проще.
Если нельзя в ОМ перенести
&НаСервере
Функция ПолноеИмяФайлаОбработки()
Возврат РеквизитФормыВЗначение("Объект").ИспользуемоеИмяФайла;
КонецФункции
То будет придется в каждую обработку вставлять эту функцию. Не критично.
Но хотелось бы знать, если в контекстном вызове на сервере можно получить ИспользуемоеИмяФайла, то почему нельзя сделать тоже самое в ОМ, передав соответствующие объекты
|
|
|
9
Defender aka LINN
23.01.15
✎
16:55
|
(7) Для такого у меня специально обученная база есть. Соединяется с другими базами и коварно запускает там обработки
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший