|
Что выбрать параметры сеанса, экспортную переменную модуля приложения или функци | ☑ | ||
---|---|---|---|---|
0
gusden
28.04.12
✎
17:18
|
Недавно начал переводить конфигурацию с 8.1 на 8.2. И хочется услышать мнение более опытных коллег в 8.2.
Задача следующая есть база головного офиса и распределённая база удалённого офиса. И в удалённом офисе существуют некие ограничение на просмотр списков документов и отчётов, так же возможны другие ограничения в правах. Часть ограничений реализуются на уровне прав, но часть приходится ограничивать на уровне отборов. Т.е. скатим открывается открывается форма списков документов реализации и сразу накладывается фильтр на только доступные подразделения. Вопрос в следующем. как это более грамотно реализовать. Где лучше всего хранить признак того что это головной офис? Думал использовать параметр сеанса, но меня смутила фраза с ИТС: 1.2. Не рекомендуется использовать параметры сеанса для хранения значений, используемых исключительно в клиентской логике. Поскольку в клиент-серверном варианте 1С:Предприятия параметры сеанса хранятся на сервере, то любое их считывание или изменение в процессе работы на клиенте потребует дополнительного серверного вызова и увеличит объем передаваемых данных с клиента на сервер и обратно. В таких случаях следует использовать глобальные переменные модуля управляемого приложения (и обычного приложения – для режима обычного приложения, соответственно). А у меня в большинстве случаев это именно управление именно интерфейсом, но иногда придётся узнавать параметр и в модуле документов. Может можно как-то функциональную опцию для этих целей использовать. Но я с этим механизмом пока не работал. Помогите принять решение. |
|||
1
fimanich
28.04.12
✎
23:34
|
(0) есть метод ГлавныыйУзел(). Если вернет Неопределено, то ты в головном офисе.
Мне кажется, отборы не лучший вариант, может - ограничения прав доступа шаблонами (РЛС). Там, правда, поразбираться придется, зато красиво, в типовых видел вроде так как-то сделано, есть группы доступа, в зависимости от них можно доступ к объектам настраивать. |
|||
2
gusden
02.05.12
✎
11:03
|
(1) Как определить головной офис или нет я знаю. Вопрос где хранить этот признак. Для РЛС это придётся использовать параметры сеанса. Но РЛС наверно не подойдёт. у меня в удалённый офис все документы мигрируют, но вот просматривать нужно только свои. А про группы доступа сп. посмотрю.
Но вопрос больше риторический в каких случаях лучше использовать параметры сеанса, а в каких экспортные переменные. |
|||
3
gusden
02.05.12
✎
14:10
|
UP
|
|||
4
fimanich
02.05.12
✎
15:45
|
(2)
>у меня в удалённый офис все документы мигрируют, но вот просматривать нужно только свои при помощи ограничения прав доступа шаблонами миграция не настраивается,а вот как раз доступ на чтение объектов в зависимости от каких-то условий можно настроить. Насчет использования экспортных переменных в модуле управляемого приложения - есть там какая-то засада, насколько помню, не всегда и не везде такие переменные видны, или нигде не видны... Так что лучше уж в базе хранить или в параметрах сеанса, тут уж серверного вызова не избежать. А чтобы на клиенте что-то хранить и оно везде доступно было в пределах сеанса, любопытно, как, если получится, поделись опытом. Как вариант - создать файл в каталоге временных файлов на время сеанса, к нему потом обращаться, тут серверного вызова не будет, но что-то некрасиво как-то... |
|||
5
gusden
02.05.12
✎
16:48
|
(4)
Обмен проходит вручную причём несколькими пользователями. Т.е. чтобы пользователь при обмене мог добавить документ ему нужны права на чтение всех документов. Значит мне РЛС не подходит. Я же не могу настроить права на просмотр документов согласно условию. Экспортные переменные модуля приложения видны на клиенте в модуле формы и поэтому я могу например при открытии установить значение реквизита, который будет использоваться в условном оформлении формы. Аналогично я могу при создании на сервере установить значение реквизита из параметра сеанса. Т.е. в обеих случаях обойдусь без серверных вызовов. Но что лучше использовать согласно методологии 1С 8.2? Хочу для себя решить чтоб в будущем поступать по аналогии. |
|||
6
Crongwild
02.05.12
✎
17:18
|
Реализовать такое правильнее всего на уровне ограничения прав. В таком случае данные будут отбираться еще при чтении с сервера. Неправильно тут думать, что производится доработка клиентской, интерфейсной части: тут ограничивается доступ к данным, а данные хранятся на сервере.
Ну а ограничивать доступ к данным в правах удобно с использованием параметров сеанса (переменные туда и не передать никак). Также можно использовать какие-то вспомогательные таблицы (например, регистр сведений со списком доступных отборов - если пользователю доступна, скажем, не одна организация, а несколько). |
|||
7
gusden
02.05.12
✎
17:34
|
(6) А как обмен тогда делать. Если у пользователя будут существовать ограничения на доступ к данным, то он не сможет добавить (изменить) объект при обмене.
|
|||
8
gusden
02.05.12
✎
17:38
|
Как вариант можно конечно попробовать установить во время обмена некий флаг который снимает ограничение на права доступа.
|
|||
9
gusden
02.05.12
✎
17:53
|
Ещё один нюанс по ограничению прав доступа.
Может существовать документ который принадлежит головному подразделению и он не должен быть виден на удалённом офисе, но в какой-то момент документ может перейти к головному офису и он должен быть доступен в отчётах и кроме того его можно будет открыть в отчёте. Я так понимаю если я на этот документ установлю ограничения, то отчёт будет формироваться не корректно. в лучшем случае данные просто не отобразятся. |
|||
10
Crongwild
02.05.12
✎
18:27
|
(7) Обмен можно осуществлять под полными правами. Если пользуетесь типовым механизмом - в настройках есть соответствующий флажок.
(9) Отчет логично строить по регистрам. На регистры можно настроить свои ограничения. |
|||
11
gusden
02.05.12
✎
18:35
|
(10) конфигурация не типовая обмен выполняет любой из пользователей во время работы
Отчёт делается по регистру, но измерением регистра может быть документ на который небудет прав. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |