Простой доступ только для чтения [Запрет редактирования документов/справочников/регистров сведений/... ]

15.08.12

База данных - Инструменты администратора БД

Нужно предоставить кому-либо доступ к базе в режиме только-просмотр. Новый сотрудник на испытательном сроке, или же аудиторы-проверщики. Легкий способ решить эту проблему изложен ниже, с приложенной подсистемой.
Основные плюсы:
-  минимум доработки;
-  не требуется сопровождение (работает после обновления основной конфигурации поставщика);
-  позволяет для любого набора прав включить запрет редактирования.

Скачать файлы

Наименование Файл Версия Размер
Конфигурация "read-only"
.cf 9,89Kb
404
.cf 9,89Kb 404 Скачать

Чтобы пользователь не мог не только редактировать документы, но и портить сознательно/несознательно наши справочники, нужно:

  1. создать пустую роль, не дающую доступ ни к какому элементу данных;
  2. создать три подписки на события перед записью: для всех Документов, Справочников, Регистров сведений;
  3. в обработчиках подписок анализировать доступность этой роли, и возвращать отказ, если роль доступна.

 

Поскольку роль ничего не разрешает, а, напротив, имеет запретительную природу, я назвал её "ЗапретРедактирования" (вместо того, чтобы именовать "Только просмотр"), но это дело вкуса. Для полноты картины еще можно создать подписки для констант, планов счетов, планов видов характеристик, но основное и самое критичное - документы, справочники и регистры сведений. При этом сам пользователь может иметь произвольный набор ролей в вашей конфигурации, тоесть можно создать кассира-только чтение, или экономиста-только-чтение, или кадровика без возможности изменять базу. Даже для полных прав будет работать, хотя специально не проверял проверено.

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

В прилагаемом файлике набор - роль, подписки и модуль. Вы можете объединить их со своей конфигурацией и безбоязненно даваь доступ только на просмотр всяким аналитикам и контролёрам.

Картинка показывает содержимое cf-файла.

 

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

Этот путь считаю простым, а главное - разовым. После добавления документов/справочников/регистров, они всё так дже останутся недоступными для редактирования.

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2980    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3542    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177757    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27383    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61320    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11746    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    31111    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10986    5    8    

9
Вознаграждение за ответ
Показать полностью
Отзывы
99. Bassgood 15.08.12 16:26 Сейчас в теме
(97) AlexO, а вы считаете, что применение RLS никакой нагрузки не создает? вы измеряли производительность системы при использовании RLS и подписок для решения одной и той же задачи? если нет, тогда смысла спорить о том, что из этих двух меньше всего нагружает систему - нет.
От RLS всячески отказываются, если можно обойтись без их применения более простыми способами (RLS используется для ограничения доступа на уровне ЗАПИСЕЙ, о каком применении RLS для запрета записи тут может идти речь вообще).
user1706724; Redokov; +2 Ответить
149. taasha25 13 17.06.13 16:52 Сейчас в теме
Еще раз спасибо!

Для нового пользователя в БП (Россия)нужно также в процедуру запрета изменения справочников добавить исключение для справочника ПОЛЬЗОВАТЕЛИ.

Если ТипЗнч(Источник)=ТипЗнч(Справочники.Пользователи.СоздатьЭлемент()) Тогда
Возврат;
КонецЕсли;
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
75. DrSender 82 09.08.12 10:25 Сейчас в теме
Плюс! Надо использовать-буду разделять доступ по дате для разных видов документов.
76. nihfalck 09.08.12 13:01 Сейчас в теме
прекрасный способ. как говорится - все гениальное просто :)
спасибо за идею.
77. olezhe 21 09.08.12 13:14 Сейчас в теме
Поставил плюс. Как раз в конторе подняли тему прав с запретом редактирования.

