Конфигурация — стандартная "Бухгалтерия для Казахстана", моим российским коллегам уточню что очень похожа на конфигурацию для России.
При формировании отчета "Карточка счета" нужно, чтобы пользователи кроме главбуха и расчетного бухгалтера просто не видели физических лиц.
После постановки задачи я начал думать какими инструментами это можно осуществить, и получилось два самых легких варианта:
1. Создать новую роль или просто в текущей роли убрать доступы на чтение информации по физическим лицам.
2. Попробовать организовать на том что есть механизмом ограничения прав доступа на уровне записей.
Так вот, я заинтересовался все-таки вторым способом.
Итак, механизм ограничения доступа на уровне записей и полей базы данных предоставлен для того чтобы уточнить, какие данные предоставлять пользователю для работы.
Органичения производятся по 4 основным правам:
Чтение
Добавление
Изменение
Удаление
Как же все таки делается ограничение? Так вот, оказывается для этого есть инструмент, похожий на язык запросов, в принципе это и есть язык запросов. Прописывается все в Роли пользователя, в специальной секции «Ограничение доступа к данным»
Так как я ранее не сталкивался с этим механизмом я решил поступить просто и эффективно в условия ограничения доступа к данным я добавил «ГДЕ ЛОЖЬ» для права «Чтение», и после этого пользователям присвоил это право, вот и все )
При формировании Карточки счета пользователи видят все, но те элементы, которые связаны с Физическими лицами обозначаются Как «Объект не найден» — впринципе такой расклад пока устраивает
Можете тоже попробовать сделать так, но сразу оговорюсь, если у пользователя есть право, которое позволяет Читать данные из справочника, то справочник будет доступен или группа, я просто тестировал.
Можно конечно усложнить условие, но пока что мне этого не нужно.
Кстати в условиях ограничения доступа к данным вы также можете быбирать какие поля конкретно ограничить — тоже удобная штука. Есть также удобный инструмент, который похож на конструктор запросов, он выделен на картинке тоже можете поэксперементировать.
Значит, появилась следующая задача:
Конфигурация — стандартная «Бухгалтерия для Казахстана», моим российским коллегам уточню что очень похожа на конфигурацию для России.
При формировании отчета «Карточка счета» нужно, чтобы пользователи кроме главбуха и расчетного бухгалтера просто не видели физических лиц.
Перейти к публикации
Наподобие делал с документами, ограничение по организации #Организация(«Организация»). К стати тоже с Алматы)))
(1) slavich, хорошо )
недостаток имхо в том, что если взять например счет где видно ЗП, то будет виден её размер, т.е в принципе видна ЗП руководителей, хотя конкретно не видно чья она.
(3) rasswet, я согласен, но если у вас есть другой вариант решения, я бы с радостью его рассмотрел
Тот же мехамнизм, но без создания/доработки роли:
1. нужно включить использование ограничения прав на уровне доступа
2. создать группу пользователей с одним видом объекта доступа — «Физические лица»
3. добавить в группу пользователей, которым запрещен доступ к физическим лицам
4. права к этой группе пользователей оставить пустыми
Пользователь такой группы не будет видеть ФЛ (только группы в справочнике), не будет видеть документы, непосредственно связанные с ФЛ. В оборотке и карточке счета, допустим, по 3350, будет видеть «объект не найден» и суммы.
Ужас.
1) так делать нельзя. Задача явно не для RLS. Какие ещё «Объект не найден»…
2) не статья а неправильное решение одной тривиальной задачи. К объяснению работы с RLS даже близко не приблизились
3) Механизм RLS сам по себе зло. И если есть хоть малейшая возможность его избежать — нужно избегать, а не вставлять куда не попади.
(0) Разве это похоже на статью? По-моему, как было замечено в (6), это
Более правильный вариант решения был предложен в (5). Если всем пользователям кроме двух необходимо ограничить доступ к определенной информации только в одном отчете, а все остальные права оставить как есть, то можно было бы попробовать внести изменения в сам отчет.
Вы убрали у пользователей доступ к справочнику ФЛ, а мб он им необходим для работы в базе, а Вас попросили для пользователей лишь ограничить получение информации по ФЛ в одном отчете?
И не проще ли было просто убрать галку «Чтение» вместо того, чтобы накладывать RLS?
Просить за это сбросить деньжат на кошелек? Да этой информации полно в интернете и в желтых книжках тоже, ничего нового…
(6) comol,
О да ужас — это хорошая эмоция ))
1. Так делать можно и задача явно для RLS — даже есть механизмы уже присутствующие в типовых конфигурациях
2. Решения бывают разными и каждый в меру своих возможностей и времени это делает. Если у вас есть другие варианты решения то милости просим. Работу RLS даже не пытался объяснить — для этого есть специальные курсы и лекции, да и можно найти море других источников, где правильным языком пишут что к чему.
3. Механизм не зло имхо. Избегать можно, но не всегда удобно это делать, да и времени можно потратить немало. Поставил код куда надо, если бы не туда поставил — думаю вообще бы не работало ничего ))
(7) Zigfridish,
Нет это не похоже на статью, более того писал его для простоты понимания, до кого не доходит — есть много других статей — могут и там почитать.
Если есть конкретное решение выкладывайте, милости просим как говорят
В (5) вариант решения в типовой конфигурации хорош, но я хотел обеспечить что — нибудь свое, чего нет в типовой конфигурации, тем более что это сделано не только для одного отчета, а используется и для объектов конфигурации, которые не являются типовыми.
Для того чтобы был доступ к физ лицам, например для вывода подписи, существуют другие команды, позволяющие это сделать (справка рулет)
Галку чтение убирать не проще, потому что права регулируются гибко
Про бабло — мы все хотим есть и хорошо жить — не правда ли, и я думаю сумма не сверхестественная — я б тоже закинул за информацию какому — нибудь программеру или разработчику, если бы мне сильно была интересна информация.
Да согласен информации много — каждый выбирает что ему подходит, а писал это не только для вас, а для себя в первую очередь. Да будет вам известно — нового вообще на инфостарте ничего нет.
И кстати, в вашей квалификации я сильно сомневаюсь
(9)
Странно, а в публикации написано совсем другое, в ней речь вроде бы шла только лишь об одном отчете…
На скрине в ограничении доступа по праву «Чтение» указано «ГДЕ ЛОЖЬ» — это равносильно тому, если бы вы просто сняли галку с этого права вот и все, и при этом никакого доступа к чтению информации по ФЛ вы не получите никакими «другими командами» (за исключением функционала, исполняемого в привилегированных модулях).
Про бабло — я вообще впервые вижу, чтобы в публикации просилось забросить денег на кошелек, если хотите заработать денег — для этого на сайте есть платные разработки, а просить денег за скудную информацию…
Судя по этой публикации можно сомневаться только лишь в вашей квалификации, но не в моей, я ничего подобного на сайте не публиковал =)
(8)
1) «покажите мне» «объект не найден» в УПП. 🙂
3) Если бы чуть «глубже» капнуть — поймёте. При использовании RLS запрос к СУБД становится не предсказуемым. Вы пишите ващ запрос а 1С туда добавляет RLS… Собственно далее вы не знаете что за запрос.. используятся там индексы или нет… есть вложенные запросы или нет. И вообще понятия не имеете сколько он будет выполняться по времени.
(11) comol, кстати у меня был такой случай, что у нескольких пользователей при проведении некоторых документов и формировании пары отчетов — зависала 1с, вываливалась критическая ошибка (писалось что-то типа «sql не поддерживает соединение более 256 таблиц») и всё, перезагрузка приложения, а причина оказалась в том, что этим пользователям было назначено несколько групп доступа по RLS, в связи с чем видимо к исполняющемся запросам 1с присобачило целую кучу соединений с другими таблицами и кирдык…
(11) comol,
1) смешно — «покажите мне» «объект не найден» в УПП. Ну у кого как фантазия и инструмент позволит организовать, конечно у меня не айс, но работает
3) Существует такое понятие — как проектная документация, — на этапе подготовки для реализации проекта все это дело просчитывается (там же экономическое обоснование)- и поверьте мне результат предсказуем. Конечно если писать от винта или на скорую руку, тогда результат будет такой же «винтовой» или «криворучный» все ведь зависит от рук разработчика. 1С Предприятие — развитая платформа разработки, поэтому что там происходит внутри разработчиков не должно интересовать — этим должны заниматься программисты, который и пишут оную 1С Предприятие.
Ну и наконец — хотелось бы спросить как бы вы организовали решение данной задачи, пожалуйста скажите уж больно интересно. Писать мы все можем о механизмах и прочим, но есть задачи, которые нам нужно решать, мы не должны спорить о механизмах как о лучшем или как о худшем — для каждой задачи нужно правильно выбрать решение. Думаю вопрос справедливый.
(10) Zigfridish,
Да, на момент написания упомянул только об одном отчете, но далее это все перешло и на другие объекты конфигурации
Цитата
На скрине в ограничении доступа по праву «Чтение» указано «ГДЕ ЛОЖЬ» — это равносильно тому, если бы вы просто сняли галку с этого права вот и все, и при этом никакого доступа к чтению информации по ФЛ вы не получите никакими «другими командами» (за исключением функционала, исполняемого в привилегированных модулях).
Да, указал «ГДЕ ЛОЖЬ» для более простого понимания ситуации, так как сам изрядно замучился с поиском информации по рлс, на самом деле этот запрос изменился:
Сейчас он выглядит так:
«#Если НЕ &СМ_ДоступКФизическимЛицам #Тогда
ГДЕ Ложь
#КонецЕсли»
Здесь СМ_ДоступКФизическимЛицам переменная сеанса, которая позволяет либо запрещает использование справочника, — Это то место где указано на картинки, далее идут немного другие запросы.
Про бабло, — я не работаю в фирмах франчайзи из принципа, а в частных компаниях подписываю договора о неразглашении и коммерческой тайне, по этой причине разработки мои масштабные в ближайшее время на инфостарте не появятся. Если я работаю в компаниях, то это не говорит о том что я хочу заработать, вообще я написал это из прикола — абы будет абы нет, так вот еще никто не удосужился — я вас обрадую.
Я считаю что информация не скудная, любой кто не сталкивался с механизмом, думаю пробежится по материалу и уже сможет самостоятельно что то сам добавлять в конфигурацию, а на форумах я встречал что то типо да зачем rls она замедляет работу и другую подобную флудовую ахинею, которая к сожалению стала и тут разводиться.
О квалификации, себя я не считаю асом, но то что я на практике попробовал вполне годится для многих моих разработок, то что у вас только одна публикация, ну это уж ваше дело. Если обидел чем извините.
Ну и вопрос само собой, вот мы много с вами спорим о том как я написал статью (RLS, бабло, скорость, правильность). Будьте так добры предложите свой вариант, это будет более конструктивно.
(14)
Проще было воспользоваться типовыми возможностями конфигурации по РЛС — группами доступа «Физические лица», чем создавать новый параметр сеанса и прописывать в модуле сеанса алгоритмы его установки, имхо
а РЛС действительно замедляет выполнение запросов, это не выдумки
Нет, вы меня ничем не обидели, мне просто лень публиковать то, что уже обсуждали много раз на форумах или разработано другими =)
см. (5) — наиболее оптимальный вариант и не надо ничего придумывать своего, именно им бы я и воспользовался и не пришлось бы вносить каких-либо изменений в конфигурацию
(16) comol, в публикации написано так, но после автор признается, что это было необходимо не только для одной «карточки счета»… в общем неправильно описана исходная задача =)
В данном случае с помощью СКД я думаю можно и без использования каких-либо групп обойтись — в вычисляемых полях использовать функцию «РольДоступна()».
(15) Zigfridish,
Типовые ограничения доступа КС3350
Итак, типовые ограничения доступа согласно (5)
Да это действительно та штука, которая казалось бы мне нужна, но:
1. Типовыми ограничениями геморно управлять, результат конечно такой же.
2. В моей же системе проще, в справочник просто добавляются пользователи.
3. Кроме того, я могу управлять в тех местах, где доступ нужен к физ-лицам, например в печатных формах.
4. Мои ограничения работают быстрее типовых
Есть и другие мелочи, которые описывать не буду, т.к. нет времени на это.
Скрин типовых ограничений в Карточке счета 3350:
(17) Zigfridish, (16) comol,
Да, в карточке счета действительно есть СКД, да, его подправить 5 минут, но благо пользователи у нас не дураки и курсы прошли сертифицированные, при открытии документов из карточки, конечно же высвечиваются фамилии тех кому начислили заработную плату, осталось еще в документах дописать по пять минут доступ к физ лицам ))))
1. Добавлен код в общий модуль «Общего назначения»:
Показать
2. Добавлен код (условие) в Вычисляемые поля отчета Карточка счета:
Для субконто дебета и аналогично для субконто кредита (СубконтоКт1)
Выкладываю скрины:
1. Отчет
2. Документ открывается и вуаля:
Единственно чем может помочь Ваш совет, так это тем что бы скрыть «Объект не найден», но стоит ли того?? если конфа типовая и обновляться приходится каждый квартал.
Есть еще предложения, просим милости.
(18) а в типовом механизме пользователям просто назначается соответствующая группа доступа ФЛ.
(19) как описано в публикации — речь шла только об одной карточке счета, именно для нее и было предложено использование средств СКД, а не РЛС.
В общем я думаю дискуссию можно считать закрытой, каждый сам выбирает — либо пользоваться типовыми механизмами (если они есть), либо писать свои собственные =)
(20) Zigfridish,
Конечно группами, по этому управляются не гибко
А Вы не думали о том что пользователь может открыть документ с Карточки??? в принципе 80% работы в этом и заключается, чтобы посмотреть цифры, а где неправильно подправить или просто посмотреть для детализации.
Это больше не дискуссия — а вопрос о том какой я идиот, написал неправильно статью, а еще попросил бабла за это, и что не предусмотрительно и опасно воспользовался СКД.
Согласен, что каждый может либо дописывать либо использовать то, что уже есть. То что есть — это стандарт общепринятый — типа «вот так должно работать». По моему опыту — еще ни одна фирма не обошлась без дописок типовой конфигурации.
Я думаю вопросов будет не мало, по этому считаю, что ветка еще актуальна, потому что такой дискусии уж точно в книжках и на желтых страницах не найти. Есть вопросы задавайте. Есть решения предлагайте. Милости просим.
(19) Задача сформулирована как закрыть доступ в отчете а не во всей конфе. Если закрыть доступ к физлицам то как-то не совсем логично оставлять доступ к документам. Но даже если во всей конфе надо закрыть доступ то сперва нужно сформулировать задачу доступ закрыть полностью (под страхом расстрела не должны увидеть) или хватит интерфейсного. И вот только если нужно полностью закрыть доступ на уровне БД и во всей конфе, вот только тут будет необходимость RLS, но естественно очень аккуратного и продуманного, а не как у вас «объект не найден»….
Есть 2 справочника «Районы» и «Службы», возможно ли по ним задействовать РЛС?
(24) JaroslavBayev, Да можно
(25) может вы тогда сможете ответить мне в теме:http://forum.infostart.ru/forum26/topic108732/message1119265/#message1119265
«Быбирать»?))