Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/10: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Marsel333
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
1

Права доступа пользователям

14.01.2012, 12:44. Просмотров 1941. Ответов 12
Метки нет (Все метки)

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

Возможно ли это сделать? если да, то как?
Заранее спасибо.
0
Миниатюры
Права доступа пользователям  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2012, 12:44
Ответы с готовыми решениями:

права пользователям.
Здравствуйте! с праздником всех вас дорогие друзья. удачи вам в новом году. а я к вам вновь за...

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

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

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

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

12
wade25
145 / 145 / 3
Регистрация: 25.03.2011
Сообщений: 512
14.01.2012, 20:21 2
Да, функция РольДоступна(""); Лови событие которое происходит при изменении, или просто при открытии если такая то РольДоступна("Имя роли") Тогда Доступность или видимость= Ложь. Как вам удобней.
1
Marsel333
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
15.01.2012, 00:03  [ТС] 3
Интересно. Видите ли я только начинающий программист. Не могли бы подробнее описать что и как)
А лучше привести небольшой пример, если конечно не сложно.
0
wade25
145 / 145 / 3
Регистрация: 25.03.2011
Сообщений: 512
15.01.2012, 00:41 4
Если формы не управляемые то так: Вот ты хочешь запретить пользователю изменять данные в документе. Слудовательно тебе нужно сделать, так, что бы пользователь не мог редактировать объект на форме соответствующий реквизиту который хочешь запретить изменять.

У объектов формы есть свойство "Доступно" (или доступность, по памяти пишу). Ты идешь в модуль формы, ищешь процедуру "ПередОткрытием" или создаешь ее если нету. В ней ты пишешь код
1C
1
2
3
Если РольДоступна Тогда
    ЭлементыФормы.ОбъектКоторыйХочешьЗапретитьИзменять.Доступность = Ложь;
КонецЕсли;
Все. И так для каждой роли пишешь те объекты которых хочешь запретить изменять.
Роли создаются в ветви общие дерева конфигурации...
1
Marsel333
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
15.01.2012, 03:02  [ТС] 5
Разобрался, сделал. Но сейчас выдает ошибку: {Документ.ПланПроизводстваРабот.Форма.ФормаДокумента.Форма(62)}: Значение не является значением объектного типа (ПорядковыйНомерМашины)
ЭлементыФормы.ТаблицаРаспределенияКонтрагентов.ТекущиеДанные.ПорядковыйНомерМашины.Доступность = Ложь;

Никак не могу разобраться в чем может быть дело?
1C
1
2
3
4
5
6
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если РольДоступна ("ЗавершениеСмены") Тогда
    ЭлементыФормы.ТаблицаРаспределенияКонтрагентов.ТекущиеДанные.ПорядковыйНомерМашины.Доступность = Ложь;
КонецЕсли;
 
КонецПроцедуры
0
Dethmontt
Модератор
Эксперт 1С
2659 / 2446 / 421
Регистрация: 10.03.2011
Сообщений: 8,756
Записей в блоге: 1
Завершенные тесты: 1
15.01.2012, 06:17 6
1C
1
2
МожноИзменять = РольДоступна("ЗавершениеСмены");
ЭлементыФормы.ТаблицаРаспределенияКонтрагентов.Колонки.ПорядковыйНомерМашины.Доступность = МожноИзменять;
1
Marsel333
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
15.01.2012, 11:42  [ТС] 7
Всем спасибо)
0
Marsel333
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
20.01.2012, 15:48  [ТС] 8
Вопрос по этому же документу. Вопрос наверное легкий так что извеняйте). По этому рисунку видно (рис.1). Мучаюсь, ни как не могу добиться автозаполнение колонок Инвертарный и Заводской.
Дана колонка МаркаМашины - это ОС. На основе этой колонки хочу чтобы автоматически вбивался инвертарные и заводские номера. Создал процедурку:
1C
1
2
3
4
5
Процедура МаркаМашиныПриИзменении ()
   Для Каждого СтрокаТабличнойЧасти Из ЭлементыФормы.ТаблицаРаспределенияКонтрагентов Цикл
       СтрокаТабличнойЧасти.Колонки.Инвертарный.УстановитьТекст(СтрокаТабличнойЧасти.ДанныеСтроки.МаркаМашины.Код);
   КонецЦикла;
