Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: фильтр видимости в журналах по принципу руководитель его регион и подч
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Powerman
Не знаю может не там вопрос задаю… поправьте если так…
Есть необходимость в 1С: Предприятие 8.2, конфигурация "Управление торговым предприятием для Украины", редакция 1.2.7.4 организовать фильтр видимости в журналах по принципу руководитель его регион и подчиненные, т.е. руководитель заходит в конфу и видит в журналах только документы по своему региону, свои документы и документы своих менеджеров (документы другого руководителя их региона и его подчинённых видеть не должен). Может, кто видел, как это где реализовано, может, кто то уже делал или имеются мысли по этому поводу?
Примерно представляю, как можно реализовать, но не знаю за что зацепиться в этой конфе, толи группы создавать пользователей и выделять из них руководителя и прикреплять за всеми их регион или…


 ! 

Правила, п.5.
 
Cnhtkjr
Цитата(Powerman @ 25.05.12, 17:35) необходимо зарегистрироваться для просмотра ссылки
организовать фильтр видимости в журналах по принципу руководитель его регион и подчиненные, т.е. руководитель заходит


"<Список>.Отбор" в формеСписка журнала ПриСозданииНаСервере, должно по идее решить вашу проблему. А где хранить данные для отбора - в справочниках при помощи новых реквизитов, или группами, или как космос подскажет, по сути ограничено только вашей фантазией.
Vofka
Цитата(Cnhtkjr @ 25.05.12, 21:48) необходимо зарегистрироваться для просмотра ссылки
ПриСозданииНаСервере

Боюсь, что в обычном интерфейсе такой процедуры нету. Если идти в этом направлении, то в обычном интерфейсе надо использовать процедуру, например, ПриОткрытии.
logist
Цитата(Vofka @ 25.05.12, 21:59) необходимо зарегистрироваться для просмотра ссылки
Боюсь, что в обычном интерфейсе такой процедуры нету

Как это нету? "ПередОткрытием". Но только это не правильное решение вопроса, т.к. придется писать код в каждом списке, я бы строил всё на уровне прав + справочник регионов с привязкой к нему нужных пользователей (или наоборот пользователей с привязкой к региону)
AnryMc
Если это надо не только для удобства (видеть только "свои" документы для выбора) но и по соображениям ограничения к информации (получать отчеты только по "своим" документам и не иметь доступа к "не своим" даже для просмотра), то отборы в журналах не решение. Надо делать RLS
Vofka
Цитата(logist @ 25.05.12, 23:29) необходимо зарегистрироваться для просмотра ссылки
Как это нету? "ПередОткрытием".

ПередОткрытием и ПриСозданииНаСервере - это мне кажется или буквы в названиях процедур все же разные?

И я выше написал к какой процедуре можно обратиться, если работаем в обычном интерфейсе.
logist
Цитата(Vofka @ 26.05.12, 10:02) необходимо зарегистрироваться для просмотра ссылки
ПередОткрытием и ПриСозданииНаСервере - это мне кажется или буквы в названиях процедур все же разные?

Буквы разные но время и суть исполнения процедуры одинаковы (соответственно первая для обычного, вторая для управляемого). А в какой момент устанавливать отбор списка совершенно без разницы, перед/при/после...
Vofka
Цитата(logist @ 26.05.12, 10:18) необходимо зарегистрироваться для просмотра ссылки
соответственно первая для обычного, вторая для управляемого

А я выше не так написал?

Цитата(logist @ 26.05.12, 10:18) необходимо зарегистрироваться для просмотра ссылки
Буквы разные но время и суть исполнения процедуры одинаковы

Только я предвкушаю вопросы, когда автор в обычном приложении будет что-то писать в процедуре ПриСозданииНаСервере .
logist
Офф
Цитата(Vofka @ 26.05.12, 10:35) необходимо зарегистрироваться для просмотра ссылки
Только я предвкушаю вопросы, когда автор в обычном приложении будет что-то писать в процедуре ПриСозданииНаСервере .

Шутишь, и даже не улыбаешься smile.gif
Ardi
В типовой УТП есть поле "Подразделение".
Его можно заполнять.
Может даже по подразделению там готовые права есть.
Powerman
Цитата(AnryMc @ 26.05.12, 7:36) необходимо зарегистрироваться для просмотра ссылки
Если это надо не только для удобства (видеть только "свои" документы для выбора) но и по соображениям ограничения к информации (получать отчеты только по "своим" документам и не иметь доступа к "не своим" даже для просмотра), то отборы в журналах не решение. Надо делать RLS

Спасибо всем за подсказки! А что такое RLS?
В этой конфе нарыл вот такую весч, уже реализованную (хелп конфы)…
«Справочник "Группы доступа к контрагентам"
Справочник "Группы доступа к контрагентам" используется для установки прав доступа к объектам - контрагентам различным группам пользователей. С помощью этого справочника настраиваются доступ пользователей к определенным группам контрагентов. Информация о том, к какой группе доступа принадлежит тот или иной контрагент, указывается в справочнике "Контрагенты" на закладке "Прочее". Предусмотрена также возможность отнесения контрагентов к определенной группе доступа с помощью обработки "Групповая обработка справочников и документов".
Пример. Менеджеры отдела продаж должны видеть информацию только по тем контрагентам, которые относятся к группе доступа "Продажи". Тогда в справочник "Груупы доступа к контрагентам" необходимо ввести информацию о группе "Продажи", а у соответствующих контрагентов установить эту группу на закладке "Прочее". Менеджеров отдела продаж надо объединить в группу пользователей и установить для этой группы в качестве объекта доступа контрагентов - группу "Продажи". Аналогичным образом можно разделить контрагентов по группам доступа до уровня конкретного менеджера.
Важно. Использование подсистемы установки прав доступа к конкретным объектам возможно только в том случае, если в настройках параметров учета установлен флаг "Использовать ограничение прав доступа на уровне записей". «
Если разберусь как работает, возможно поможет мне справится с поставленной задачей…
redking
А подскажите пожалуйста как-же организовать отбор через список:" <Список>.Отбор"
Список это на форме список документов с типом "ДокументСписок"?
Может есть пример... Заранее спасибо.
Ardi
redking

Процедура СтрокаПоиска1ОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
    ЭлементОтбора = СправочникСписок.Отбор.Ссылка;    
    Если не СокрЛП(Текст) = "" Тогда
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    Игроки.Ссылка
        |ИЗ
        |    Справочник.Игроки КАК Игроки
        |ГДЕ
        |    Игроки.Наименование ПОДОБНО &Наименование";
        Запрос.УстановитьПараметр("Наименование",Текст+"%");
        Список = Новый СписокЗначений();
        Список.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
        ЭлементОтбора = СправочникСписок.Отбор.Ссылка;
        ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
        ЭлементОтбора.Значение = Список;
        ЭлементОтбора.Использование = Истина;
    Иначе
        ЭлементОтбора.Использование = Ложь;
    КонецЕсли;
КонецПроцедуры
redking
Спасибо,Ardi
Сейчас попробую
Powerman
Цитата(Ardi @ 28.05.12, 17:05) необходимо зарегистрироваться для просмотра ссылки
redking

Процедура СтрокаПоиска1ОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
    ЭлементОтбора = СправочникСписок.Отбор.Ссылка;    
    Если не СокрЛП(Текст) = "" Тогда
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    Игроки.Ссылка
        |ИЗ
        |    Справочник.Игроки КАК Игроки
        |ГДЕ
        |    Игроки.Наименование ПОДОБНО &Наименование";
        Запрос.УстановитьПараметр("Наименование",Текст+"%");
        Список = Новый СписокЗначений();
        Список.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
        ЭлементОтбора = СправочникСписок.Отбор.Ссылка;
        ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
        ЭлементОтбора.Значение = Список;
        ЭлементОтбора.Использование = Истина;
    Иначе
        ЭлементОтбора.Использование = Ложь;
    КонецЕсли;
КонецПроцедуры

Мне эта процедура тоже подойдёт?
Powerman
Цитата(Powerman @ 29.05.12, 12:29) необходимо зарегистрироваться для просмотра ссылки
Мне эта процедура тоже подойдёт?

Спасибо за подсказку СправочникСписок.Отбор помог icon_beer17.gif

Цитата(Powerman @ 29.05.12, 20:05) необходимо зарегистрироваться для просмотра ссылки
Спасибо за подсказку СправочникСписок.Отбор помог icon_beer17.gif