А ещё бывает, надо разграничить права: кадрам одно, приказчикам другое. Наверное, можно эту же идею и тут как-то приспособить...
78. pt_olga 61 09.08.12 14:47 Сейчас в теме
интересная идея... но что-то мне в ней не нравится, но пока сформулировать четко не могу)))
потестирую и может найду грабли, которые пока только на интуитивном уровне

автору в любом случае спасибо и плюс :)
80. andru_dv 12.08.12 22:44 Сейчас в теме
Хорошая идея, попробуем внедрить на тестовой базе УТ, насчет граблей отпишусь позже.
Продукт скорее всего потребует шлифовки, подгонки и т.д.
81. mosAdm 135 15.08.12 10:14 Сейчас в теме
(0) Читаю статью, читаю комментарии и понять не могу А ЗАЧЕМ????????

Зачем писать код? Зачем создавать подписки на события? Зачем эта статья?

Всё заканчивается на первом пункте "Создаем роль" и даем доступ к объектам конфигурации "Только чтение" И ВСЕ!!!
Прикрепленные файлы:
82. chmod660 417 15.08.12 10:52 Сейчас в теме
(81) mosAdm, вы читаете невнимательно.
Если, как вы утверждаете, "И ВСЕ!!!!", тогда назначьте в УПП (например) ТОЛЬКО эту роль любому существуюшему пользователю и попробуйте войти в базу - вы не сможете. Если же вы еще добавите роль "Пользователь" - как того требует УПП без доработки - то до лампочки (если не глубже) становятся ваши права на чтение справочников, т.к. "Пользователь" может редактировать, например, контрагентов и номенклатуру..
это раз.

два - и это описано в статье - при добавлении новых метаданных, вам придется поддерживать актуальность вашей роли вручную - добавлять в неё новые метаданные.

и три - с вашим способом, если есть задача обеспечить доступ на только просмотр не на всю базу, а с правами Кассир - нужно создавать роль. С правами Экономист - нужно вторую. С правами Мастер смены - создавать третью, и так далее. (и все эти роли поддерживать). С моим методом вы даете нужный набор прав, и отмечаете единственной ролью, что доступ "только просмотр". всё.
zqzq; compreSSor; Ioryk; vladir; Redokov; +5 Ответить
87. mosAdm 135 15.08.12 12:11 Сейчас в теме
(82) Я извиняюсь, но третий аргумент

> и три - с вашим способом, если есть задача обеспечить доступ на только просмотр не на всю базу

никак не сработает, в силу того, что заявлено в статье:

> создать три подписки на события перед записью: для всех Документов, Справочников, Регистров сведений;
> в обработчиках подписок анализировать доступность этой роли, и возвращать отказ, если роль доступна.

т.е. объединение с другими ролями тоже ничего не даст.
83. chmod660 417 15.08.12 10:55 Сейчас в теме
я, пожалуй, в последний раз повторял в комментариях то, что написано в статье.
если программист не может понять "зачем", или "чем отличается", или ему просто не нравится - оставляю таковых при собственном мнении.
85. mosAdm 135 15.08.12 11:18 Сейчас в теме
(83) а обижаться не стоит, тут выше все хвалят, "молодец" говорят.
84. mosAdm 135 15.08.12 11:16 Сейчас в теме
(0),(82) - войдешь не войдешь в УПП, УТ или БП и пр.- вопросы не по теме статьи. Коротко - войдешь без подписок на события.
Поддержка 1-й роли при обновлении при добавлении метаданных не составляет проблем, не раздувайте слона из мышки.

С моей колокольни путь предложенный в статье не оптимальный для заявленной темы статьи.

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

ЗЫ
в УПП "пробую добавлять", а работаю больше 7-ми лет.
88. chmod660 417 15.08.12 12:22 Сейчас в теме
(84) mosAdm,
войдешь не войдешь в УПП, УТ или БП и пр.- вопросы не по теме статьи.

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

путь предложенный в статье не оптимальный для заявленной темы статьи.

согласен, изменить название нужно, я подумаю, как.

(85) какие обиды, надоело просто.
(87) из этого сообщения лично я никак не понял, что же вы пытались сообщить. третий аргумент работает, но ваши доводы в тумане.
90. mosAdm 135 15.08.12 13:06 Сейчас в теме
(88)

1. Речь не идет о пользователях (юзерах), статья для них?

2. УПП может и разное, но в (47) есть замечательная процедура " Если НЕ РольДоступна("Пользователь")" - ни о чем не говорит?
а если продолжить так например " Если НЕ РольДоступна("Пользователь") Или НЕ РольДоступна("ИмяВашейРоли")" и в этом случае вход будет не возможен?

3.Не оптимальный путь это не только название статьи, но и методика. Создать два объекта конфигурации и код к нему писать. Фууууууууу. Все делается одним объектом и без кода. Опять зачем тратить дополнительные ресурсы? В предложенной методике, сначала система проверит набор прав потом даст отлуп на запись.


4.Вы противоречите себе сами. Либо пользователю запрещено записывать объекты (Отказ объекта при записи) и как не объединяй роли все-равно получишь ОТКАЗ. Либо код подписки на событие придется поправлять. А?

ЗЫ
Не в качестве рекламы, но на эту тему есть более актуальная статья http://infostart.ru/public/147074/
в которой более правильный подход реализован через регистр сведений.

Я всё сказал.
91. chmod660 417 15.08.12 13:46 Сейчас в теме
(90) mosAdm,
я долго думал.
но мне нечего возразить человеку, который в качестве более правильного подхода советует мне посмотреть статью, в которой мой же подход используется.
у нас с вами не только УПП разное, но и логика. рад, что вы сказали всё, и больше вы ничем меня удивите.
92. mosAdm 135 15.08.12 14:04 Сейчас в теме
(90 не это просто слишком большое самомнение называть "своим подходом" использование подписки на событие и процедуры "при записи".
93. chmod660 417 15.08.12 15:00 Сейчас в теме
(92) mosAdm, вначале, в (81) вы писали, что нужно только роль создать -
"И ВСЕ!!!"

однако вам указали, что не всё - что еще придется модуль приложения править. и тогда обновлять конфигурацию поставщика, постоянно помня об этом изменении. да еще и новые метаданные в роли закидывать. Особенно, если таких ролей-просмотров горе-программист насоздавал несколько. Мне неизвестна логика, при которой сделать раз и навсегда (добавить пописки и 5 строк кода) сложнее, чем постоянно проставлять галочки.

Когда вы в (84) пишете, что
А вот третий пункт в статье не обозначен никак
, это говорит о том, что статью вы читали по диагонали, этот момент отмечен - я пишу про экономиста-толькоПросмотр, кассира-толькоПросмотр и так далее.

вы обвиняете меня в противоречии, однако же это тоже от непонимания того, о чем идет речь. извините, но более простых слов я уже не могу найти. Равно как и "своим подходом" я называю реализацию запрета редактирования. Жаль, что это тоже вам непонятно.
107. Just 2 16.08.12 05:54 Сейчас в теме
Мне очень понравился такой подход и сделал у себя в базе такие подписки. Много лет мучался и с ролями и РЛС, но мне кажется это самый оптимальный вариант подрезать доступ в сочетании со стандартными ролями, в которых, кстати уже прописан РЛС.
а вот AlexO , как мне кажется, или вообще не догоняет что к чему, но пытается показать себя самым умным или просто уже поговорить не с кем.
Дмитрий74Чел; chmod660; +2 Ответить
108. Just 2 16.08.12 06:32 Сейчас в теме
Кстати, мне такой подход очень пригодился, для запрета изменений проведеных документов определенным пользователям. Долго думал как бы это сделать, чтоб конфу не изменять, статья подвернулась очень вовремя. Пусть те кто выше писал про новую роль и галочки, попробуют запретить проводить только уже проведенные доки, замучуются роли и проверки создавать, а с такой подпиской одно условие "на проведен" добавить и всё. Автору спасибо за простую и удобную идею, какие бы здесь гадости кто не писал, очень удобно, а если им не нравится, то пусть создают кучу ролей правять модули доков, справочников и парятся с обновлением, а мы, как написал автор, один раз сделал и забыл...
Дмитрий74Чел; taasha25; +2 Ответить
110. chmod660 417 16.08.12 10:03 Сейчас в теме
(108) Just, спасибо за отзывы.
благодаря им хочется делиться с обществом своими идеями и наработками.
113. iov 406 16.08.12 15:35 Сейчас в теме
решал такую проблему- добавлением дополнительного права пользователю и в подписках проверка на значение. Решение аналогично - но более управляемо - программно проще менять значение доп права пользователя.
Плюс в карму лови в любом случае.
taasha25; +1 Ответить
150. taasha25 13 18.06.13 09:31 Сейчас в теме
(113) iov, скажите, пожалуйста, а проверка на значение каждого элемента роли?
114. kng67 16.08.12 15:56 Сейчас в теме
Автору спасибо за идею. Буду разбираться. Прочитала у спорящих много интересных мыслей.
У самих в бухгалтерии аналогичная ситуация: дай права аудиту, секретарю, части руководства, чтобы видели, анализировали, но ничего не меняли.
Попробую воплотить идею автора на копии.
Небольшое отступление: "Фото" автора вызвало положительные эмоции. Очень похоже на одного из руководителей моей студенческой практики 20 лет назад в вычислительном центре. Прикольный был типус. :)
117. [AdepT] 41 17.08.12 11:36 Сейчас в теме
Идея хорошая, в некоторых случаях действительно проще добавить три подписки и "забыть" о них при обновлении, чем мучаться с ролями. Ну, а тем кому данный подход претит, советую просто не использовать его, а не флуд разводить "ниочем".
chmod660; +1 Ответить
118. gavrikprog 117 20.08.12 12:08 Сейчас в теме
120. buzzzard 51 21.08.12 22:01 Сейчас в теме
Автор молодец, держись!
Большей неадекватности, чем от AlexO, на инфостарте еще не встречал ;)
121. Oleg1708 22.08.12 10:17 Сейчас в теме
Не все так "просто".
А если пользователь должен быть записан в справонике пользователей например. Или еще где. Такой
справочник должен быть дотпен к редактированию.
122. chmod660 417 22.08.12 11:08 Сейчас в теме
(121) Oleg1708,
вообще-то в УПП, не знаю как в остальных, вы юзера сперва заводите в справочнике, а система его создает в конфигураторе. но если у вас не так, тогда:

а) первое и простое: даете сперва полные права, сами заходите, правите, чего надо, и досвидания.
б) в коде делаете обработку по видам справочника, пример даже внутри цф-файла есть, только для регистра
123. babys 90 22.08.12 15:33 Сейчас в теме
chmod660, прочитал, много думал, остались вопросы:
1. А что подписки править при обновлении конфы/добавлении объектов не надо?
2. В УПП/КА пользователям назначается профиль, т.е. при добавлении роли пользователю, надо у него профиль удалить и ...., во-общем "не кузяво".
124. chmod660 417 22.08.12 16:40 Сейчас в теме
(123) babys, именно так.
подписка создается так, что будет вызвана перед записью любого метаданного типа "Справочник", в том числе, и позднее добавленного. это как составной тип данных - только подписка )

про 2. Профиль не назначается, а МОЖЕТ назначаться, это две большие разницы. Тоесть не обязательно из использовать (хотя лично я - использую, поскольку удобно и правильно). Скопируйте профиль, в новый добавьте нашу запрещающую роль, и назначьте пользователю новый профиль. Будет всё кузяво.
125. Зеленоград 23.08.12 17:11 Сейчас в теме
Просто, эффективно. Автор - молодец, плюс заслужен. Интересует насколько меняется производительность, но уже сейчас буду применять. -2% скорости (а по факту на SQL УПП я ожидаю гораздо меньшего влияния) стоят моих нервов (как раз сегодня сравнивал ОСВ архивных баз и распечатки ведомостей после сдачи отчётов. Хочется свежей крови.)

То, что пользователей надо будет заводить в режиме "Предприятие", я бы отдельно попросил указать в описании. Ну и, чтоб два раза не вставать - список объектов для разных видов баз, к которым доступ всё же безопасен и нужен.
128. sp 29.08.12 16:20 Сейчас в теме
Хорошее решение, ставлю +. Уже внёс дописки в конфу :)

Поборолся за минимализм как в первом сообщении - наступил на грабли - подкорректировал код
Отказ = РольДоступна("ТолькоПросмотр") Или Отказ;
chmod660; +1 Ответить
129. chmod660 417 30.08.12 11:08 Сейчас в теме
(128) sp, это кстати очень важное и полезное уточнение!
130. trif 05.10.12 12:13 Сейчас в теме
Сделал все как в статье.
Под администратором зашел в предприятие, добавил пользователя со стандартной ролью + "ЗапретРедактирования".
И потом, когда при запуске программы выбираю пользователя нового, ошибка:

{ОбщийМодуль.УправлениеПользователями.Модуль(135)}: Ошибка при вызове метода контекста (Записать)
МенеджерЗаписи.Записать(Истина);
по причине:
Не удалось записать: "Настройки пользователей"!


Что пропустил? Как исправить?
131. chmod660 417 05.10.12 12:37 Сейчас в теме
(130) trif, уберите из нового пользователя роль "ЗапретРедактирования", оставьте только стандарт.
зайдите под ним первый раз, и выйдите.
верните снова ему роль "ЗапретРедактирования".
больше ошибки возникать не должно.
132. trif 05.10.12 13:16 Сейчас в теме
Все равно ошибка. У пользователя назначена роль "Бухгалтер" (типовая).
133. trif 05.10.12 14:05 Сейчас в теме
Не работает именно с ПередЗаписьюЛюбогоРегистраСведений.
С документами и справочниками все ок.
134. chmod660 417 05.10.12 14:14 Сейчас в теме
(133) trif, увы.
для начала я не знаю, о какой конфигурации речь. в УПП для Украины все працює.
да и полностью решить вашу задачу бесплатно я не готов )
пропускайте в подписке регистры, какие считаете нужными, всего то делов.
142. senshib 29.01.13 08:50 Сейчас в теме
(133) trif, посмотри у автора пример на картинке приведен для УПП, и сделай для своего регистра
Примерно так
Если ТипЗнч(Источник) = ТипЗнч(РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей()) Тогда
	Возврат;
КонецЕсли;
135. zayden 17 29.10.12 16:05 Сейчас в теме
А можно ли, данным методом ограничить только справочник контрагентов?
138. chmod660 417 29.10.12 17:27 Сейчас в теме
(135) zayden, пока нашел возможность ответить, вы уже и разобрались)

принцип очень гибкий, достаточно его понять - и можно ограничивать произвольно.
145. pav-yamal 27.05.13 12:39 Сейчас в теме
У меня такая ошибка

{ОбщийМодуль.УправлениеПользователями.Модуль(135)}: Ошибка при вызове метода контекста (Записать)
МенеджерЗаписи.Записать(Истина);
по причине:
Не удалось записать: "Настройки пользователей"!

Бухгалтерия предприятия, редакция 2.0 (2.0.43.12)

Где копать?
146. chmod660 417 28.05.13 23:04 Сейчас в теме
(145) pav-yamal, в исключения добавляйте. и почитать попробуйте, все разжевано в статье.
Дмитрий74Чел; +1 Ответить
148. taasha25 13 17.06.13 16:44 Сейчас в теме
(145) pav-yamal,
я как раз писала:
"Работает правильно, если снять закомментированную часть, отмеченную для УПП.
Оказалось для БП тоже и дописать для регистров "ПараметрыИнтернетПоддержкиПользователей" и "НастройкиПользователей".

И сделать аналогично в процедуре перед записью справочников, для справочника "СохраненныеНастройки".
Иначе ошибка после выхода из типового отчета. "
159. a4a 22.10.13 16:32 Сейчас в теме
(148) Очень актуальный комментарий, выручили! Немного отклоняясь от темы, может Вы подскажете по поводу обращения к внешней обработке на которую шла ссылка "ВнешняяОбработка.ИнтернетПоддержкаПользователей.МодульОбъекта". Я не вижу ее через Сервис -> Дополнительные отчеты и обработки. Это общее или просто особенность базы, с которой я работаю?
158. a4a 22.10.13 15:49 Сейчас в теме
Спасибо за тему и за возможность увидеть сf-файл наглядно. Работаю в Бухгалтерии 2.0. Что-то, видимо, упускаю, т.к. у нового пользователя последовательно вылетают 2 ошибки:

{ОбщийМодуль.УправлениеПользователями.Модуль(135)}: Ошибка при вызове метода контекста (Записать)
МенеджерЗаписи.Записать(Истина);
по причине:
Не удалось записать: "Настройки пользователей"!

{ВнешняяОбработка.ИнтернетПоддержкаПользователей.МодульОбъекта(1743)}: Ошибка при вызове метода контекста (Удалить)
Запись.Удалить();
по причине:
Не удалось записать: "Параметры интернет-поддержки пользователей"!

Может, стоит обозначать не все регистры?
136. zayden 17 29.10.12 16:25 Сейчас в теме
Включив в подписке не СправочникОбъекта СправочникОбъектКонрагенты. Помогите чайнику
137. zayden 17 29.10.12 17:25 Сейчас в теме
Да все ОК получилось!!!!!
139. tango 506 29.10.12 17:51 Сейчас в теме
спецроль с указанием доступа к данным (её нужно постоянно актуализировать, и править типовые элементы конфигурации)

неверно
140. chmod660 417 29.10.12 18:47 Сейчас в теме
(139) tango,
неверно

обоснуйте.
141. Kom-off 17.01.13 10:22 Сейчас в теме
Не люблю, когда здесь так говорят, но: "Автору - спасибо!" Понадобилось быстро сделать онное. Делается быстро и легко. Поисследовал аспект сколько надо подписок, чтобы "закрыть" все данные. Получилось 4. Одна подписка - объектные типы данных, вторая - основные регистры (мало ли, может какую загрузку запустят или еще чего кодом (не интерфейсно) захотят сделать), третья - отдельно регистры расчета, ибо имеют они отличные параметры процедуры обработчика ПриЗаписи, и четвертая - это подписка, типа "разное", в нее вошли перерасчеты и последовательности. Вроде, все.
taasha25; +1 Ответить
143. TrinitronOTV 14 04.02.13 07:27 Сейчас в теме
Большое спасибо за труды, как раз кстати, так как понадобился доступ к базе "только для чтения".
Внесу свой вклад и поставлю плюсик автору
144. MiB 06.02.13 07:04 Сейчас в теме
Нужная вещь, чтоб никто не мог из новеньких ничего поменять в базе, да и некоторым пользователям нужен только просмотр... и бухи будут спокойны за инфу, что ее никто не изменит.
147. taasha25 13 17.06.13 16:41 Сейчас в теме
Идея, на мой взгляд верная, остальное - костыли.
Протестировала.

Работает правильно, если снять закомментированную часть, отмеченную для УПП.
Оказалось для БП тоже и дописать для регистров "ПараметрыИнтернетПоддержкиПользователей" и "НастройкиПользователей".

