|
процедура на клиенте и на сервере | ☑ | ||
---|---|---|---|---|
0
qeos
06.03.12
✎
11:02
|
как сделать так чтобы одна и та же процедура по моему требованию вызывалась либо на сервере либо на клиенте? т.е. там где я хочу.
Пробую вот сделать процедуру с директивой определяемую в общем модуле с галками "клиент" и "сервер" &НаКлиентеНаСервере Функция текстируем() экспорт Стр = ""; #Если НаКлиенте Тогда Стр = "На клиенте"; #ИначеЕсли НаСервере Тогда Стр = "На сервере"; #КонецЕсли УправлениеСообщениями.СообщениеПользователю("Контекст выполнения: "+Стр,3); КонецФункции Но, в форме код &НаКлиенте Процедура ПроверкаКонтекста(Команда) ОбщиеФункции.текстируем(); КонецПроцедуры выполняется с ошибкой. как правильно-то? |
|||
1
DexterMorgan
06.03.12
✎
11:04
|
(0) имхо, тока две разные функции..
|
|||
2
qeos
06.03.12
✎
11:07
|
(1) а как же директива &НаКлиентеНаСервере ?? она судя по описанию как раз для того что мне надо...
|
|||
3
andrewks
06.03.12
✎
11:07
|
галка "Клиент (упр)" стоит?
|
|||
4
qeos
06.03.12
✎
11:08
|
(3) да
|
|||
5
vmv
06.03.12
✎
11:10
|
(0)
1. прочти в СП области использования директив НаКлиенте, НаКлиентеНаСервере 2. запомни, что директива НаКлиенте означает видимость скомпиленного блока кода только на клиенте, НаСервере - только на сервере. без этого все попытки ваять - глупы |
|||
6
andrewks
06.03.12
✎
11:12
|
может, так?
#Если НаКлиенте Тогда &НаКлиенте Функция текстируем() экспорт Стр = "На клиенте"; УправлениеСообщениями.СообщениеПользователю("Контекст выполнения: "+Стр,3); КонецФункции #ИначеЕсли НаСервере Тогда &НаСервере Функция текстируем() экспорт Стр = "На сервере"; УправлениеСообщениями.СообщениеПользователю("Контекст выполнения: "+Стр,3); КонецФункции #КонецЕсли |
|||
7
qeos
06.03.12
✎
11:13
|
(5) ну я конечно еще раз почитаю...
Но ошибка то и выдается о том что метод не найден... т.е. директива говорит о доступности на клиенте, а при выполнении не доступна? чтото тут тёмно.. http://my.jetscreenshot.com/5394/20120306-5els-22kb.jpg |
|||
8
qeos
06.03.12
✎
11:14
|
(6) ну так-то понятно.. возможно и будет работать, но у меня несколько процедур и не из 2-3-х строк.. и что мне их все копипастить?
|
|||
9
vmv
06.03.12
✎
11:15
|
я думаю еще года два будут ломать копья, соблазняясь желанием заставить сервер вилять ногами как дворовая девка на подворье и кричать барину сообщения "я здеся и тута, еще шажок"
|
|||
10
andrewks
06.03.12
✎
11:15
|
&НаКлиентеНаСервере (&AtClientAtServer) — определяет процедуру (функцию), исполняемую в модуле команды, выполняемую на клиенте и на сервере, имеющую доступ к процедурам и функциям общих модулей – серверных, не глобальных и серверных и клиентских одновременно, не имеющую доступ к переменным. Сама процедура (функция) доступна для клиентских серверных процедур и функций модуля команды.
|
|||
11
qeos
06.03.12
✎
11:17
|
(10) "клиентские серверные процедуры"? О_о это как?
|
|||
12
vmv
06.03.12
✎
11:17
|
(7) компиляции общего модуля для сервере и клиента разные, вернее только для сервера и только клиента.
подумай над этим и больше не делай элементарных ошибок |
|||
13
vmv
06.03.12
✎
11:19
|
(10) как видим, использовать эту директиву в общем модуле чушь, все-лишь нужно было прочесть СП и не болтать тут ерундой)
|
|||
14
qeos
06.03.12
✎
11:19
|
(12) вот это уже теплее... непонятно зачем есть возможность ставить обе галки..
ну да ладно, ща попробую вынести куданить.. |
|||
15
qeos
06.03.12
✎
11:22
|
(13) а где ее использовать и как?
перенес в модуль формы - не видит.. |
|||
16
Deon
06.03.12
✎
11:22
|
Мне кажется, что vmv так активно намекает, что надо просто убрать директиву &НаКлиентеНаСервере, что после этого оно даже заработает
|
|||
17
vmv
06.03.12
✎
11:23
|
(14) очень просто, есть общие методы которые можно выполнять и на клиенте и на серввере, Например на сервере при создании формы инициализируется нечто или позиционируется по ключу, а на клиенте оно активизируються уже без вызова сервера.
посмотри описания общих модулей БСП и состав методов хоть вскользь по названиями. Это наиболее быстрый способ привести в порядок понятийную систему компиляции клиент-сервер в 1С, если вы ранее не работали с этой технологией в других системах |
|||
18
Ненавижу 1С
гуру
06.03.12
✎
11:23
|
1С придумала очередную хрень
|
|||
19
vmv
06.03.12
✎
11:24
|
(16) прочи 10, я не намекаю - я знаю, что она там абсурдна)
|
|||
20
vmv
06.03.12
✎
11:25
|
(18) ничего она не придумала, все придумали до нее. Просто жадные и тупые 1С-ки теперь вынуждены думать, а когда я говорю, что это неизбежно, то меня называют хамлом, истерички)
|
|||
21
andrewks
06.03.12
✎
11:25
|
(18) +100500 ))
|
|||
22
Ненавижу 1С
гуру
06.03.12
✎
11:25
|
(20) придумали давно нормально, а 1С передумала заново, но криво
|
|||
23
Deon
06.03.12
✎
11:26
|
(22) Ну чем ты недоволен-то? )
|
|||
24
vmv
06.03.12
✎
11:28
|
(22) придумали давно, но то уже устарело. 1С продвинул эту технологию дальше, и тебе, привыкшему работать с закостенелыми механизмами это не по нутру.
будь честен с нами, признай, что ты тоже ленив и гнобишь все чистое, новое и прогрессивное!) |
|||
25
Ненавижу 1С
гуру
06.03.12
✎
11:31
|
(23) уже писал неоднократно
чтобы что-то вызвать с формы клиента, надо 1. вызвать метод формы на сервере, который 2. вызовет серверный модуль зачем прослойка? и еще: почему не могут жить ссылки на объекты на клиенте (например ТЗ), ничего криминального не вижу, реально пусть располагаются на сервере, вызов методов с клиента - вызывает на сервере |
|||
26
Ненавижу 1С
гуру
06.03.12
✎
11:32
|
(24) ага, самая нано-новая-технология это Неопределено и пустые ссылки ))
|
|||
27
andrewks
06.03.12
✎
11:34
|
ну, началалось, блин. Null vs Nothing
|
|||
28
vmv
06.03.12
✎
11:42
|
(26) Неопределено введено для проверки "пустоты" составного типа и эта крута, чувак.
Просто профаны, привыкшие исключительно к оракловой терминологии, не доганяют всю прелесть этого литерала, да и о самом составном типе разработчики реликтовых СУБД мечтают с тоской) |
|||
29
Ненавижу 1С
гуру
06.03.12
✎
11:44
|
(28) просто "круто" это не ответ
легко составной тип эмулируется (впрочем как это и делается в самой 1С) |
|||
30
vmv
06.03.12
✎
11:46
|
(29) эммулируется - это не метод, а костыль)
а в 1С он встроен во все типовые механизмы и Неопределено его царь и бог, усек) |
|||
31
Ненавижу 1С
гуру
06.03.12
✎
11:49
|
(30) я не про то: в 1С внутри движка он эмулируется
|
|||
32
Ненавижу 1С
гуру
06.03.12
✎
11:53
|
(30) и кстати довольно криво, пользователь выбрал в форме документа тип для поля составного типа и потом передумал его заполнять
внешне для пользователя это незаполненное поле, однако фильтр Реквизит=Неопределено исключит данный документ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |