Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/71: Рейтинг темы: голосов - 71, средняя оценка - 4.69
ytty
0 / 0 / 0
Регистрация: 09.08.2008
Сообщений: 42
1

Права доступа к документам

15.07.2010, 12:05. Просмотров 12763. Ответов 7
Метки нет (Все метки)

Хм, нужно такую штуку написать, типа справочника прав, где прописуеться пользователь - он же например руководитель подразделения и подчиненные к нему сотрудники, и так далее руководитель- сотрудники. Для того, чтобы при работе в 1с руководитель мог видеть только документы своих подчиненных, типа, в глобальном модуле процедурку написать, вот в чем вопрос.
Сделала так: Справочник Пользователи добавила ТЗ и соответственно кнопки добавит, изменить, справочник Сотрудники сделала подчиненным. Вот что мне не нравится и вообще неправильно!!!

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

Код
Процедура кнУдалить()
Перем Поз, Эл;
Поз=тбсотр.ТекущаяСтрока();
Если Поз = 0 Тогда
// не выбрана строка таблицы
Возврат;
КонецЕсли;
Эл=тбсотр.ПолучитьЗначение(Поз,"Значение");
Спр=СоздатьОбъект("Справочник.Сотрудники");
Спр.ИспользоватьВладельца(ТекущийЭлемент());
Если Спр.НайтиЭлемент(Эл)=1 Тогда
Спр.Удалить(0);
тбсотр.УдалитьСтроку(Поз);
тбсотр.ТекущаяСтрока(?(Поз>1,Поз-1,1));
Форма.Обновить();
КонецЕсли;
КонецПроцедуры //кнУдалить
Эта кнопка вообще не только удаляет из ТЗ сотрудника, но и удаляет в справочнике сотрудники, а мне просто нужно из ТЗ удалить.
И такой еще вопрос, обязательно справочник в таком случае подчиненным делать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2010, 12:05
Ответы с готовыми решениями:

Права доступа в 1С 8.2
Подскадите, пожалуйста, как можно ограничить права доступа на справочник "Сотрудники", чтобы из...

Права доступа к 1С
Доброго вечера уважаемые форумчане. Имеем 2003 сервер терминала, юзеры подключаются по удалённому...

Права доступа в 1С УТ
Добрый день! 1С УТ 10.3, Существует ли возможность закрыть возможность редактирования каких-то...

Права доступа!
Как пользователям запретить изменять, перемещать, помечать на удаление элемент справочника...

Права доступа
Можно ли запретить пользователю изменять документы, созданные другим пользователем? и в документе...

7
kyr
0 / 0 / 0
Регистрация: 04.12.2005
Сообщений: 1,588
15.07.2010, 12:19 2
а обойтись простыми группами прав почему не подходит?
0
ytty
0 / 0 / 0
Регистрация: 09.08.2008
Сообщений: 42
15.07.2010, 12:35 3
Просто разделить права на руководителя и сотрудника можно так и есть, но нужно, чтобы руководитель мог пересматривать документы только подчиненного сотрудника, а другой руково дитель не мог пересматривать, если это не его подчиненный :facepalm:
0
Hryv
0 / 0 / 0
Регистрация: 24.07.2008
Сообщений: 658
15.07.2010, 12:43 4
1. Если уж плагиатом занимаетесь то так и пишите: есть чужой код, помогите его переделать
2. Используйте подбор, чтобы выбрать из существующих
3. Уберите Спр.Удалить(0); тогда элемент не будет удаляться

В обоих случаях проблема возникла из-за того что "справочник Сотрудники сделала подчиненным"
Я бы делал несколько иначе, также как и автор приведенного кода
0
ytty
0 / 0 / 0
Регистрация: 09.08.2008
Сообщений: 42
15.07.2010, 13:23 5
Код взят как аналог из справочника ТМЦ на примере единиц измерения и переделан (автор -разработчики 1С :facepalm: ) (я почему-то подумала что так нужно реализовать - была не права), я уже поняна что как подчиненный не стоит делать, и переделала.

Код
Процедура кнДобавить()
спрсот = СоздатьОбъект("Справочник.Сотрудники");
ОткрытьФормуМодально("Справочник.Сотрудники",Контекст);
Если спрсот.Выбрать("Сотрудники","ФормаВыбора") = 1 Тогда
тбсотр.ФИО = спрсот.ТекущийЭлемент();
КонецЕсли;
СписокСотр();
КонецПроцедуры //кнДобавить
Вот так то лучше но Если спрсот.Выбрать("Сотрудники","ФормаВыбора") = 1 - форма Сотрудники открывается не в режиме выбора, а в списке и при закрытии уже появляется режим выбора.
0
Hryv
0 / 0 / 0
Регистрация: 24.07.2008
Сообщений: 658
15.07.2010, 13:51 6
Лучше всего сделать еще один справочник подчиненный "Справочник Пользователи" и с одним реквизитом "Справочник.Сотрудники"
а дальше в соответствии с первоначальной идеей
0
ytty
0 / 0 / 0
Регистрация: 09.08.2008
Сообщений: 42
15.07.2010, 14:02 7
Цитата Сообщение от Elle
1. Если уж плагиатом занимаетесь то так и пишите: есть чужой код, помогите его переделать
Я бы не назвала это плагиатом, учиться на типовых конфигурациях, смотреть их код - это плагиат? к сожалению мой уровень программирования низкий, возможно мой женский мозг не способен сразу найти наилучший вариант

Добавлено:


Цитата Сообщение от Elle
Лучше всего сделать еще один справочник подчиненный "Справочник Пользователи" и с одним реквизитом "Справочник.Сотрудники"
а дальше в соответствии с первоначальной идеей
Хм я читаю ваши мысли, потому что сделала отдельный справочник Права и там так и делаю как вы пишете :facepalm:
0
ytty
0 / 0 / 0
Регистрация: 09.08.2008
Сообщений: 42
15.07.2010, 16:17 8
Сделала так - справочник Пользователи, на его форме ТЗ к которому добавляется из подчиненного справочника Права сотрудники. В Глобальном модуле написала:

Код
Процедура глПраваДоступа()
спПраваНаДок = СоздатьОбъект("СписокЗначений");
спПраваНаДок.ДобавитьЗначение(глПользователь);
спрПрава = СоздатьОбъект("Справочник.Права");
спрПрава.ИспользоватьВладельца(глПользователь);
Если спрПрава.ВыбратьЭлементы()=1 Тогда
Пока спрПрава.ПолучитьЭлемент()=1 Цикл
спПраваНаДок.ДобавитьЗначение(спрПрава.ТекущийЭлемент().АвторДок);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Все работает - документы нельзя смотреть, но как установить отбор на список значений спПраваНаДок в журнале, что бы вообще чужых не видеть документов???
УстановитьОтбор(спПраваНаДок); не работает
0
15.07.2010, 16:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2010, 16:17

Права доступа пользователям
Есть один документ - рис. Возможно ли в этом документе сделать так, чтобы одна группа...

1с - права доступа суперпользователя
Здравствуйте читающие! Появилась необходимость выполнения кода и запроса от имени пользователя,...

Права доступа в ТиС9.2 1с7.7
В базе реально используется 6 документов Права доступа на них абсолютно одинаковые, но на документ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru