Инфо-Предприятие - Форум
ПрограммыПоддержкаКупитьПартнерам

Вернуться   Инфо-Предприятие - Форум > Платформа разработки > Общий
Регистрация Обмен опытом Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Внимание! Этой ветке форума больше трех лет. Возможно, обсуждаемые здесь вопросы уже не актуальны. Тем не менее, Вы можете отвечать в этой теме, если при ответе поставите флажок.
  #1  
Старый 30.05.2013, 10:32
Аватар для GriAlex
GriAlex GriAlex вне форума
Кен-ГурУ :-)
 
Регистрация: 28.01.2008
Адрес: Чувашия
Сообщений: 13,171
По умолчанию Список пользователей

Нет ли какой процедурки или стандартного способа (сам не нашел) в программном коде "вытащить" список невыключенных пользователей? Причем нужны как то, что записано в графе "Кратко", так и в в графе "Имя пользователя".

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

Теперь столкнулся с ситуацией, что продавцы меняются, их переводят из магазина в магазин, и получается, что каждый раз меня вызывают чтобы дополнить или изменить доступы, тем более, что хотят уже индивидуальной ответственности, т.е. не обезличенный пользователь "магазин такой-то", а по конкретному имени.
Вот и подумал: сделать дополнительную простенькую табличку с некоторыми настройками доступов к складам, которая бы проверяла, что в стандартном списке появился новый пользователь (тут-то я научил вводить пользователей с нужными возможностями копированием аналогичного) и предлагала бы настроить ему доступы к тому или иному складу, ну и по другим мелочам. И вставил бы проверку в вышеприведенный код.
__________________


Сайт - Вконтакте - Telegram - Skype - YouTube
Ответить с цитированием
  #2  
Старый 30.05.2013, 11:08
nppinteh nppinteh вне форума
Постоялец
 
Регистрация: 04.02.2008
Адрес: Вятские Поляны
Сообщений: 667
По умолчанию Re

IMHO-мнение: "Возможностей" пользователей предостаточно
Ответить с цитированием
  #3  
Старый 30.05.2013, 13:54
Аватар для GriAlex
GriAlex GriAlex вне форума
Кен-ГурУ :-)
 
Регистрация: 28.01.2008
Адрес: Чувашия
Сообщений: 13,171
По умолчанию

http://www.infop.ru/forum/showthread.php?t=10175

[quote=nppinteh;445155]IMHO-мнение Возможностей пользователей предостаточно[quote]

Дело в том, что в возможностях фильтр по тому же складу в товарных операциях можно поставить ИЛИ как код_склада ИЛИ как код_клиента, т.е. одно из двух. А мне надо было, чтобы отфильтровывались все записи, где код склада встречается в одном из этих полей. Поэтому "придумался" такой код, уже два года работают.
Мне просто хочется "дать" им такую таблицу, чтобы меня не дергали - эту мою стартовую типовуху менять. Можно научить и руками краткое имя пользователя в таблицу дописывать, предварительно посмотрев в стандартном списке пользователей.

Ну, если нет таких процедурок, остановлюсь на этом. Сам-то не смогу такую вещь сделать, "ростом не вышел" :-(
__________________


Сайт - Вконтакте - Telegram - Skype - YouTube
Ответить с цитированием
  #4  
Старый 30.05.2013, 15:06
Аватар для GriAlex
GriAlex GriAlex вне форума
Кен-ГурУ :-)
 
Регистрация: 28.01.2008
Адрес: Чувашия
Сообщений: 13,171
По умолчанию

Ура! Мой товарищ, Алексей Петров (на форуме Crusaider) сделал мне такую процедурку. Сегодня потестирую...
__________________


Сайт - Вконтакте - Telegram - Skype - YouTube
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
А если много пользователей? nppinteh Прочие вопросы 3 02.06.2011 12:43


Часовой пояс GMT +4, время: 03:43.


vBulletin® Version 3.6.8.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot
© 1999 Новасофт