НаСервереБезКонтекста и толстый клиент (упр приложение)
Вот такой код в толстом клиенте (упр приложение) не работает.
Выдает ошибку, что ПодразделениеПользователя не найдена.
&НаСервереБезКонтекста
Функция ПодразделениеПользователя(Менеджер)
Возврат ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Менеджер)
КонецФункции // ПодразделениеПользователя()
&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
Объект.Подразделение = ПодразделениеПользователя(Объект.Менеджер);
КонецПроцедуры
В тонком клиенте все нормально работает. Ошибок при контроле синтаксиса не выдает. В чем прикол?
Выдает ошибку, что ПодразделениеПользователя не найдена.
&НаСервереБезКонтекста
Функция ПодразделениеПользователя(Менеджер)
Возврат ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Менеджер)
КонецФункции // ПодразделениеПользователя()
&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
Объект.Подразделение = ПодразделениеПользователя(Объект.Менеджер);
КонецПроцедуры
В тонком клиенте все нормально работает. Ошибок при контроле синтаксиса не выдает. В чем прикол?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) toypaul, смотрите какая штука ваш этот модуль Повторного использования с Повторное использование возвращаемых значений = На время сеанса,
раз вы пишите директиву &НаСервереБезКонтекста то контекста текущего сеанса не будет, значит и модуль такой с повторно используемыми значениями вы не сможете использовать.
Решение - убрать дериктиву &НаСервереБезКонтекста и будет все окей во всех клиентах ))
раз вы пишите директиву &НаСервереБезКонтекста то контекста текущего сеанса не будет, значит и модуль такой с повторно используемыми значениями вы не сможете использовать.
Решение - убрать дериктиву &НаСервереБезКонтекста и будет все окей во всех клиентах ))
(10) toypaul, проблема не в параметре "на время сеанса" - оно там как раз правильно стоит, проблема в бездумном использовании дерективы &НаСервереБезКонтекста, в вашем случае контекст нужен.. да и отдельную функцию обертку Функция ПодразделениеПользователя(Менеджер) делать не надо, модуль ЗначениеНастроекПовтИсп с вызовом сервера, то есть в вашем случае код упрощается до
и все будет работать!
&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
Объект.Подразделение = ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Объект.Менеджер);
КонецПроцедуры
Процедура МенеджерПриИзменении(Элемент)
СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
Объект.Подразделение = ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Объект.Менеджер);
КонецПроцедуры
и все будет работать!
(12) toypaul,
да это все понятно, ваше желание не тащить с собой контекст, но учтите что там скажем еще локальный кэш сеанса и сеансовые переменные - которые в вашем случае как раз и нужны
ну хз, проверьте в свойстве модуля ЗначениеНастроекПовтИсп у меня лично (ут 11.0.9) стоит галка "Вызов сервера", если у вас она тоже стоит то все прекрасно вызывается из клиента - собственно для этого она и нужна ))
Сфига ли бездумном? Накой мне всю форму туда-сюда гонять, когда мне нужно только одно поле у менеджера взять.
да это все понятно, ваше желание не тащить с собой контекст, но учтите что там скажем еще локальный кэш сеанса и сеансовые переменные - которые в вашем случае как раз и нужны
И не вызывается с клиента ПодразделениеПользователя из общего модуля.
ну хз, проверьте в свойстве модуля ЗначениеНастроекПовтИсп у меня лично (ут 11.0.9) стоит галка "Вызов сервера", если у вас она тоже стоит то все прекрасно вызывается из клиента - собственно для этого она и нужна ))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот