Имя: Пароль:
1C
1С v8
как обойти директиву &НаКлиенте
0 RolandGrey
 
03.08.15
17:38
Вопрос такой странный, не уверен в возможности реализации.

Ситуация такая - в документе в методе ПередЗаписью есть некий кусок кода, обрамленный директивой НаКлиенте. Обработка (внешняя) должна записать документ, но так чтобы этот код не выполнился.

Так же в методе есть проверка ОбменДанными.Загрузка, но установка его в истину чтобы выйти из процедуры ПередЗаписью невозможно для данной операции.

В общем случае надо поставить пометку удаления на документ.
1 Stim
 
03.08.15
17:40
#Если Клиент Тогда
2 Гёдза
 
03.08.15
17:41
записывай на сервере, через уф
3 RolandGrey
 
03.08.15
17:44
(2) обработка на простых формах, добавить туда уф и там сделать отдельный кусок?
4 RolandGrey
 
03.08.15
17:45
(1) кхм, в том и дело что все происходит щас на клиенте. А это нужно обойти чисто в самой обработке не меняя конфу
5 SUA
 
03.08.15
17:46
1. найти того кто это написал
2. отвести за угол
3. ????????
4. PROFIT
6 Бубка Гоп
 
03.08.15
17:49
(4) Код менять нельзя, а поведение программы поменять нужно? Не, так не бывает. По крайней мере 1с так не умеет.
7 Бубка Гоп
 
03.08.15
17:49
(5) Вангую, речь о типовом решении, раз уж код менять нельзя
8 RolandGrey
 
03.08.15
17:51
(7) не, решение нетиповое, но конфу менять тут не выход.
Вопрос как далеко надо залезть чтобы удалить гланды :), я просто немогу никак придумать
9 Бубка Гоп
 
03.08.15
17:53
(8) Не вижу возможности дотянуться до гланд не меняя код...
10 Гёдза
 
03.08.15
17:55
написать новую обработку на уф, в ней вызывать старую
11 Smallrat
 
03.08.15
17:56
(3)
что нить типа


&НаКлиенте
Процедура ПоменятьДок(Док)
   ПоменятьДокНаСервере(Док)
КонецПроцедуры

&НаСервере
Процедура ПоменятьДокНаСервере(Док)
   ДокОбъект = Док.ПолучитьОбъект();
   ДокОбъект.Записать();
КонецПроцедуры
12 Defender aka LINN
 
03.08.15
19:46
&НаКлиенте. В модуле документа. Серьезно?
13 ДенисЧ
 
03.08.15
19:48
Предлагаю удалить гланды. Перректально.
14 ДенисЧ
 
03.08.15
19:48
(12) В ОФ - возможно
15 Defender aka LINN
 
03.08.15
20:35
(14) Нон, нихт, нет, ни в коем случае. В #Если Клиент еще могу поверить.
16 ДенисЧ
 
03.08.15
20:41
(15) с верой - в другой отдел...
17 Smallrat
 
03.08.15
20:46
(15) Можно написать #Если НаКлиенте Тогда
18 RolandGrey
 
04.08.15
09:47
&НаКлиенте и т.п. в модуле обработки не работают )

может я чего не понимаю:
директивы типа &НаКлиенте говорят где должен исполняться кусок
директивы типа #Если НаКлиенте проверяют откуда вызов и если он совпадает с директивой, то исполняется кусок

мне надо принудительно запустить запись документа на сервере в обработке
19 Бубка Гоп
 
04.08.15
09:52
(18) Запускай как фоновое, полюбому на сервере будет
20 Smallrat
 
04.08.15
12:01
(18) (11) не работает чтол-ли?
21 RolandGrey
 
04.08.15
13:40
(20) в модуле нет
22 Cashtane_
 
04.08.15
13:47
(0) Вообще рядовой случай для франчей. Думаю копипастят и не думают.