![]() |
|
#1
|
||||
|
||||
|
Нет ли какой процедурки или стандартного способа (сам не нашел) в программном коде "вытащить" список невыключенных пользователей? Причем нужны как то, что записано в графе "Кратко", так и в в графе "Имя пользователя".
Для чего. Одно дело настроить возможности пользователей стандартным способом, это делаю на начальном этапе настройки программы. Например, настраиваются разные "видимости" и "доступности" к журналам, бланкам и операциям. Другое дело, когда надо отфильтровать данные (понятно, что это можно сделать и в возможностях, но...). Например, в базе ТС есть список магазинов(складов) и список пользователей-продавцов. Необходимо настроить доступ определенных пользователей к товарным операциям определенного магазина(склада). Пока выходил из положения изменением ТОПа запуска товарных операций, т.е. вместо ОПЕРАЦИЯ Главное меню: Накладные прописал такую типовуху: Код:
//ФРИН
ОПЕРАЦИЯ Главное меню: НакладныеОператорСклада
ВЫЧИСЛИТЬ
ИСПОЛЬЗОВАТЬ(с_склады)
СкладыОбновить
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то то
(тс_виды_то.ид_стр = "чек_*")
виды_искл!то.ид = то.ид
КОНЕЦ_ЦИКЛА
ИЗ_ЖУРНАЛА(тс_операции) // Чтобы можно было переходить к нужной
тс_операции_доп.ПРИМЕНИТЬ_ВИД("стандартный")
//ФРИН
ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "оснсклад" ТО
скод1 = 11
скод2 = 0
опер_внутр[""] = ПУСТО
ОБНУЛИТЬ(опер_внутр)
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то в
(в.справочник = спрСклады)
опер_внутр!в.ид = в.ид
КОНЕЦ_ЦИКЛА
СТАРТ_ЖУРНАЛ(тс_операции: "накладные":"накладные",
статус_операции = счетНакл И НЕ вид_то_ид ИЗ виды_искл И
((код_склада = скод1 ИЛИ код_склада = скод2) ИЛИ ((код_клиента = скод1 ИЛИ код_клиента = скод2) И вид_то_ид ИЗ опер_внутр)), "", [дата, ном_накл])
КОНЕЦ_ЕСЛИ
ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "салон" ТО //Таня в Салоне? код = 12 И заказы-салон
скод1 = 12 //Таня в Салоне? код = 12 И заказы-салон
скод2 = 30
опер_внутр[""] = ПУСТО
ОБНУЛИТЬ(опер_внутр)
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то в
(в.справочник = спрСклады)
опер_внутр!в.ид = в.ид
КОНЕЦ_ЦИКЛА
СТАРТ_ЖУРНАЛ(тс_операции: "накладные":"накладные",
статус_операции = счетНакл И НЕ вид_то_ид ИЗ виды_искл И
((код_склада = скод1 ИЛИ код_склада = скод2) ИЛИ ((код_клиента = скод1 ИЛИ код_клиента = скод2) И вид_то_ид ИЗ опер_внутр)), "", [дата, ном_накл])
КОНЕЦ_ЕСЛИ
ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "кристалл" ТО //Кристалл
скод1 = 15
скод2 = 0
опер_внутр[""] = ПУСТО
ОБНУЛИТЬ(опер_внутр)
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то в
(в.справочник = спрСклады)
опер_внутр!в.ид = в.ид
КОНЕЦ_ЦИКЛА
СТАРТ_ЖУРНАЛ(тс_операции: "накладные":"накладные",
статус_операции = счетНакл И НЕ вид_то_ид ИЗ виды_искл И
((код_склада = скод1 ИЛИ код_склада = скод2) ИЛИ ((код_клиента = скод1 ИЛИ код_клиента = скод2) И вид_то_ид ИЗ опер_внутр)), "", [дата, ном_накл])
КОНЕЦ_ЕСЛИ
ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "эконом" ТО //Кристалл
скод1 = 16
скод2 = 0
опер_внутр[""] = ПУСТО
ОБНУЛИТЬ(опер_внутр)
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то в
(в.справочник = спрСклады)
опер_внутр!в.ид = в.ид
КОНЕЦ_ЦИКЛА
СТАРТ_ЖУРНАЛ(тс_операции: "накладные":"накладные",
статус_операции = счетНакл И НЕ вид_то_ид ИЗ виды_искл И
((код_склада = скод1 ИЛИ код_склада = скод2) ИЛИ ((код_клиента = скод1 ИЛИ код_клиента = скод2) И вид_то_ид ИЗ опер_внутр)), "", [дата, ном_накл])
КОНЕЦ_ЕСЛИ
ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "вурнары" ТО //Кристалл
скод1 = 17
скод2 = 0
опер_внутр[""] = ПУСТО
ОБНУЛИТЬ(опер_внутр)
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то в
(в.справочник = спрСклады)
опер_внутр!в.ид = в.ид
КОНЕЦ_ЦИКЛА
СТАРТ_ЖУРНАЛ(тс_операции: "накладные":"накладные",
статус_операции = счетНакл И НЕ вид_то_ид ИЗ виды_искл И
((код_склада = скод1 ИЛИ код_склада = скод2) ИЛИ ((код_клиента = скод1 ИЛИ код_клиента = скод2) И вид_то_ид ИЗ опер_внутр)), "", [дата, ном_накл])
КОНЕЦ_ЕСЛИ
ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "ибреси" ТО //Кристалл
скод1 = 18
скод2 = 0
опер_внутр[""] = ПУСТО
ОБНУЛИТЬ(опер_внутр)
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то в
(в.справочник = спрСклады)
опер_внутр!в.ид = в.ид
КОНЕЦ_ЦИКЛА
СТАРТ_ЖУРНАЛ(тс_операции: "накладные":"накладные",
статус_операции = счетНакл И НЕ вид_то_ид ИЗ виды_искл И
((код_склада = скод1 ИЛИ код_склада = скод2) ИЛИ ((код_клиента = скод1 ИЛИ код_клиента = скод2) И вид_то_ид ИЗ опер_внутр)), "", [дата, ном_накл])
КОНЕЦ_ЕСЛИ
ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "козловка" ТО //Кристалл
скод1 = 19
скод2 = 0
опер_внутр[""] = ПУСТО
ОБНУЛИТЬ(опер_внутр)
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то в
(в.справочник = спрСклады)
опер_внутр!в.ид = в.ид
КОНЕЦ_ЦИКЛА
СТАРТ_ЖУРНАЛ(тс_операции: "накладные":"накладные",
статус_операции = счетНакл И НЕ вид_то_ид ИЗ виды_искл И
((код_склада = скод1 ИЛИ код_склада = скод2) ИЛИ ((код_клиента = скод1 ИЛИ код_клиента = скод2) И вид_то_ид ИЗ опер_внутр)), "", [дата, ном_накл])
КОНЕЦ_ЕСЛИ
ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "автозапчасти" ТО //Автозапчасти
скод1 = 31
скод2 = 0
опер_внутр[""] = ПУСТО
ОБНУЛИТЬ(опер_внутр)
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то в
(в.справочник = спрСклады)
опер_внутр!в.ид = в.ид
КОНЕЦ_ЦИКЛА
СТАРТ_ЖУРНАЛ(тс_операции: "накладные":"накладные",
статус_операции = счетНакл И НЕ вид_то_ид ИЗ виды_искл И
((код_склада = скод1 ИЛИ код_склада = скод2) ИЛИ ((код_клиента = скод1 ИЛИ код_клиента = скод2) И вид_то_ид ИЗ опер_внутр)), "", [дата, ном_накл])
КОНЕЦ_ЕСЛИ
//ФРИН_КОНЕЦ
КОНЕЦ
Теперь столкнулся с ситуацией, что продавцы меняются, их переводят из магазина в магазин, и получается, что каждый раз меня вызывают чтобы дополнить или изменить доступы, тем более, что хотят уже индивидуальной ответственности, т.е. не обезличенный пользователь "магазин такой-то", а по конкретному имени. Вот и подумал: сделать дополнительную простенькую табличку с некоторыми настройками доступов к складам, которая бы проверяла, что в стандартном списке появился новый пользователь (тут-то я научил вводить пользователей с нужными возможностями копированием аналогичного) и предлагала бы настроить ему доступы к тому или иному складу, ну и по другим мелочам. И вставил бы проверку в вышеприведенный код. |
|
#2
|
|||
|
|||
|
IMHO-мнение: "Возможностей" пользователей предостаточно
|
|
#3
|
||||
|
||||
|
http://www.infop.ru/forum/showthread.php?t=10175
[quote=nppinteh;445155]IMHO-мнение Возможностей пользователей предостаточно[quote] Дело в том, что в возможностях фильтр по тому же складу в товарных операциях можно поставить ИЛИ как код_склада ИЛИ как код_клиента, т.е. одно из двух. А мне надо было, чтобы отфильтровывались все записи, где код склада встречается в одном из этих полей. Поэтому "придумался" такой код, уже два года работают. Мне просто хочется "дать" им такую таблицу, чтобы меня не дергали - эту мою стартовую типовуху менять. Можно научить и руками краткое имя пользователя в таблицу дописывать, предварительно посмотрев в стандартном списке пользователей. Ну, если нет таких процедурок, остановлюсь на этом. Сам-то не смогу такую вещь сделать, "ростом не вышел" :-( |
![]() |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| А если много пользователей? | nppinteh | Прочие вопросы | 3 | 02.06.2011 12:43 |