НаСервереБезКонтекста и толстый клиент (упр приложение)

1. toypaul 63 02.02.15 09:17 Сейчас в теме
Вот такой код в толстом клиенте (упр приложение) не работает.
Выдает ошибку, что ПодразделениеПользователя не найдена.

&НаСервереБезКонтекста
Функция ПодразделениеПользователя(Менеджер)

Возврат ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Менеджер)

КонецФункции // ПодразделениеПользователя()


&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)

СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);

Объект.Подразделение = ПодразделениеПользователя(Объект.Менеджер);

КонецПроцедуры

В тонком клиенте все нормально работает. Ошибок при контроле синтаксиса не выдает. В чем прикол?
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 298 02.02.15 09:36 Сейчас в теме
(1) toypaul, открывай модуль и смотри его свойства, где он доступен а где нет.
+
8. AllexSoft 02.02.15 13:42 Сейчас в теме
(1) toypaul, смотрите какая штука ваш этот модуль Повторного использования с Повторное использование возвращаемых значений = На время сеанса,
раз вы пишите директиву &НаСервереБезКонтекста то контекста текущего сеанса не будет, значит и модуль такой с повторно используемыми значениями вы не сможете использовать.
Решение - убрать дериктиву &НаСервереБезКонтекста и будет все окей во всех клиентах ))
+
10. toypaul 63 02.02.15 13:59 Сейчас в теме
(8) AllexSoft, а ... видимо проблема в параметре "на время сеанса"? тогда вроде понятно
+
11. AllexSoft 02.02.15 14:02 Сейчас в теме
(10) toypaul, проблема не в параметре "на время сеанса" - оно там как раз правильно стоит, проблема в бездумном использовании дерективы &НаСервереБезКонтекста, в вашем случае контекст нужен.. да и отдельную функцию обертку Функция ПодразделениеПользователя(Менеджер) делать не надо, модуль ЗначениеНастроекПовтИсп с вызовом сервера, то есть в вашем случае код упрощается до
&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
Объект.Подразделение = ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Объект.Менеджер);
КонецПроцедуры


и все будет работать!
+
3. toypaul 63 02.02.15 13:21 Сейчас в теме
Это модуль формы. Не понял что там смотреть
+
4. Boneman 298 02.02.15 13:23 Сейчас в теме
(3) toypaul, это общий модуль, и к нему и идет обращение
ЗначениеНастроекПовтИсп.
+
5. toypaul 63 02.02.15 13:30 Сейчас в теме
Ругается не на него. Я ж написал - выдает что функция ПодразделениеПользователя не найдена
+
6. Boneman 298 02.02.15 13:35 Сейчас в теме
(5) toypaul, а функция то где находится ? В этом общем модуле.
+
9. toypaul 63 02.02.15 13:57 Сейчас в теме
(6) Boneman, я написал еще в (3) что оба вызова из модуля формы.
+
7. PetroP 02.02.15 13:40 Сейчас в теме
Находим в ветке конфигурации общий модуль "ЗначениеНастроекПовтИсп". Нажимаем "Свойства". Смотрим флажки...
+
12. toypaul 63 02.02.15 14:06 Сейчас в теме
Сфига ли бездумном? Накой мне всю форму туда-сюда гонять, когда мне нужно только одно поле у менеджера взять. И не вызывается с клиента ПодразделениеПользователя из общего модуля.
Boneman; +1
13. AllexSoft 02.02.15 14:17 Сейчас в теме
(12) toypaul,
Сфига ли бездумном? Накой мне всю форму туда-сюда гонять, когда мне нужно только одно поле у менеджера взять.

да это все понятно, ваше желание не тащить с собой контекст, но учтите что там скажем еще локальный кэш сеанса и сеансовые переменные - которые в вашем случае как раз и нужны

И не вызывается с клиента ПодразделениеПользователя из общего модуля.

ну хз, проверьте в свойстве модуля ЗначениеНастроекПовтИсп у меня лично (ут 11.0.9) стоит галка "Вызов сервера", если у вас она тоже стоит то все прекрасно вызывается из клиента - собственно для этого она и нужна ))
+
14. Boneman 298 02.02.15 14:19 Сейчас в теме
(12) toypaul,
И не вызывается с клиента ПодразделениеПользователя из общего модуля.

хорошо,
в таком случае, что делает эта строка ?
Возврат ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Менеджер)
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот