Имя: Пароль:
1C
1С v8
Что выбрать параметры сеанса, экспортную переменную модуля приложения или функци
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) конфигурация не типовая обмен выполняет любой из пользователей во время работы
Отчёт делается по регистру, но измерением регистра может быть документ на который небудет прав.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший