Имя: Пароль:
1C
1С v8
Как через обработку поменять права в конфигураторе какой-нибудь базы?
,
0 Cerera
 
05.06.13
08:59
Допустим у меня есть список документов и список галочек прав. Как мне используя эту информацию менять права в ролях? можно ли так как-нибудь програмно менять права в роли. допустим хочу всем поставить запрет на редактирование прав справочника "контрагенты"
1 Галахад
 
гуру
05.06.13
09:00
Фигу.
2 Cerera
 
05.06.13
09:01
(1)ну хоть как-нибудь? прямым доступом к SQL и структуре базы
3 Галахад
 
гуру
05.06.13
09:04
(2) Тем более фигу.
4 Cerera
 
05.06.13
09:08
(3)что я даже под админскими правами не смогу поменять ничего в правах?
5 Cerera
 
05.06.13
09:52
а что это никто не знает ?
6 Шапокляк
 
05.06.13
09:55
- Как можно вытащить себя из болота за волосы?
- Никак.
- Даже если я очень сильный?
- Даже если ты очень сильный.
- а что это никто не знает?
7 ICWiner
 
05.06.13
09:58
Добавить роль РедактированиеКонтрагентов
ПриЗаписи
Если Не РольДоступна("РедактированиеКонтрагентов") Тогда
Отказ = Истина;
КонецЕсли;

ну можно еще
Если Не ЭтоНовый()И Не РольДоступна("РедактированиеКонтрагентов") Тогда
8 Cerera
 
05.06.13
10:08
(7)ну а я вообще чтоб из режима 1с предприятия можно было загрузить любую роль и галочками поиграться чтоб в конфигураторе эти галочки появились. через ОЛЕ там или т.п.
9 Godofsin
 
05.06.13
10:12
(8) посмотри, как в бух 2.0 сделан справочник "Пользователи", а точнее закладку "Пользователи БД".
10 Godofsin
 
05.06.13
10:14
(1) (3) Да ну?
11 Шапокляк
 
05.06.13
10:15
(9) ТС хочет менять конфигурацию из предприятия. Ну вроде как зубы дергать через задний проход причем у себя же самого.
12 Godofsin
 
05.06.13
10:18
(11) Если я его правильно понял, он хочет замутить универсальную обработку, которая бы позволяла ему рулить правами пользователей на объекты конфигурации из режима предприятия.
13 PR
 
05.06.13
10:21
(2) Прямым доступом можно, что ж нельзя-то.
Прямым доступом все можно.
14 Cerera
 
05.06.13
10:21
(12)да. именно так. но чтобы это был как аналог прав конфигуратора.
15 Cerera
 
05.06.13
10:21
(13)вопрос в том открыт ли формат БД для внесения таких изменений
16 Шапокляк
 
05.06.13
10:21
(12) в (0) "менять права в ролях" - была роль  "менеджер продаж", надо там с галками поиграть.
17 PR
 
05.06.13
10:22
(15) Конечно. Это же MS SQL.
18 Cerera
 
05.06.13
10:24
(17)ну то что SQL это да. но сам формат 1с закрыт. мы не можем  знать как менять содержимое таблицы где хранится информация о правах.
19 Godofsin
 
05.06.13
10:26
(16) А ну да, все, сообразил, что он хочет. Тогда действительно фиг
20 PR
 
05.06.13
10:27
(18) Ну, пользуйся Винхексом например.
Не думаю, что человека, решившего изобрести очередной велосипед, потому что все изобретенные велосипеды его не устраивают, это остановит.
21 Cerera
 
05.06.13
10:31
Дано: Файл 1Cv8.1CD
задача: сделать так, чтобы при открытии базы в режиме 1с-конфигуратор, у каждой роли этой базы на справочник "контрагенты" была выставлена галочка "изменение"

вот это сделать прямым доступом к файлу хотябы

(20)а других альтернатив томучто мне надо ещё не изобрели.
22 PR
 
05.06.13
10:36
(21) В левом углу ринга Cerera.
А в правом углу заслуженный боец Кааанфигуратоооооор!
23 PR
 
05.06.13
10:36
+(22) Это к тому, что якобы пока еще ничего не придумали.
24 Cerera
 
05.06.13
10:59
(23)я бы тоже на вашем месте сидел угорал на форуме еслиб у меня была фирма в которую я запросто могу набрать проджект менеджеров за 130 и прогеров за 100  и обеспечить их работой )
25 Godofsin
 
05.06.13
11:03
(24) Завидуешь что ли? =)
26 Cerera
 
05.06.13
11:06
(25)нет. хочу на самом деле на такую вакансию но в МСК перебираться не готов. тут только что семью создал, тачку купил, квартиру новую достал и работа хорошая хоть и в Казани.  но все равно хотелось бы у PR работать или в аналогичном месте.
27 Godofsin
 
05.06.13
11:07
(26) ноу комментс
28 Идентификатор
 
05.06.13
11:13
(22) :DDD зачет!)))))0
29 Necessitudo
 
05.06.13
12:29
(26) гыггыгы))Даже если подобное делать прямым запросом, то таки все равно нужна СУБД)
30 andreymongol82
 
05.06.13
12:38
(0) Вообще что-то подобное можно сделать, но для этого нужно очень все доработать.
Например, создать справочник, где будут хранится объекты (имена как конфигураторе), сделать регистр сведений, где эти
объекты, пользователи, и различные права (чтение там, запись и т.д.). Нарисовать во всех ролях шаблоны ограничений. И вуаля! (Идея беззастенчиво подсмотрена)
31 orefkov
 
05.06.13
12:57
Можно в конфигураторе автоматизировать таким скриптом для примера:

for(var k = 1, c = metadata.current.rootObject.childObjectsCount("Роли"); k < c; k++)
{
   var mdObj = metadata.current.rootObject.childObject("Роли", k)
   var view = mdObj.editProperty("Права")
   var form = view.getInternalForm()
   var tree = form.getControl("treeTypes").extInterface
   var listCtr = form.getControl("listRights")
   tree.currentRow = findRow(findRow(tree.dataSource.root.firstChild, "Справочники"), "АдресныеСокращения")
   if(!listCtr.value.Get(2).Check)
   {
       var grid = listCtr.extInterface
       grid.currentRow = grid.dataSource.root.firstChild.next.next
       form.sendEvent(listCtr.id, 17, 1)
       Message("Установлено право Изменение для справочника АдресныеСокращения роли " + mdObj.name)
   }
}

Скрипт перебирает все роли в метаданных, открывает их права, позиционируется на нужный справочник и если право "Изменение" не установлено, позиционируется на праве и ставит галку.

Понятно, что можно и для других прав допилить.
Рабочую демку снегопата можно взять здесь: http://snegopat.ru/demo.php
32 orefkov
 
05.06.13
12:58
+(31)
Не весь текст скрипта привел, там еще:

function findRow(parentRow, text)
{
   for(var r = parentRow.firstChild; r; r = r.next)
   {
       if(r.getCellAppearance(0).text == text)
           return r
   }
   return undefined
}
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший