Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Подписка на событие для отчетов , Проверка на пользователя для открытия формы отчета          
Talkman Подменю пользователя
сообщение 25.04.23, 14:58
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 189
Из: Черкассы
Спасибо сказали: 9 раз
Рейтинг: 9

Добрый день. Стоит задача сделать интерактивную возможность разрешать/запрещать пользователям открывать различные отчеты. Думал сделать данный функционал через подписку на событие и проверку по справочнику, куда вносить данные по названию отчета и перечню пользователей с доступом. 1С 8.3.16.1659 УТ 2.3. В перечне подписок на событие есть событие ОтчетМенеджер.ОбработкаПолученияФормы. По смыслу вроде как подходит. При получении формы проверяю можно или нет пользователю открывать отчет и соответственно даю добро на открытие формы или нет. Но при отладке открытия отчета 1С-ка не прыгает в процедуру, описанную в обработчике. Где я просчитался и правильная ли моя логике в принципе?

Vofka Подменю пользователя
сообщение 26.04.23, 8:29
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Могу предположить, что этот обработчик срабатывает только для объектов, у которых есть разные виды форм: форма объекта, форма списка, форма выбора. Другими словами, это те объекты, которые можно как-то показывать. А отчет или, например, обработку нельзя показать в виде списка (не бывает список отчетов) или сделать так, чтобы отчет выбирался в какое-то поле ввода.

sava1 Подменю пользователя
сообщение 26.04.23, 8:52
Сообщение #3

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(Talkman @ 25.04.23, 15:58) *
Но при отладке открытия отчета 1С-ка не прыгает в процедуру


отладка на сервере включена?
это серверная процедура

а как запретить открытие формы? там должна выскакивать ошибка о невозможности работы ...

andreydv87 Подменю пользователя
сообщение 26.04.23, 9:36
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 108
Спасибо сказали: 24 раз
Рейтинг: 22.3

Не уверен, что через подписку получится. Надо делать через "Права доступа" и "Роли".
Проанализируйте у кого какие роли включены, запретите этим ролям доступ к отчетам.
А потом создайте новую роль и дайте доступ к отчетам, тогда Вы сможете включить эту роль у конкретного пользователя.

Talkman Подменю пользователя
сообщение 26.04.23, 14:42
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 189
Из: Черкассы
Спасибо сказали: 9 раз
Рейтинг: 9

andreydv87 @ Сегодня, 10:36 * ,
Слишком много ролей прийдется создавать для различных отчетов.
Сейчас сделал в процедуре ПередОткрытием вызов функции поиска справочника с реквизитом имени отчета, смотрю есть ли там открывающий отчет пользователь и возвращаю Ложь или Истина. Минус в том, что для всех отчетов нужно прописывать процедуру перед открытием. Что то типа такого.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Отказ = УправлениеОтчетами.ОграничениеДоступаПользоватем(ЭтотОбъект);
    Если Отказ Тогда
        Предупреждение("Отказано в доступе!")  
    КонецЕсли;
КонецПроцедуры


Функция ОграничениеДоступаПользоватем(Объект) Экспорт

    Отчет = Объект.Метаданные().Имя;
    Доступ = Справочники.ДоступыКОтчетам.НайтиПоРеквизиту("Отчет",Отчет);
    ТекПользователь = ПараметрыСеанса.ТекущийПользователь;
    
    Если НЕ Доступ.Пустая() Тогда
        Для каждого ЗапП Из Доступ.Пользователи Цикл
            Если ЗапП.Пользователь = ТекПользователь Тогда
                Возврат Ложь;          
            КонецЕсли;             
        КонецЦикла;
        Возврат Истина;
    КонецЕсли;
    
    Возврат Ложь;

КонецФункции //



Спасибо сказали: andreydv87,

andreydv87 Подменю пользователя
сообщение 26.04.23, 19:01
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 108
Спасибо сказали: 24 раз
Рейтинг: 22.3

Talkman @ Сегодня, 15:42 * ,
Можно и так, но это не красиво.

При обновлении не затереть, если сотрудник уволится, то новому сотруднику надо будет выставить права (также как и с ролями)
если будет новый отчет добавлен, то тоже не забыть...

Если этого всего нету, то можно и так.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 19:18
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!