Источники запроса и права доступа


Для отчетов на СКД часто не хватает каких-либо прав на исполнение запроса. Или еще хуже, когда запрос в консоли под ограниченными правами выполняется, но СКД хочет право на просмотр регистраторов — в этом случае она теряет часть полей при выводе.

Приложенная обработка показывает таблицы базы данных, которые участвуют в запросе.

Для регистров собирает и выводит документы-регистраторы.

Можно задать пользователя конфигурации или роль, по которым будут показаны права (сортировка по праву на просмотр).

 

PS. Исправлена ошибка — перетащил функцию РазложитьСтрокуПоТочкамИСлэшам из общего модуля БСП в тело обработки.

Обработка годится только для платформ 8.3.5. Так как есть типы данных не существующие в 8.2.х 
Обработка содержит только управляемую форму

12 Comments

  1. Valland

    Полезная штука.

    Reply
  2. dj_serega

    Вот такая вонючка у меня вылезла.

    {Форма.Форма.Форма( 92 )}: Метод объекта не обнаружен (РазложитьСтрокуПоТочкамИСлэшам)
    МассивРазложения=ОбщегоНазначенияКлиентСервер.РазложитьСтрокуПоТочкамИСлэшам(СтрокаТЗ.Имя);

    Обработка НЕ универсальная. Что есть плохо.

    Reply
  3. Synoecium

    Как то задумывался такую написать, но раз руки не дошли возьму эту)

    Не думали над тем, чтобы анализировать СКД отчета и по ней получать список таблиц источников?

    Reply
  4. unknownN

    действительно очень удобная штука.

    Reply
  5. unlogic

    (3) Synoecium, Я делаю так: беру Консоль системы компоновки данных (есть на диске ИТС), рисую отчет в режиме предприятия.

    Добавляю отборы, сортировки т.д. (те данные которые СКД добавит в результирующий запрос).

    Затем в Консоли во вкладке Макет для коллекции XML после заголовка «<dataSource>ИсточникДанных1</dataSource><query>» выдергиваю себе текст результирующего запроса.

    Естественно, для разных включенных отборов текст будет разный.

    Reply
  6. It-developer

    интересная идея

    Reply
  7. dj_serega

    А вот и еще одна «фича» вылезла 🙂

    {Форма.Форма.Форма( 275 )}: Поле объекта не обнаружено (Что-то)
    СтрокаТз.Чтение=ПравоДоступа(«Чтение»,Метаданные[СтрокаТз.Тип][СтрокаТз.Регистратор],КримВ);

    После анализа выяснилось что нет проверок на Бизнес-Процессы и задачи ;(

    Reply
  8. unlogic

    (7) dj_serega, кстати, да

    Reply
  9. sergei198821

    Автор, добавьте пожалуйста в описание, что обработка годится только для платформ 8.3.5. Так как есть типы данных не существующие в 8.2.х

    И то что обработка содержит только управляемую форму

    Reply
  10. jobkostya1c8

    За идею сразу же большой плюс. Это сущая морока отлаживать все что касается прав доступа. Тем более если десятиэтажный запрос типовой конфигурации. Про ЗУП вообще молчу. Посмотрим, пригодится ли?

    Reply
  11. SeiOkami

    Высыпается с ошибкой «Поле объекта не обнаружено (ТаблицаДляПомещения)»

    Reply
  12. unlogic

    Добрый день. Сейчас излазил всё вдоль и поперек, в тонком и толстом клиенте, на разных платформах от 8.3.10.2299 и выше — всё работает.

    Не могли ли бы Вы дать номер строки, где возникает ошибка?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *