1С 7.7 Бухгалтерский учет для Украины. Сейчас добавляем в эту базу Заработную плату. Права на выбор и чтение из справочника Сотрудники имеют все или почти все. Поделитесь информацией как кто реализует ограничение доступа к реквизитам справочника Сотрудники. Чтобы те кому это не нужно не могли видеть информацию по заработной плате. Планируется разместить эту информацию на отдельных вкладках и показывать эти вкладки только ограниченному кругу лиц. Какие еще могут быть варианты решения этой проблемы.
(1) dicwork,
Процедура Приоткрытии ()
если НазваниеНабораПрав()<> "видно _все" Тогда
форма.Оклад.Видимость(0);
Иначе
форма.Оклад.Видимость(1);
КонецЕСли;
КонецПроцедуры
Я вот выковырял из своей базы. Из справочника сотрудников в ЗИКе
Здесь по-моему все есть:
Функция УстДоступность()
Если ТипСотрудника = Перечисление.ТипСотрудника.УченикГПТУ Тогда
Форма.ГПТУ.Доступность(1);
Форма.ГПТУ.Доступность(1);
Иначе
Форма.ГПТУ.Доступность(0);
Форма.ГПТУ.Доступность(0);
КонецЕсли;
Форма.кИстория.Доступность(Выбран());
Форма.кОбновить.Доступность(Выбран());
ЕстьДокНачала = ДокументНачала.Выбран();
Форма.ФизическоеЛицо.Доступность(1);
Форма.Фирма.Доступность(1-ЕстьДокНачала);
Форма.Подразделение.Доступность(1);
Если (ИмяПользователя()= "Иванов") или(ИмяПользователя()= "Петров") или
(ИмяПользователя()= "Сидоров") или(ИмяПользователя()= "Потапов") или (ИмяПользователя()= "Кадровик") или (ИмяПользователя()= "Кадровик2") Тогда
Форма.ДатаНачалаДействия.Доступность(1);
Форма.ДатаОкончанияДействия.Доступность(1);
Иначе
Форма.ДатаНачалаДействия.Доступность(0);
Форма.ДатаОкончанияДействия.Доступность(0);
конецЕсли;
Если Найти("Кадровик,Табельщик,Ст.кадровик,Ст.табельщик",СокрЛП(НазваниеНабораПрав()))>0 Тогда
Форма.ВыплПКФл.Видимость(0);
Форма.ПВыпЗаг.Видимость(0);
Форма.ПроцДляПК.Видимость(0);
Форма.НеВыплПКФл.Видимость(0);
ИначеЕсли ВывБлокПК = 1 Тогда
Если ВыплПК = 1 Тогда
ВыплПКФл = 1;
Форма.ПВыпЗаг.Видимость(1);
Форма.ПроцДляПК.Видимость(1);
Иначе
ВыплПКФл = 0;
Форма.ПВыпЗаг.Видимость(0);
Форма.ПроцДляПК.Видимость(0);
КонецЕсли;
Если ИсклВыпПК = 1 Тогда
НеВыплПКФл = 1;
Иначе
НеВыплПКФл = 0;
КонецЕсли;
Иначе
Форма.ПВыпЗаг.Видимость(0);
Форма.ПроцДляПК.Видимость(0);
КонецЕсли;
Возврат "";
КонецФункции
Показать
Делается невидимое поле на форме и в нем ставится функция УстДоступность()
Не ругайте сильно код. Не я один писал, его дописывали и правили много раз в зависимости от пользователей и прав, добавления новых реквизитов и т.п.
Не самый удачный способ, так как при изменении набора прав или состава допущеных пользователей нужно лазить в конфигурацию.
Как идея у меня была ввести доступный админу справочник разрешений типа с тремя реквизитами:
ВидРазрешения (набор прав или имя пользователя) и собственно список текстовый этих наборов и пользователей.
Тогда проверку проводить по списку из справочника через глобальную функцию глДоступ()
Что-то типа:
Функция глДоступ(ИДдоступа) Экспорт
УД = СоздатьОбъект("Справочник.УправлениеДоступом");
УД.НайтиПоНаименованию(ИДДоступа);
Если УД.ВидРазрешения = "Набором прав" Тогда
Если Найти(УД.СписокРазрешенных,НазваниеНабораПрав())>0 Тогда
Возврат 1;
Иначе
Возврат 0;
КонецЕсли;
Иначе
Если Найти(УД.СписокРазрешенных,ИмяПользователя())>0 Тогда
Возврат 1;
Иначе
Возврат 0;
КонецЕсли;
КонецЕсли;
КонецФункции
Показать
Ну а в УстДоступность() использовать так:
Если глДоступ("Просматривать оклад сотрудника") = 1 Тогда
Форма.Оклад.Видимость(1);
Иначе
Форма.Оклад.Видимость(0);
КонецЕсли;
Или даже так:
Форма.Оклад.Видимость(глДоступ("Просматривать оклад сотрудника"));
Теперь редактировать наборы для доступа станет проще...
Но сам так и не сделал, все то лень то некогда. Вот и тыкаюсь постоянно в модули форм.
Надеюсь идея не умрет и топикстартер ее реализует:)
Реквизиты делятся на закладки, все что касается ЗП скидывается на отдельные закладки, и в ПриОткрытии смотрятся права (НазваниеНабораПрав()), если у прав есть доступ на ЗП - Закладка добавляется, если прав нет - закладка не добавляется.
(5) pvase
В общем-то это было первым пришедшим на ум решением. Но мне не очень нравиться идея прописывания прямо в коде названий наборов прав. Мне понравилась идея dusha0020 с хранением видов доступа в виде справочника, но не знаю успею ли я ее реализовать - сроки завершения объединения баз поджимают. Если не буду успевать реализую пока вариант с закладками.