Ограничить доступ к полю дата для всех кроме одного пользователя

1. invistik 1 23.01.19 11:59 Сейчас в теме
Доброе время суток, вопрос скорей всего глупый и для многих не составит труда его реализовать но я не смог, есть база Бухгалтерия предприятия КОРП, редакция 3.0 редакция 3.0 (3.0.67.54), нужно закрыть в документе поле дата для всех кроме одного пользователя, подскажите как можно это реализовать.
Заранее спасибо
По теме из базы знаний
Найденные решения
3. dhurricane 23.01.19 12:08 Сейчас в теме
Создайте отдельную роль, например "РедактированиеДатыДокументов", отключите у нее все права. Назначьте ее нужным пользователям. В обработчике создания формы напишите:
Если Не Пользователи.РолиДоступны("РедактированиеДатыДокументов") Тогда
   Элементы.Дата.Доступность = Ложь;
КонецЕсли;
invistik; alex-l19041; +2 Ответить
5. SedovSU@mail.ru 298 23.01.19 13:55 Сейчас в теме
Ну вот если совсем просто и не брежно можно написать что то вроде этого:

Если ИмяПользователя() = "Иванов Иван Ивановнич" Тогда
      Элементы.Дата.Доступность = Истина;
Иначе 
      Элементы.Дата.Доступность = Ложь;
КонецЕсли
invistik; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. invistik 1 23.01.19 12:02 Сейчас в теме
закрыть всем я сделал

Процедура ПриОткрытии(Отказ)
	
		Элементы.Дата.Доступность = Ложь;
	
КонецПроцедуры
3. dhurricane 23.01.19 12:08 Сейчас в теме
Создайте отдельную роль, например "РедактированиеДатыДокументов", отключите у нее все права. Назначьте ее нужным пользователям. В обработчике создания формы напишите:
Если Не Пользователи.РолиДоступны("РедактированиеДатыДокументов") Тогда
   Элементы.Дата.Доступность = Ложь;
КонецЕсли;
invistik; alex-l19041; +2 Ответить
4. invistik 1 23.01.19 13:44 Сейчас в теме
(3)
Создайте отдельную роль, например "РедактированиеДатыДокументов", отключите у нее все права. Назначьте ее нужным пользователям. В обработчике создания формы напишите:


выдает ошибку Переменная не определена (Пользователи)
6. dhurricane 23.01.19 14:00 Сейчас в теме
(4) Вы точно написали приведенный мной код в обработчике "ПриСозданииНаСервере", а не "ПриОткрытии"?
8. invistik 1 23.01.19 14:04 Сейчас в теме
(6)
) Вы точно написали приведенный мной код в обработчике "ПриСозданииНаСервере", а не "ПриОткрытии"?


при создании все отработало, спасибо, а как сделать что бы при открытии?
10. dhurricane 23.01.19 14:19 Сейчас в теме
(8) Например использовать серверный метод для проверки:
&НаКлиенте
Процедура ПриОткрытии(Отказ)

	Если Не РедактированиеДатыДоступно() Тогда
		Элементы.Дата.Доступность = Ложь;
	КонецЕсли;
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция РедактированиеДатыДоступно()
	Возврат Пользователи.РолиДоступны("РедактированиеДатыДокументов");
КонецФункции
Показать

Но зачем? :)
invistik; +1 Ответить
11. invistik 1 23.01.19 14:29 Сейчас в теме
(10)Для развития...

Спасибо за помощь!!!
7. invistik 1 23.01.19 14:03 Сейчас в теме
(3)
обработчике создания формы напишите


А как сделать что бы при открытии то же такое правило действовало?
5. SedovSU@mail.ru 298 23.01.19 13:55 Сейчас в теме
Ну вот если совсем просто и не брежно можно написать что то вроде этого:

Если ИмяПользователя() = "Иванов Иван Ивановнич" Тогда
      Элементы.Дата.Доступность = Истина;
Иначе 
      Элементы.Дата.Доступность = Ложь;
КонецЕсли
invistik; +1 Ответить
9. invistik 1 23.01.19 14:09 Сейчас в теме
(5) Спасибо такой вариант для открытия подошел.
12. timeforlive 16 24.01.19 12:07 Сейчас в теме
(5) Знаю я таких программистов. Не учите неправильному коду. Потом начинаешь разбираться с чужим кодом, действуешь по наитию "правильно" - ищешь проблему в ролях, а находишь такие ляпы страшные.

Потратьте время и научитесь правильным решениям, чтобы за свой труд не стыдно было.
13. SedovSU@mail.ru 298 24.01.19 13:04 Сейчас в теме
(12) Я когда предложил я явно указал - цитирую "Ну вот если совсем просто и не брежно можно написать что то вроде этого: ". Понятно что это очень не красиво, ну это вариант. Одну задачу можно решить разными способами, ну а от того какой способ правильный каждый для себя принимает сам. Если Вы заботитесь о том что когда то ваши наработки будет кто то еще разбирать то да тут нужно думать как лучше написать. А с другой стороны что тут не правильно, можно и так предложить и по другому предложить все будет работать. Что не правильного??? Понятия правильно ни где не описано. Есть задача которую нужно решить а решить ее можно по разному. Это тоже самое что 2+2 = 4 и 1 + 1+ 1+1 = 4 и 2*2 = 4 или 2 в степени 2 тоже 4. Ведь ответ один и тот же а подход разный. Тут нужно понимать с точки зрения логики правильный подходит или нет, но не как само решение. А вот как правильно писать - ни где еще не видел такую прям инструкцию. Есть рекомендации и не более того. Так что вот!
15. timeforlive 16 25.01.19 05:38 Сейчас в теме
(13) Соглашусь с вами частично. Это мое мнение, что если программист (разработчик) имеет опыт и знает несколько способов решения, то стоит об этом упомянуть, когда даешь плохой совет. Иначе складывается ощущение, что кроме 2+2 вы не знаете другой арифметики.

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

Почитайте желтые книжки, там все прекрасно описано каким должен быть код. Когда задача решается в одно действие, то при наличии минимального опыта будет достаточно решить ее правильно. При увеличении объема работы увеличивается риск допустить ошибки и принять не правильные решения - это и есть опыт, который определяет ваш уровень.
14. SedovSU@mail.ru 298 24.01.19 13:10 Сейчас в теме
(12) и еще добавляю к написаному - это не ляп. ЛЯПЫ это когда 2+2 = 5 вот это ляп. А то что вам трудно как то разобраться в чужом коде ну тут напишу вашими словами "Знаю я таких программистов". Знаете когда пишут конфигурации специалисты 1С - знаеете там тоже иногда не ту логики, особенно касательно ранее вышедших конфигураций типа 1С УПП, торговля 10 и др. Это сейчас у них подход к написанию как то унифицировался и новые решения они уже более обдумано пишутся, но и то бывает встречаешь код типа по 10 раз одну и туже таблицу обходят и что то проверяют - но сам конечный результат он верен!
16. timeforlive 16 25.01.19 05:46 Сейчас в теме
(14) Вы оправдываете свою некомпетентность.
Таким образом, можно на любой вопрос отвечать простым ответом в стиле - правьте все руками в коде конфигурации.
Такие ответы - это не то, что изобретение велосипеда, а какого-то ненужного механизма.

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

Ну вот, исправил одного человека, остался еще один миллион (шутка).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот