Продвинутый курс. Домашнее задание №4

Эта запись посвящена 2-му потоку продвинутого курса по программированию.
Четверное задание по 0-му блоку продвинутого курса.

Для выполнения рекомендуется изучить следующие главы 0-го курса.
Глава 21. Права доступа.
Глава 22. Анализ и прогнозирование данных.

В этой же теме необходимо написать отчет о выполнении задания.

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.

комментариев 105 на “Продвинутый курс. Домашнее задание №4”

  1. Верховцев Николай 30.01.2013 в 12:09

    1. создал роль Аудитор и дал ему только чтение справочников и документов, убрал “вывод” в “корне” роли
    2. Создал регистр сведений в 2мя измерениями: пользователь (синхронизацию пользователей ИБ и справочника сделана) и номенклатурная группа.
    3. Создал шаблон rls который описывает список запрещенных номенклатурных групп, который в свою очередь сравниваю с группами в табличной части “Товары” документов.
    4. Для руководителей был сделан флаг в справочнике пользователей и параметр сеанса, который также анализирую в ограничениях доступа

  2. Сделано. с RLS помучался…

  3. Задание выполнила.

  4. Выполнил. Были небольшие трудности с RLS запросом на документы, остальное расписано в уроках.

  5. ДЗ № 4 сделала

  6. Задание выполнила.

  7. Евгений Пехов 23.11.2010 в 09:02

    Сделано.
    Сложностей не возникло с первой частью.
    Пользователю Аудитор добавил новую роль с правами  Просмотр и Чтение.
    Со второй частью сложнее а именно работа c RLS.не удобно с ними работать запросы не отладить нормально, может с опытом пройдет.
    так же понадобилось создавать: роль менеджер,
    Справочник Пользователи, синхронизировать его,
    РегистрСведений для соответствия групп Номенклатуры и Пользователя,
    ПараметрСеанса который хранит Текущего Пользователя и используется при настройке доступа. пригодились знания базового курса)
    Ушел смотреть решение мастера)
     

  8. Задание выполнил.
    1.  Создал роль аудитор и дал ей права на просмотр и чтение. Все как в видиоуроках.
    2. Тут оказалось сложнее. Создал справочник Пользователи, регистр сведений ДоступКНоменклатуре, параметры сеанса ДоступКНоменклатуре и Пользователь.  Создал ограничение на справочник Номенклатуры с использованием шаблона и инструкций препроцессора. Проблем с ним не возникло. А вот с ограничение документов пришлось повозиться.  Самому оказалось сложно в этом разобраться – сказываються пробелы по основному курсу :((. Пришлось воспользоваться разбором вариантов решения описываемые участниками группы.

  9. Александр Горлов 21.11.2010 в 03:40

    Да, совсем забыл. Для пользователей завел справочник Пользователи. Признак руководителя отдела – булевый реквизит этого справочника. Для оптимизации запросов создан параметр сеанса РуководительОтдела, который используется в инструкциях препроцессору в запросе.
    В комментариях коллег я видел использование конструкции ИЛИ, но для 8.2 она будет неоптимальна, поскольку запрос все равно будет выполняться и тормозить систему, хотя прав проверять не нужно. В 8.1 инструкций препроцессору в запросах РЛС не было, так что пользуемся новыми “фишками”, коллеги!

  10. Александр Горлов 21.11.2010 в 03:35

    ДЗ выполнено.
    Пользователю Аудитор дан набор ролей, в котором нет права “Вывод” для конфигурации.
    Менеджерам разграничен доступ по ном. группам.
    Номенклатурные группы – справочник. Используется как реквизит справочника Номенклатура для разграничения номенклатуры по группам доступности. Также является измерением регистра сведений Номенклатурные группы менеджеров для указания правил разграничения по менеджерам (вместе с измерением Менеджер). В точности как в примере по контрагентам в видеоуроках!
    НО! Разграничение по документам вышло очень громоздким… Пришлось разрабатывать запрос с вложенными подзапросами по такому алгоритму:
    1. Соединяем таблицы регистра и табличной части документа – получаем записи, где менеджер либо текущий, либо (если права нет)
    2. Из таблицы п.1 отбираем записи, менеджер у которых NULL  – получаем список запрещенных документов.
    3. Для анализируемой таблицы ставим условие, что ее записи НЕ В таблице п.2
    А кто подскажет, можно ли как-то соединить таблицы, чтобы обойтись без ресурсоемкой конструкции НЕ В ?

  11. Александр Горлов 21.11.2010 в 02:28

    Очень неудобно то, что в конструкторе запросов нельзя редактировать кусочки текста ограничения, заключенные между инструкциями препроцессора.
    Часто инструкциями определяется нужно ли вообще проверять права. Или в одном случае проверять одним запросом, а в другом случае – другим. Так бы выделил кусок текста, нажал правой кнопкой – и редактируй выделенный фрагмент как текст запроса.
    Может, обратиться к разработчикам? В поле произвольного выражения ведь так можно делать!

    • Разработчики наверняка знают об этом неудобстве.
      Полагаю, что они не считают это критичной проблемой..

  12. Александр Горлов 21.11.2010 в 00:42

    Насчет роли Аудитор. Понятно, что для выполнения ДЗ нужно не давать роли пользователя право “Вывод” для конфигурации. Вот только вопрос: а разве блокируется при этом программный вывод в файл? Например:

    Выполнение обработки, которая получает информацию из ИБ и пишет ее во внешний файл.
    Сохранение сформированного табличного документа в файл программным способом (при том, что интерактивные кнопки, в т.ч. копирование в буфер, право “Вывод” блокирует)

    • Программный вывод не блокируется.
      Но, кажется, система не должна содержать таких функций, а запуск внешних обработок должен быть запрещен.

  13. Александр Горлов 21.11.2010 в 00:37

    При работе с РЛС столкнулся с проблемой: в конструкциях #Если #Тогда (возможно и вообще в запросах РЛС) нельзя обращаться к свойствам параметров. Так, если есть параметр сеанса ТекущийПользователь типа справочник ссылка Пользователи, а у справочника есть булевый реквизит РуководительОтдела, то обращение в запросе
    #Если &ТекущийПользователь.РуководительОтдела #Тогда…
    приводит к ошибке. В обычных же запросах обращение к свойствам параметров допускается.
    Это связано с заботой о быстродействии запросов РЛС? Можно ли как-то иначе обратиться в запросе к признаку пользователя, не создавая новых объектов (нового параметра сеанса, например) и не ухудшая быстродействие запроса РЛС?
    P.S. Способ (&ТекущийПользователь).РуководительОтдела также приводит к ошибке.

    • >Это связано с заботой о быстродействии запросов РЛС?
      Полагаю, что именно поэтому.
      Единственный вариант – определять еще один параметр сеанса.

  14. CreativeGroup 19.11.2010 в 12:48

    Домашнее задание выполнено.
    1)      По первому пункту всё просто. Создал роль «Аудитор», в корне оставил возможность запуска тонкого ,толстого и веб-клиента . Для прикладных объектов-  право на Чтение и Просмотр .
    2)      С rls опыта работы совсем мало, поэтому пришлось немного потрудиться, чтобы выполнить данный пункт дз. Но в итоге работает, но вряд ли оптимально. Создал справочник «Номенклатурные группы», связал его с номенклатурой через реквизит  и добавил регистр сведений «СвязиМенеджеровСНоменклатурнымиГруппами» с измерениями «Пользователь» и «НоменклатурнаяГруппа». Далее создал параметр сеанса «Пользователь», который заполнял в модуле сеанса, и роль «Менеджер» , в котором и были прописаны ограничения прав доступа на уровне записей. Возникли проблемы с формированием шаблонов. Хотелось изначально обойтись без параметров, но не удалось обратиться к ТЧ документа строкой «#ТекущаяТаблица.Товары». Возможно это было связано с тем, что обращение происходило во вложенном запросе (.

  15. ДЗ №4
    1.роль Аудитор – в корне доступ на Тонкого, Толстого клиентов, далее – права на просмотр и чтение прикладных объектов.
    2.Добавил спр. НоменклатурныеГруппы, реквизит НоменклатурнаяГруппа в спр. Номенклатура, Спр. Пользователи, параметр сеанса ТекущийПользователь, регистр сведений НоменклатурныеГруппыМенеджеров, роли менеджер, руководительотдела.
    Для роли менеджер настроил рлс. Для спр. Номенклатуры запрос на ограничение
    Номенклатура ИЗ Справочник.Номенклатура КАК Номенклатура
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатурныеГруппыМенеджеров КАК НоменклатурныеГруппыМенеджеров
                ПО Номенклатура.НоменклатурныеГруппы = НоменклатурныеГруппыМенеджеров.НоменклатурнаяГруппа
                            И (НоменклатурныеГруппыМенеджеров.Менеджер = &ТекущийПользователь)
    ГДЕ ЕСТЬNULL(НоменклатурныеГруппыМенеджеров.НоменклатурнаяГруппа, “пусто”) <> “пусто” или Номенклатура.этогруппа
    Для документов использовал шаблон:
    #ТекущаяТаблица ГДЕ Не #ТекущаяТаблица.Ссылка В
                                       (ВЫБРАТЬ Различные
                                                   ДокТовары.Ссылка
                                       ИЗ
                                                   Документ.#Параметр(1).Товары КАК ДокТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатурныеГруппыМенеджеров КАК НоменклатурныеГруппыМенеджеров
                                                               ПО
                                                                          ДокТовары.Номенклатура.НоменклатурныеГруппы = НоменклатурныеГруппыМенеджеров.НоменклатурнаяГруппа
                                                                                      И НоменклатурныеГруппыМенеджеров.Менеджер = &ТекущийПользователь
                                       ГДЕ
                                                   ЕСТЬNULL(НоменклатурныеГруппыМенеджеров.НоменклатурнаяГруппа, “Пусто”) = “Пусто”)
     

  16. Андрей Антипенко 18.11.2010 в 11:16

    Задание выполнено.
    Первая часть без проблем.
    Со второй пришлось повозиться в области запроса и его отладки/тестировании.
    p.s. просто задумался – насколько грубой ошибкой было бы указывать доступные Ном. группы в табличной части справочника “Пользователи”.

  17. Выполнил.
    Часть 1. Аудитор, действительно, имеет возможность скопировать информацию в буфер обмена.
    Правда, в табличном документе при выделении нескольких ячеек, команда Копировать становится недоступной.
    То есть, можно копировать только по одной ячейке.
    В табличных частях документов есть возможность выделить все, но в буфер копируется только текущий столбец.
    Ну, и в реквизитах форм команда Копировать доступна.

    Часть 2. Новые объекты: Справочник НоменклатурныеГруппы, реквизит НоменклатурнаяГруппа справочника Номенклатура,  справочник Пользователи с реквизитом ОграниченныйДоступКНоменклатуре (булево),  параметры сеанса: ТекущийПользователь, ОграниченныйДоступКНоменклатуре,  регистр сведений ДоступПоНоменклатуре, с измерениями: Пользователь , НоменклатурнаяГруппа.
    Текст запроса на справочник Номенклатура:
    #Если &ОграниченныйДоступКНоменклатуре #Тогда
    Номенклатура ИЗ Справочник.Номенклатура КАК Номенклатура ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДоступПоНоменклатуре КАК ДоступПоНоменклатуре ПО Номенклатура.НоменклатурнаяГруппа = ДоступПоНоменклатуре.НоменклатурнаяГруппа И ДоступПоНоменклатуре.Пользователь = &ТекущийПользователь ИЛИ ЭтоГруппа #КонецЕсли         
    Для документов использовал Шаблон:
    #Если &ОграниченныйДоступКНоменклатуре #Тогда
    #ТекущаяТаблица ГДЕ (НЕ #ТекущаяТаблица.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ДокНоменклатура.Ссылка ИЗ #Параметр(1) КАК ДокНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДоступПоНоменклатуре КАК ДоступПоНоменклатуре ПО ДоступПоНоменклатуре.Пользователь = &ТекущийПользователь И ДокНоменклатура.Номенклатура.НоменклатурнаяГруппа = ДоступПоНоменклатуре.НоменклатурнаяГруппа ГДЕ ДоступПоНоменклатуре.НоменклатурнаяГруппа ЕСТЬ NULL)) #КонецЕсли

  18. ДЗ 4 выполнено. Для роли Аудитор выставлены права Просмотр  и Чтение. Разрешен доступ тонкий, толстый, веб клиенты. все остальные права сняты права, в том числе и  на Вывод.
    Для реализации 2 части добавлен справочник НоменклатурныеГруппы,  регистр сведений НаправленияМенеджеров. У справочника Номенклатура добавлен реквизит НоменклатурнаяГруппа соответствующего типа .Справочник Пользователи вводить не стал – использовал Физические лица – в нем добавил реквизит Идентификатор – для синхронизации по уникальному идентификатору пользователя, и булевский РуководительОтдела. Параметры сеанса ТекущийПользователь и РуководительОтдела заполняются в модуле сеанса.
    RLS права настроены для введеной роли менеджер. Для документов получилась конструкция вида Документ.Товары.Номенклатура.НоменклатурнаяГруппа #Номенклатурный
    В шаблоне Номенклатурный реализована проверка на невхождение номенклатурных групп товаров в таб части в запрещенный для менеджера список групп из регистра сведений. Для справочника номенклатура – проверка его номенклутурной группы на разрешенность.

  19. Выполнено. Особых сложностей не возникло.
    Пользователю Аудитор назначил права Просмотр и Чтение.
    Для разделения менеджеров по направлениям, создал роль менеджер, Справочник Пользователи, РегистрСведений для хранения соответствия групп Номенклатуры и Пользователя который ими управляет, и ПараметрСеанса который хранит Текущего Пользователя и используется при настройке доступа. Дальше запрос. поэкспериментировал с #Шаблоном и #Параметром.

  20. 1.Для пользователя Аудитор создал Роль ТолькоПросмотр.
    Странное поведение системы при установке флага Просмотр,Чтение у Констант проставляются остальные флаги Изменение, Редактирование релиз 8.2.12.96
    У остальных объектов конфы проставил Просмотр,Чтение
    2. Возникли трудности с rls
    В ограничение доступа условие выдает ошибку Неверные параметры на Значение(Перечисление.ПродуктовоеНаправление.Бакалея)
     
     
     

    • >Странное поведение системы при установке флага Просмотр,Чтение у Констант
      А ведь у остальных объектов точно такое же поведение.
      Системе предполагает, что если у пользователя есть право на интерактивный просмотр, то и программное чтение нужно разрешить. Это логично.
      Однако, вы можете и снять Чтение.

  21. Здравствуйте, задание выполнил
    Первый пункт
    Добавляем роль Аудитор, на корне конфигурации оставляем права только на клиентов (галочка Вывод и Интерактивные открытия сняты)
    На объекты оставляем права только на Просмотр
    Второй пункт
    Добавляем справочник Пользователи (с реквизитом Руководитель(Булево))
    Параметры сеанса – ТекущийПользователь (Спр.Пользователи), МенеджерРуководитель (Булево); Инициализируются в модуле параметров сеанса..
    Регистр сведений – НоменклатурныеГруппыМенеджера (измерения – Пользователь, НоменклатурнаяГруппа)
    Шаблоны на справочники –
    (#ТекущаяТаблица.#Параметр(1) В
    (ВЫБРАТЬ
    НомГруппы.НоменклатурнаяГруппа
    ИЗ
    РегистрСведений.НоменклатурныеГруппыМенеджера КАК НомГруппы
    ГДЕ
    НомГруппы.Пользователь = &ТекущийПользователь))
    (проверка на Руководителя ставится вне шаблона)
    Шаблоны на документы –
    #Если НЕ &МенеджерРуководитель
    #Тогда
    #ТекущаяТаблица ГДЕ (НЕ #ТекущаяТаблица.Ссылка В
    (ВЫБРАТЬ
    ТабДок.Ссылка
    ИЗ
    Документ.#Параметр(1).Товары КАК ТабДок
    ГДЕ
    (НЕ ТабДок.Номенклатура.НоменклатурнаяГруппа В
    (ВЫБРАТЬ
    НомГруппы.НоменклатурнаяГруппа
    ИЗ
    РегистрСведений.НоменклатурныеГруппыМенеджера КАК НомГруппы
    ГДЕ
    НомГруппы.Пользователь = &ТекущийПользователь))))
    #КонецЕсли
    Здравствуйте, задание выполнил
    Первый пункт
    Добавляем роль Аудитор, на корне конфигурации оставляем права только на клиентов (галочка Вывод и Интерактивные открытия сняты)На объекты оставляем права только на Просмотр 
    Второй пункт
    Добавляем справочник Пользователи (с реквизитом Руководитель(Булево))Параметры сеанса – ТекущийПользователь (Спр.Пользователи), МенеджерРуководитель (Булево); Инициализируются в модуле параметров сеанса..Регистр сведений – НоменклатурныеГруппыМенеджера (измерения – Пользователь, НоменклатурнаяГруппа)
    Шаблоны на справочники -(#ТекущаяТаблица.#Параметр(1) В (ВЫБРАТЬ НомГруппы.НоменклатурнаяГруппа ИЗ РегистрСведений.НоменклатурныеГруппыМенеджера КАК НомГруппы ГДЕ НомГруппы.Пользователь = &ТекущийПользователь))(проверка на Руководителя ставится вне шаблона)
    Шаблоны на документы – #Если НЕ &МенеджерРуководитель #Тогда#ТекущаяТаблица ГДЕ (НЕ #ТекущаяТаблица.Ссылка В (ВЫБРАТЬ ТабДок.Ссылка ИЗ Документ.#Параметр(1).Товары КАК ТабДок ГДЕ (НЕ ТабДок.Номенклатура.НоменклатурнаяГруппа В (ВЫБРАТЬ НомГруппы.НоменклатурнаяГруппа ИЗ РегистрСведений.НоменклатурныеГруппыМенеджера КАК НомГруппы ГДЕ НомГруппы.Пользователь = &ТекущийПользователь))))#КонецЕсли

  22. Хоть  галочку “вывод” снял.. но копирование в буфер отчетов возможно.  Вторая часть через регистр сведений и параметры сеанса. + на практике пришлось реализовать вариант : для каждого компьютера(определяю по имени компьютера)  выводить только определенный склад для роли Кассир и Администратор магазина. Все получилось все довольны :)
     

  23. 1. Для аудитора – роль  на чтание и просмотр.
    А, что бы пальчики не скрещивать в файловом варианте, подключить его через терминал. (не надо поднимать сервер для 1 сессии) .
    2. В спр.Номенклатура создал предопределённые папки Парфюмерия и Бакалея.  ПараметрыСеанса.Пользователь = ИмяПользователя, РегистрСведений Измерения: Пользователи и ГруппыНоменклатуры.  Связал всё это запросом.  (не Айс но максимально просто)

    • >А, что бы пальчики не скрещивать в файловом варианте, подключить его через терминал.
      Кажется, что хитрому пользователю это не помеха.

  24. С аудитором вроде все нормально – может исключительно любоваться базой…
    Для реализации возможности разделения менеджеров по направлениям создал спр. пользователей, НГ, РС “НаправленияМенеджеров” и два параметра сеанса “ТекущийПользователь” и “ЗапрещенныеНаправленияМенеджера”. При установке параметров сеанса анализируется список разрешенных направлений из РС и в параметры сеанса отдаются все кроме разрешенных + НоменклатурныеГруппы.ПустаяСсылка. Соответственно в RLS опираюсь на “ЗапрещенныеНаправленияМенеджеров”. Для руководителей отделов достаточно не задавать направления в РС и они получают FullControl (при инициализации сеансов, если в РС нет информации о направлениях, то и запрещенные направления не заполняются). Т.о. если в документе встречается номенклатура с номенклатурной группой разрешенной и не разрешенной, то документ не отображается в списке. Если в документе присутствует номенклатура только с  разршенной НГ, то док. отображается.

  25. С задержкой… Но выполнил. Затруднений не возникло. Приятно что познакомился с RLS, а то все руки не доходили, а наскоком не получалось понять что там и как :)
    С аудитором все просто, с RLS в принципе тоже. В параметре сеанса устанавливал пользователя, в РС хранил возможные группы для пользователя – от этих данных и отталкивался в шаблоне ограничений.

  26. Шумаев Алексей 14.11.2010 в 17:04

    2. Создал объекты: спр. “Номенклатурные группы”, реквизит в спр. “Номенклатура”, рег.сведений “ДоступПользователейКНоменклатуре”, роль “Менеджер”. У роли “Менеджер” настроил RLS у справочников, документов, регистров накопления.
     
    У документов использовал шаблон:
    Док ИЗ #ТекущаяТаблица КАК Док
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДоступПользователейКНоменклатуре КАК ДоступПользователейКНоменклатуре
    ПО (ДоступПользователейКНоменклатуре.Пользователь = &ТекущийПользователь)
    И ((НЕ Док.#Параметр(1).Номенклатура.НоменклатурнаяГруппа <> ДоступПользователейКНоменклатуре.НоменкатурнаяГруппа))
     
    У регистров использовал шаблон:
    Док ИЗ #ТекущаяТаблица КАК Док
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДоступПользователейКНоменклатуре КАК ДоступПользователейКНоменклатуре
    ПО (ДоступПользователейКНоменклатуре.Пользователь = &ТекущийПользователь)
    И ((НЕ Док.#Параметр(1).Номенклатура.НоменклатурнаяГруппа <> ДоступПользователейКНоменклатуре.НоменкатурнаяГруппа))
     
    Возникла сложность, как обработать ситуацию. Согласно заданию документ, у которого в табл. части присутствует хоть одна позиция номенклатуры, не принадлежащая менеджеру, выводится не должен. В форме списка регистра накопления есть колонка “Регистратор”. Получается, что записи “смешанного” документа отображаются, но в графе Регистратор видим только GUID. Некрасиво получается (((

  27. Шумаев Алексей 14.11.2010 в 17:04

    1. Создал роль Аудитор – доступ на запуск Тонкого, Толстого клиентов, на просмотр подсистем, доступ на чтение и просмотр прикладных объектов.
    По поводу изъятия информации обнаружил брешь в системе. Казалось бы вопрос решается снятием флага “Вывод”. Но, если мы создадим новый текстовый (табличный документ). Занесем в него информацию, например через Copy-Paste. В меню Файл команда “Сохранить” не доступна, но при закрытии документа система задает вопрос о сохранении нового документа. Отвечаем “Да”. Файл сохраняется на диске!!!
     

    • Волшебство, действительно сохраняется :)
      Передадим разработчикам, посмотрим что ответят..

  28. Добрый вечер!
    Задание выполнил.
    1. Добавил и настроил соответствующую роль для доступа.
    2. Создал соответствующий справочник, параметр сеанса, регистр сведений. Для справочника номенклатуры и тех объектов, где номенклатура в “шапке” все просто. Немного пришлось помучиться с документами, но в результате получился запрос с подзапросом, который ограничивал смешанные документы в том числе.
    3. Добавил соответствующую роль.

  29. Домашнее задание выполнил.
    С первой частью проблем не возникло. Добавил роль с ограничениями.
    Со второй частью пришлось помучиться. Добавил справочники “Пользователи”, и Группы доступа. В последнем указываются пользователи входящие в эту группу и папки справочника номенклатура доступные для них, в р.с. хранятся руководители.
    Добавил два параметра сеанса ЭтоРуководитель и ДоступныеГруппы (фиксированный массив). С помощью шаблонов ограничил доступ к справочникам, документам, р.н.
    Для руководителей использовал инструкции препроцессора.
    Обратил внимание, что (В ИЕРАРХИИ) в ролях не работает даже во вложенных запросах.
    PS самое неприятное было, когда вроде отбор в РН заработал, увидел что отбора по номенклатуре не достаточно (в колонке “Регистратор” – ссылка не найдена :( )

  30. Задание выполнил.
    Аудитор – создал новую роль, все дал только на просмотр, отключил право вывода, внешние обработки …
    Вторая часть – создал справочники номенклатурные группы, пользователи, РС по доступу, ввел параметры сеанса Пользователь и руководитель отдела, далее автоматическое заполнение справочника пользователи инициализация параметров сеанса и настройка шаблонов по доступу, помучился с доступом к документу в результате получился шаблон #ТекущаяТаблица ГДЕ (НЕ #ТекущаяТаблица.Ссылка В
        (ВЫБРАТЬ
         Док.Ссылка
        ИЗ
         Документ.#Параметр(1) КАК Док ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураДоступ КАК НоменклатураДоступ
          ПО
           Док.Номенклатура.НоменклатурнаяГруппа = НоменклатураДоступ.НоменклатурнаяГруппа
        ГДЕ
         НоменклатураДоступ.НоменклатурнаяГруппа ЕСТЬ NULL )) или &РуководительОтдела

  31. Константин Павленко 13.11.2010 в 12:45

    Задание № 4 выполнено. По первой части проблем нет. Создаем роль “АудиторТолькоЧтение”, по конфигурации только права: Тонкий клиент, Веб-клиент, Толстый клиент. По остальным объектам: Чтение, Просмотр. Не был уверен надо ли снимать “Интерактивное открытие внешних отчетов “, “Интерактивное открытие внешних обработок”. Подобный механизм используется в типовых конфигурациях, когда Внешние отчеты и обработки хранятся в реквизите типа “ХранилищеЗначения”. Проверил на УПП – не обманули :) Интерактивное – значит именно интерактивное. При снятом праве на интерактивный запуск он не проиисходит, но из справочника отчет можно открыть.
    По второй части сложнее. Очень не хватает возможности консольной отладки запросов с присоединенным RLS. Возможно, такие инструменты существуют, но пока не использовал. Сначала создается “обвязка”: Справочник Пользователи с автоматическим дозаполнением, соответствующий параметр сеанса, Справочник Номенклатурные группы, независимый регистр сведений ДоступПользователейКНоменклатурнымГруппам. С помощью уроков и подсказок коллег шаблон доступа построил, но не уверен, что оптимально. Вроде работает, но буду ждать эталонного решения. В RLS я не силён, поэтому выкладывать код воздержусь.