Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Настройка прав на уровне записей в ЗУП для Украины
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Пользователю 1С 8.3, 8.2, 8.1, 8.0 > 1С Зарплата и Управление Персоналом 8
poritskiy
Есть 3 подразделения подразделени1, подразделени2, подразделени3.
В конфигурацию внесено 3 пользователя, Кадровик1,Кадровик2,Кадровик3.
Как организовать настройку прав так что бы Кадровик1 был закреплен за подразделением1 и видел только те кадровые документы которые относятся к подразделению1.
Кадровые документы имеется ввиду: Прием на работу в организацию, Кадровое перемещение организаций, Увольнение из организации, Отпуска организации и т.д.
Конфигурация: ЗУП для Украины, релиз 2,1,25,3
Читал в книге для ЗУПа что можно разграничить прав по Организациям, но это не подходит так как надо по подразделениям.
Кто с такой проблемой сталкивался, подскажите.
logist
Цитата(poritskiy @ 18.09.12, 18:23) необходимо зарегистрироваться для просмотра ссылки
Как организовать настройку прав так что бы

На уровне пользователя - никак. Требуется программирование.
sava1
Цитата(logist @ 18.09.12, 19:01) необходимо зарегистрироваться для просмотра ссылки
На уровне пользователя - никак. Требуется программирование.


А что в ЗУП нет РЛС по подразделениям? в УПП - лехко !
logist
Цитата(sava1 @ 19.09.12, 8:05) необходимо зарегистрироваться для просмотра ссылки
А что в ЗУП нет РЛС по подразделениям?

Конечно же есть, я тут просто так раздаю вредные советы, ну зачем переспрашивать? smile.gif
Нет там такого, поскольку в принципе бессмысленно. В УПП другая логика в плане прав - поэтому там есть много чего.
Vofka
Цитата(logist @ 19.09.12, 9:34) необходимо зарегистрироваться для просмотра ссылки
Конечно же есть, я тут просто так раздаю вредные советы, ну зачем переспрашивать?

Зачем же сразу принимать в штыки встречный вопрос? 32542460.gif
sava1
Спрашиваю ибо с ЗУП не работал
logist
Цитата(Vofka @ 19.09.12, 9:53) необходимо зарегистрироваться для просмотра ссылки
Зачем же сразу принимать в штыки встречный вопрос?

Я добавлю там смайлики wink.gif
poritskiy
После одной недоспаной))) ночи, решение нашлось, если кого интересует могу расписать.
кривовато(( сделал но работает...
Vofka
Распишите. Авось кому-то ещё поможете.
liksoft
Цитата(poritskiy @ 19.09.12, 10:10) необходимо зарегистрироваться для просмотра ссылки
После одной недоспаной))) ночи, решение нашлось, если кого интересует могу расписать.
кривовато(( сделал но работает...

Меня интересует. Такая же задача впереди маячит. sad.gif
poritskiy
Начну с того что в ЗУПе для Украины, это вообще не реализовано, и никакой инфы нет по этой проблеме, потому пришлось программировать, делалось все в 3 часа ночи, так что если у кого то есть предложения по оптимизации буду рад выслушать ....
Писать старался так что бы потом при обновлении, было меньше гемора).
Пришлось переделать Интерфейсы, Роли, ОбщиеФормы,Перечисления и РегистрСведений.
Задача ставилась так, что бы пользователь мог работать только с теми подразделениями организации которые ему назначены, плюс пользователь должен видеть только те кадровые документы регламентированного учета которые он создал и ничье больше.

Описывать буду на примере документа ПрийомНаРаботуВОрганизацию.

Для того что бы пользователь видел определенные кадровые документы, был сделан отдельный интерфейс, с этим думаю не должно быть трудностей.

Для того что бы пользователь видел только те доки которые он создал, пришлось редактировать роли и привязать к реквизиту Ответственный, он есть почти в каждом кадровом документе, дальше для того что бы не изменять типовые объекты Роли, я создал свои методом копирования, конкретно типовую роль Пользователи и Полные права. В этих ролях для нужных мне документов, я редактировал права на чтение, в типовой для этих прав "Ограничение доступа к данным" стояло " ПриемНаРаботуВОрганизацию ГДЕ ЛОЖЬ " я изменял на "ПриемНаРаботуВОрганизацию ГДЕ (ЛОЖЬ ИЛИ ПриемНаРаботуВОрганизацию.Ответственный = &ТекущийПользователь)" так добился что бы пользователь видел только те доки которые он создал, по сути своего рода ограничение доступа на уровне пользователя.

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



poritskiy
хоть кому то помогло

Цитата(poritskiy @ 23.09.12, 22:41) необходимо зарегистрироваться для просмотра ссылки
Начну с того что в ЗУПе для Украины, это вообще не реализовано, и никакой инфы нет по этой проблеме, потому пришлось программировать, делалось все в 3 часа ночи, так что если у кого то есть предложения по оптимизации буду рад выслушать ....
Писать старался так что бы потом при обновлении, было меньше гемора).
Пришлось переделать Интерфейсы, Роли, ОбщиеФормы,Перечисления и РегистрСведений.
Задача ставилась так, что бы пользователь мог работать только с теми подразделениями организации которые ему назначены, плюс пользователь должен видеть только те кадровые документы регламентированного учета которые он создал и ничье больше.

Описывать буду на примере документа ПрийомНаРаботуВОрганизацию.

Для того что бы пользователь видел определенные кадровые документы, был сделан отдельный интерфейс, с этим думаю не должно быть трудностей.

Для того что бы пользователь видел только те доки которые он создал, пришлось редактировать роли и привязать к реквизиту Ответственный, он есть почти в каждом кадровом документе, дальше для того что бы не изменять типовые объекты Роли, я создал свои методом копирования, конкретно типовую роль Пользователи и Полные права. В этих ролях для нужных мне документов, я редактировал права на чтение, в типовой для этих прав "Ограничение доступа к данным" стояло " ПриемНаРаботуВОрганизацию ГДЕ ЛОЖЬ " я изменял на "ПриемНаРаботуВОрганизацию ГДЕ (ЛОЖЬ ИЛИ ПриемНаРаботуВОрганизацию.Ответственный = &ТекущийПользователь)" так добился что бы пользователь видел только те доки которые он создал, по сути своего рода ограничение доступа на уровне пользователя.

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

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