Решил в общем так... (может можно было решить иначе, проще, но работает
Форма списка
Процедура ПриОткрытии()
    Пользователь = ПараметрыСеанса.ТекущийПользователь;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ГруппыПользователей.Наименование КАК Группа
    |ИЗ
    |    Справочник.ГруппыПользователей КАК ГруппыПользователей
    |        {ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ГруппыПользователей.ПользователиГруппы КАК ГруппыПользователейПользователиГруппы
    |        ПО (ГруппыПользователейПользователиГруппы.Ссылка = ГруппыПользователей.Ссылка)}
    |ГДЕ
    |    ГруппыПользователейПользователиГруппы.Пользователь = &Пользователь";
    
    Запрос.УстановитьПараметр("Пользователь",Пользователь);
    
    Результат = Запрос.Выполнить();
    
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        Если  ВыборкаДетальныеЗаписи.Группа = "Все пользователи" Тогда
            Продолжить;
        Иначе
            ГруппаПользователей = ВыборкаДетальныеЗаписи.Группа;
            Запрос2 = Новый Запрос;
            Запрос2.Текст =
            "ВЫБРАТЬ
            |    ГруппыПользователей.Наименование,
            |    ГруппыПользователейПользователиГруппы.Пользователь.Ссылка КАК Ссылка
            |ИЗ
            |    Справочник.ГруппыПользователей.ПользователиГруппы КАК ГруппыПользователейПользователиГруппы
            |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ГруппыПользователей КАК ГруппыПользователей
            |        ПО ГруппыПользователейПользователиГруппы.Ссылка = ГруппыПользователей.Ссылка
            |ГДЕ
            |    ГруппыПользователей.Наименование = &ГруппаПользователей";
            
            Запрос2.УстановитьПараметр("ГруппаПользователей",ГруппаПользователей);
            
            Список = Новый СписокЗначений();
            Список.ЗагрузитьЗначения(Запрос2.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
            ЭлементОтбора = ДокументСписок.Отбор.Ответственный;
            ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
            ЭлементОтбора.Значение = Список;
            ЭлементОтбора.Использование = Истина;
            
        КонецЕсли;
    КонецЦикла;    
КонецПроцедуры


Отбор по нескольким пользователям состоящих в группе пользователей


 ! 

Выделяйте код!
 
Ardi
а где запрет на снятие фильтра по ответственному?
Powerman
Цитата(Ardi @ 29.05.12, 21:35) необходимо зарегистрироваться для просмотра ссылки
а где запрет на снятие фильтра по ответственному?

В смысле "ответственный"? Администратор группы имеется ввиду?
Ardi
а где запрет на снятие фильтра
В журнале кнопка такая есть.
Powerman
Цитата(Ardi @ 29.05.12, 22:16) необходимо зарегистрироваться для просмотра ссылки
а где запрет на снятие фильтра
В журнале кнопка такая есть.

Я это предусмотрел... Сделал свою форму без кнопок фильтрации.
Вопрос к админам форума... Почему я не могу редактировать свои сообщения и ипочему у меня нет кнопки вставки кода 1С? Скины могу предоставить
Ardi
Цитата(Powerman @ 30.05.12, 15:24) необходимо зарегистрироваться для просмотра ссылки
Сделал свою форму без кнопок фильтрации.

А как же правая кнопка мыши на табличной части?
А если нужны кнопки фильтрации?
logist
Цитата(Powerman @ 30.05.12, 15:24) необходимо зарегистрироваться для просмотра ссылки
Я это предусмотрел... Сделал свою форму без кнопок фильтрации.

Ужас, делать отдельную форму вместо одной строки кода которая скрывает отбор

Цитата(Powerman @ 30.05.12, 15:24) необходимо зарегистрироваться для просмотра ссылки
Почему я не могу редактировать свои сообщения

Потому что эта возможность есть только у некоторых пользователей.

Цитата(Powerman @ 30.05.12, 15:24) необходимо зарегистрироваться для просмотра ссылки
ипочему у меня нет кнопки вставки кода 1С? Скины могу предоставить

Предоставляйте - посмотрим.
Powerman
Цитата(logist @ 30.05.12, 15:53) необходимо зарегистрироваться для просмотра ссылки
Цитата(Powerman @ 30.05.12, 15:24) *
Почему я не могу редактировать свои сообщения

Потому что эта возможность есть только у некоторых пользователей.

Я ведь не говорю чужие сообщения редактировать, что позволительно модераторам и админам, а свои сообщения, почему бы не разрешить редактировать!?
Я в предыдущем своём сообщении совершил ошибку, хотел исправить, а возможности нет...
Будет читать другой форумчанин, по моему примеру тоже может совершить ошибку...


Цитата(logist @ 30.05.12, 15:53) необходимо зарегистрироваться для просмотра ссылки
Цитата(Powerman @ 30.05.12, 15:24) *
Я это предусмотрел... Сделал свою форму без кнопок фильтрации.

Ужас, делать отдельную форму вместо одной строки кода которая скрывает отбор

Если бы знал, как сделать, сделал бы. Я ещё не профессионал, только учусь…
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.