Имя: Пароль:
1C
1С v8
Внешняя ОбработкаОбъект в общем модуле. Реально?
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) Для такого у меня специально обученная база есть. Соединяется с другими базами и коварно запускает там обработки
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс