GriAlex
Кен-ГурУ :-)
Список пользователей
Нет ли какой процедурки или стандартного способа (сам не нашел) в программном коде "вытащить" список невыключенных пользователей? Причем нужны как то, что записано в графе "Кратко", так и в в графе "Имя пользователя".
Для чего.
Одно дело настроить возможности пользователей стандартным способом, это делаю на начальном этапе настройки программы. Например, настраиваются разные "видимости" и "доступности" к журналам, бланкам и операциям. Другое дело, когда надо отфильтровать данные (понятно, что это можно сделать и в возможностях, но...). Например, в базе ТС есть список магазинов(складов) и список пользователей-продавцов. Необходимо настроить доступ определенных пользователей к товарным операциям определенного магазина(склада). Пока выходил из положения изменением ТОПа запуска товарных операций, т.е. вместо ОПЕРАЦИЯ Главное меню: Накладные прописал такую типовуху:
Здесь, кстати поясню, условия в СТАРТ_ЖУРНАЛ изменены так, что отфильтровываются и показываются ВСЕ операции по магазину(складу), в т.ч. и внутренние перемещения. Оператору удобно видеть, что откуда у него взялось на складе, но изменить он может только свои, расходные, операции (тоже настройки). "Приходы" в магазин "извне" делает ибо бухгалтер, либо оператор другого склада по внутренним перемещениям. Стандартная настройка такую возможность не даст сделать.
Теперь столкнулся с ситуацией, что продавцы меняются, их переводят из магазина в магазин, и получается, что каждый раз меня вызывают чтобы дополнить или изменить доступы, тем более, что хотят уже индивидуальной ответственности, т.е. не обезличенный пользователь "магазин такой-то", а по конкретному имени.
Вот и подумал: сделать дополнительную простенькую табличку с некоторыми настройками доступов к складам, которая бы проверяла, что в стандартном списке появился новый пользователь (тут-то я научил вводить пользователей с нужными возможностями копированием аналогичного) и предлагала бы настроить ему доступы к тому или иному складу, ну и по другим мелочам. И вставил бы проверку в вышеприведенный код.
Нет ли какой процедурки или стандартного способа (сам не нашел) в программном коде "вытащить" список невыключенных пользователей? Причем нужны как то, что записано в графе "Кратко", так и в в графе "Имя пользователя".
Для чего.
Одно дело настроить возможности пользователей стандартным способом, это делаю на начальном этапе настройки программы. Например, настраиваются разные "видимости" и "доступности" к журналам, бланкам и операциям. Другое дело, когда надо отфильтровать данные (понятно, что это можно сделать и в возможностях, но...). Например, в базе ТС есть список магазинов(складов) и список пользователей-продавцов. Необходимо настроить доступ определенных пользователей к товарным операциям определенного магазина(склада). Пока выходил из положения изменением ТОПа запуска товарных операций, т.е. вместо ОПЕРАЦИЯ Главное меню: Накладные прописал такую типовуху:
Код:
//ФРИН
ОПЕРАЦИЯ Главное меню: НакладныеОператорСклада
ВЫЧИСЛИТЬ
ИСПОЛЬЗОВАТЬ(с_склады)
СкладыОбновить
ЦИКЛ ПО ЖУРНАЛУ тс_виды_то то
(тс_виды_то.ид_стр = "чек_*")
виды_искл!то.ид = то.ид
КОНЕЦ_ЦИКЛА
ИЗ_ЖУРНАЛА(тс_операции) // Чтобы можно было переходить к нужной
тс_операции_доп.ПРИМЕНИТЬ_ВИД("стандартный")
//ФРИН
ЕСЛИ ПОЛЬЗОВАТЕЛЬ = "оснсклад" ТО
скод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) И вид_то_ид ИЗ опер_внутр)), "", [дата, ном_накл])
КОНЕЦ_ЕСЛИ
//ФРИН_КОНЕЦ
КОНЕЦ
Теперь столкнулся с ситуацией, что продавцы меняются, их переводят из магазина в магазин, и получается, что каждый раз меня вызывают чтобы дополнить или изменить доступы, тем более, что хотят уже индивидуальной ответственности, т.е. не обезличенный пользователь "магазин такой-то", а по конкретному имени.
Вот и подумал: сделать дополнительную простенькую табличку с некоторыми настройками доступов к складам, которая бы проверяла, что в стандартном списке появился новый пользователь (тут-то я научил вводить пользователей с нужными возможностями копированием аналогичного) и предлагала бы настроить ему доступы к тому или иному складу, ну и по другим мелочам. И вставил бы проверку в вышеприведенный код.