И сделать аналогично в процедуре перед записью справочников, для справочника "СохраненныеНастройки".
Иначе ошибка после выхода из типового отчета.
151. chmod660 417 19.06.13 01:15 Сейчас в теме
(147) taasha25,
вернул вам ваши ошибочно поставленные средства. только само сообщение где-то пропало.
узнать, что реализация идеи в вашем понимании "костыли" было удивительно, но вы, безусловно, имеете полное право на собственное мнение.
154. taasha25 13 19.06.13 14:50 Сейчас в теме
(151) Под костылями понимала другие идеи, которые предлагали править роль БУХГАЛТЕР и редактировать процедуры и при обновлении это отслеживать.
Ваша идея мне очень понравилась, как автономная и сделанная 1 раз.
155. chmod660 417 26.06.13 02:26 Сейчас в теме
(154) taasha25, в таком случае, простите за наезд ) неправильно интерпретировал ваш комментарий.
149. taasha25 13 17.06.13 16:52 Сейчас в теме
Еще раз спасибо!

Для нового пользователя в БП (Россия)нужно также в процедуру запрета изменения справочников добавить исключение для справочника ПОЛЬЗОВАТЕЛИ.

Если ТипЗнч(Источник)=ТипЗнч(Справочники.Пользователи.СоздатьЭлемент()) Тогда
Возврат;
КонецЕсли;
152. chmod660 417 19.06.13 01:17 Сейчас в теме
надо обозначить другой лучший ответ :)
153. chmod660 417 19.06.13 01:21 Сейчас в теме
двухсотому плюсонувшему отдам немножко СМ )
если не пропущу ник этого уважаемого в потоке благодарных читателей )))
taasha25; +1 Ответить
156. PhoenixUA 05.07.13 13:32 Сейчас в теме
Спасибо за метод, еще бы как-то скачать файлы...
157. Sabfir 08.07.13 12:43 Сейчас в теме
Автору огромное спасибо.
Доступно все описал, в комментариях для слабеньких разжевал и разложил все по полочкам.
Молодец
160. WWWolfy 132 19.05.14 11:16 Сейчас в теме
Надо только быть аккуратным со служебными процедурами, ведь мы по сути режем доступ к Документам-Справочникам-Регистрам, но оставляем доступ к обработкам, внешним отчетам-обработкам и служебным функциям, которые можем резать созданием роли.
Т.е. это решение надо использовать осознавая, что "мы запретили только запись некоторых объектов", а всякие служебные, административные, выгрузки данных и т.п. - осталось доступно (например если дали "полные права + ro").
161. droplet 81 29.05.14 15:02 Сейчас в теме
Хорошая идея. Возьму себе в копилку
162. NetKat 33 26.08.14 07:14 Сейчас в теме
Спасибо! Пригодилось!
163. triviumfan 92 02.02.15 11:49 Сейчас в теме
ТипЗнч(Источник) = ТипЗнч(РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей())

Это выражение ставит в тупик. Почему не так?
ТипЗнч(Источник) = Тип("РегистрыСведенийНаборЗаписей.НастройкиПользователей")
164. chmod660 417 02.02.15 15:00 Сейчас в теме
(163) yelloo, все же очевидно.
В первом случае работает автодополнение в конфигураторе, и ошибку вы получите прямо на моменте компиляции, во втором нет - и ошибка проявится только в рантайме.
169. i.s.o 11.10.16 10:20 Сейчас в теме
(164)
Отлично, взял на вооружение.
Но вот на счет:
ТипЗнч(Источник) = ТипЗнч(РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей())

не совсем понял, почему он лучше вот этого:
ТипЗнч(Источник) = Тип("РегистрыСведенийНаборЗаписей.НастройкиПользователей")

У меня подобное с работой справочников вызывало исключение, только через второй вариант, предварительно проверив:
		Если НЕ Метаданные.Справочники.Найти("СохраненныеНастройкиПроизвольныеОтчеты") = Неопределено
				И ТипЗнч(Источник) = Тип("СправочникОбъект.СохраненныеНастройкиПроизвольныеОтчеты")  Тогда