КонецПроцедуры
Инвертарный и Заводской колонки без привязки данных - вроде как и должно быть.
Выдается ошибка: {Документ.ПланПроизводстваРабот.Форма.ФормаДокумента.Форма(83)}: Итератор для значения не определен
Для Каждого СтрокаТабличнойЧасти Из ЭлементыФормы.ТаблицаРаспределенияКонтрагентов Цикл

Что нужно туда вбить? Или проблема еще в чем то?
Дополнительно рис.2
0
Миниатюры
Права доступа пользователям  
Dethmontt
Модератор
Эксперт 1С
2659 / 2446 / 421
Регистрация: 10.03.2011
Сообщений: 8,756
Записей в блоге: 1
Завершенные тесты: 1
20.01.2012, 16:48 9
1C
1
2
3
4
5
6
Процедура МаркаМашиныПриИзменении ()
    СтрокаТабличнойЧасти = ЭлементыФормы.ТаблицаРаспределенияКонтрагентов.ТекущиеДанные;
Если  СтрокаТабличнойЧасти <> Неопределено Тогда
    СтрокаТабличнойЧасти.Инвертарный = СтрокаТабличнойЧасти.МаркаМашины.Код;
КонецЕсли;
КонецПроцедуры
Почему вы ничего не хотите читать?
0
Marsel333
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
21.01.2012, 14:10  [ТС] 10
Не подскажите с чего можно начать? Какую нибудь начальную книгу с примерами.
0
Dethmontt
Модератор
Эксперт 1С
2659 / 2446 / 421
Регистрация: 10.03.2011
Сообщений: 8,756
Записей в блоге: 1
Завершенные тесты: 1
21.01.2012, 18:11 11
Радченко ЖКК

Добавлено через 1 час 25 минут
Все просто:
СтатьНовымПрограммистом = ЧитатьЖКК(Радченко) + ИспользоватьПоискНаФоруме
0
wade25
145 / 145 / 3
Регистрация: 25.03.2011
Сообщений: 512
21.01.2012, 19:26 12
Цитата Сообщение от Dethmontt Посмотреть сообщение
Радченко ЖКК


СтатьНовымПрограммистом = ЧитатьЖКК(Радченко) + ИспользоватьПоискНаФоруме

Ну не знаю, сразу на мисту, а психика выдержит?
1
Marsel333
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
06.02.2012, 12:43  [ТС] 13
Всем привет снова. Сделал поп вашему примеру автозаполнение, получилось
1C
1
2
3
4
5
6
7
8
Процедура НомерЗаявкиПриИзменении(Элемент)
        СтрокаТабличнойЧасти = ЭлементыФормы.ТаблицаПроизводстваРабот.ТекущиеДанные;
Если  СтрокаТабличнойЧасти <> Неопределено Тогда
        СтрокаТабличнойЧасти.ДатаСоставленияЗаявки = СтрокаТабличнойЧасти.НомерЗаявки.Дата;
        СтрокаТабличнойЧасти.Контрагент = СтрокаТабличнойЧасти.НомерЗаявки.Контрагент;
      //СтрокаТабличнойЧасти.Номенклатура = СтрокаТабличнойЧасти.НомерЗаявки.Номенклатура;
КонецЕсли;
КонецПроцедуры
Все работает, но Дата и Контрагенты находятся в реквизитах, а номенклатура в табличной части(поэтму не могу вытищить данные из номенклатуры). Я так понимаю этот вариант уже не подходит, нужен цикл? или что то другое?
Вот что я смог написать:
1C
1
2
3
4
Для каждого СтрокаТабличнойЧасти Из ДокументОбъект.ТаблицаПроизводстваРабот Цикл
 СтрТЗ=СтрокаТабличнойЧасти.Номенклатура.Добавить();
 СтрТЗ.Номенклатура=Стр.Номенклатура;   
 КонецЦикла;
Но это наверное вообще не то( Подскажите что можно сделать?
0
06.02.2012, 12:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2012, 12:43

Права доступа к документам
Хм, нужно такую штуку написать, типа справочника прав, где прописуеться пользователь - он же...

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

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


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

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

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