Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Права доступа СпрКонтрагенты
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
bereznoy
Возникла необходимость ограничить права к справочника контрагентов, контрагенты разбиты на группы, например группа называется "ЮГ" и пользователь с именем "ЮГ" должен видеть только тех контрагентов которые входят в группу "ЮГ" (Имя пользователя = НаименованиеГруппы)

Первое что надо будет сделать это отключить доступность вкл./выкл. иерархический список, а затем подобным способом включить отбор
Процедура ПриОткрытии()
УстановитьОтбор("Родитель",ИмяПользователя);
КонецПроцедуры


Причем Родитель.Родитель = ИмяПользователя и Родитель = ИмяПользователя, т.к. в группах будет еще второй уровень групп
Вообщем то данная идея меня немного смущает, но так делал в 1с 8.2 там все получилось,в 1с 7.7 быть может есть какие то более эффективные и простые способы ограничивать просто просмотр в списке справочника, подскажите плз как лучше сделать
Ardi
Для справочникое ещё есть фильтр по СпискуЗначений.
alex040269
Варианта 2
1) использовать
ИспользоватьСписокЭлементов();


2) Ваш метод, но для отбора использовать реквизит, недоступный для пользователя, заполняемый программно...
g789
Может быть так
Процедура ПриОткрытии()
    ИерархическийСписок(1,0);
    Спр = СоздатьОбъект("Справочник.Контрагенты");
    Спр.НайтиПоНаименованию("Гр1",0,0);
    ИспользоватьРодителя(Спр.ТекущийЭлемент(),0);
КонецПроцедуры
Домовик
еще один вариант.

своя форма, на форме список значений или таблица значений, которые заполняются по указанному в первом посте условию .

это вариант более громоздкий, меняющий структуру конфигрурации, не только код. нужно взвешивать, стоит ли того цель.
igmig65
Цитата
Для справочникое ещё есть фильтр по СпискуЗначений.

Цитата
ИспользоватьСписокЭлементов();

самое простое решение, используете в ПриВыбореЗначения ОткрытьФорму контрагентов со списком нужных для тек.пользователя контрагентов, а в ПриОткрытии контрагентов ИспользоватьСписокЭлементов(СпКонтр)
bereznoy
Цитата(g789 @ 26.06.12, 15:56) необходимо зарегистрироваться для просмотра ссылки
Может быть так
Процедура ПриОткрытии()
    ИерархическийСписок(1,0);
    Спр = СоздатьОбъект("Справочник.Контрагенты");
    Спр.НайтиПоНаименованию("Гр1",0,0);
    ИспользоватьРодителя(Спр.ТекущийЭлемент(),0);
КонецПроцедуры

Использовал этот способ, работает, палец нажал!
bereznoy
Единственное что б еще хотелось, Спр.НайтиПоНаименованию("ЮГ",0,0);
у меня юзеры будут с именами групп, т.е. пользователь ЮГ должен видеть только папку ЮГ
вместо "ЮГ" глПользователь не катит, т.к. ссылка наверное на юзера, а как сделать что б по наименованию пользователя отбирался каталог в контрагентах
g789
СокрЛП(глПользователь.Наименование)

или
СокрЛП(глПользователь.Сотрудник.Наименование)
bereznoy
Цитата(g789 @ 04.07.12, 12:01) необходимо зарегистрироваться для просмотра ссылки
СокрЛП(глПользователь.Наименование)

или
СокрЛП(глПользователь.Сотрудник.Наименование)

Получилось как Вы указали!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.