А вызывало исключение, потому что для пользователя был запрет на создание записей через РЛС. Не знаю почему, но при сохранении сотрудника предприятия (1С 8.3 УТП) вызывалось исключение в кадровика, пока код не поменял... при том это, естетсвенно, до Отказ = РольДоступна("ТолькоПросмотр").
Может я о чем ещё лузер :)... объясните.

И еще, на счет (128) sp,
Отказ = РольДоступна("ТолькоПросмотр") Или Отказ;


Мочему не легче в начала процедуры написать
Если Отказ Тогда Возврат КонецЕсли;


Зразу ведь вышли из процедуры, зачем проверять ещё РольДоступна("ТолькоПросмотр") , и если возвращается Ложь, то для Отказ еще раз присваивать Отказ, который уже возможно и есть Истина?
Спс! Идея мне очень понравилась :)
165. DRY 05.02.16 12:07 Сейчас в теме
Спасибо автору идеи. На гране с гениальностью!
166. vadimgrt 20.04.16 12:32 Сейчас в теме
Пришлите пожалуйста на почту vadim@grt.kz
Нет старт мани а очень интересно!!!!
167. v3rter 20.04.16 12:59 Сейчас в теме
Печать на принтер будет доступна? А то аудиторам часто нужна возможность не посмотреть, а распечатать отчет.
168. ellavs 1022 18.06.16 19:22 Сейчас в теме
Очень элегантное решение. Спасибо за идею. Надо попробовать. У меня типовой 1С Университет, не хотелось бы менять стандартные роли, заданные разработчиками. Генерировать роли-дубликаты не хочу, т.к. не в силах поддерживать их актуальность. Искала решение с "запретительными" ролями и подвернулась Ваша идея.
Вот не знаю, будет ли работать на платформе 8.3?
170. ZlydenGL 20.03.22 10:06 Сейчас в теме
Моя небольшая модификация исходных триггеров.

Процедура рас_ПередЗаписьюЛюбогоСправочникаПередЗаписью(Источник, Отказ) Экспорт
	//Раскомментируйте, если у Вас БП2.0
	//Если ТипЗнч(Источник)=ТипЗнч(Справочники.СохраненныеНастройки.СоздатьЭлемент()) Тогда
	//	Возврат;
	//КонецЕсли;
	Если РольДоступна("ro_ЗапретРедактирования") Тогда
		Отказ=Истина;
	КонецЕсли;
КонецПроцедуры

Процедура рас_ПередЗаписьюЛюбогоРегистраСведенийПередЗаписью(Источник, Отказ, Замещение) Экспорт
	//Раскомментируйте, если у Вас УПП или БП2.0
	//Если ТипЗнч(Источник)=ТипЗнч(РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей()) Тогда
	//	Возврат;
	//ИначеЕсли ТипЗнч(Источник)=ТипЗнч(РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей()) Тогда
	//	Возврат;
	//ИначеЕсли ТипЗнч(Источник)=ТипЗнч(РегистрыСведений.РезультатыОбменаДанными.СоздатьНаборЗаписей()) Тогда
	//	Возврат;
	//КонецЕсли;	
	Если РольДоступна("ro_ЗапретРедактирования") Тогда
		Отказ=Истина;
	КонецЕсли;
КонецПроцедуры
Показать


Предложенный выше байпас триггера справочников не помог для сохранения данных отчётов, поэтому пришлось использовать немного другую инструкцию, с ней всё ОК. Тестировал именно на БП2.0.

С Регистром Сведений получилось забавнее - хотел объединить все условия в одно большое через ИЛИ, но в этом случае почему-то не отрабатывался ни одно из плечей (хотя в программировании вроде не новичок, проверку условий делал в том числе через Вычисление в Конфигураторе), поэтому оставил так.

На данный момент доработка оттестирована на последних (или близких к ним) версиях БП (2 и 3), КА, УПП - везде всё бегает как и положено. Автору оригинальной идеи огроменное спасибо!
Оставьте свое сообщение