1с программирование помощь с расширением

1. user2127992 05.03.25 10:04 Сейчас в теме
Добрый день. Есть расширение, в его модуле прописана процедура
&После("ПриНачалеРаботыСистемы")
Процедура РасчетСроковИТС_ПриНачалеРаботыСистемы() Экспорт
	
		Если 1 = РасчетСроковИТС.РасчетСроковИТС() Тогда
			Предупреждение("Присутствуют клиенты у которых заканчивается срок договора! По ним будет сформирован отчёт!");
		    ОтчетФорма = ПолучитьФорму("Отчет.ОтчетПоСрокамИТС.Форма");
		    ОтчетФорма.СкомпоноватьРезультат();
		    ОтчетФорма.Открыть();
		КонецЕсли;
КонецПроцедуры
Показать


Необходимо чтобы эта процедура возникала только у пользователей, у которых есть доступ к этому расширению. Сейчас она возникает у всех.

Есть вариант решения через проверку пользователей
ТекущийПользователь=ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
Если ТекущийПользователь = "Петунина_Е" ИЛИ ТекущийПользователь = "НазаровДО" тогда
	//Какой то код
КонецЕсли;


Вопрос такой, может есть вариант решения лучше, не через этот костыль?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. RustamZz 05.03.25 10:26 Сейчас в теме
(1)
РольДоступна("РасчетСроковИТС_ОсновнаяРоль")
skeptik2105; +1 Ответить
4. Bukaska 148 05.03.25 10:38 Сейчас в теме
(1)
Если Не РольДоступна("НазваниеРоли")
		И Не РольДоступна("ПолныеПрава") Тогда
	
	    ВашаПроцедура(Отказ);	
	
	КонецЕсли;	


Я так проверяла цены.. что цену внести ниже розничной мог только администратор
2. GeraltSnow 205 05.03.25 10:26 Сейчас в теме
Можно создать дополнительный реквизит с типом булево для справочника Пользователи и ориентироваться на его значение перед выводом отчета.
5. skeptik2105 05.03.25 10:43 Сейчас в теме
(2) И потом на каждом проекте сидишь и гадаешь, каким же "инновационным" образом проверяют роли...
Кто-то создал доп. реквизит, кто-то обычный реквизит, кто-то доп. сведение, кто-то группу пользователей, кто-то отдельный регистр, кто-то додумался использовать роли исполнителей. Особо одаренные могли создать константу с ХранилищемЗначений и хранить там таблицу нужных пользователей... И все эти варианты будут работать.

Как и указали выше, лучше реализовывать через роли.
РольДоступна("РасчетСроковИТС_ОсновнаяРоль")
6. GeraltSnow 205 05.03.25 11:40 Сейчас в теме
(5)
лучше реализовывать через роли


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

Для хранения функциональных настроек пользователей использование подсистемы дополнительных реквизитов или своего регистра сведений на мой взгляд более удобно.
Оставьте свое сообщение

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