Имя: Пароль:
1C
 
ЗУП 3.1. Поставляемые профили - не редактируются. Что делать?
0 bolobol
 
31.10.18
14:00
День добрый!

Есть, так назовём их - "поставляемые профили" в ЗУП-е, состав ролей в которых не редактируется. Это надо исправить. Подскажите, пожалуйста, как это можно сделать?

Спасибо.
1 Натуральный Йог
 
31.10.18
14:04
Нужно позвать программиста
2 bolobol
 
31.10.18
14:05
(1) Позови, будь другом, пусть подскажет чё путного)
3 Натуральный Йог
 
31.10.18
14:12
(2) Программисты не подсказывают, а открывают конфигуратор и программируют.
4 Натуральный Йог
 
31.10.18
14:13
В пользовательском режиме изменить поставляемые профили нельзя
5 Eiffil123
 
31.10.18
14:18
А зачем? Можно же скопировать их, отредактировать список ролей и измененные назначить пользователям.
6 Фрэнки
 
31.10.18
14:21
(5) но это же все равно должен делать 1С-ник :-)
7 unregistered
 
31.10.18
14:24
(0) Надо редактировать профили программно. В общем модуле УправлениеДоступомПереопределяемый есть экспортная процедура ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления).
Вставляешь в неё вызов своей процедуры, где будет примерно такой код.
Потом запускаешь процедуру обновления конфигурации - запуск с параметром ЗапуститьОбновлениеИнформационнойБазы или обработку обновления служебных данных из пакета разработчика  от БСП той версии, какая в твоей ЗУПе (см. регистр сведений ВерсииПодсистем).

Для каждого ОписаниеПрофиля Из ОписанияПрофилей Цикл
   // Описание для заполнения профиля "Главный бухгалтер".
   Если ОписаниеПрофиля.Наименование = "Главный бухгалтер" Тогда
     ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеДанныхБухгалтерииМоейКонторы");
     ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеНастроекБухгалтерииМоейКонторы");
    // Описание для заполнения профиля "Бухгалтер".
    ИначеЕсли ОписаниеПрофиля.Наименование = "Бухгалтер" Тогда
      ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеДанныхБухгалтерииМоейКонторы");
      УдалитьРольИзОписанияПрофиля(ОписаниеПрофиля, "ДобавлениеИзменениеДанныхСотрудников");
    КонецЕсли;
  КонецЦикла;

Ну и еще одна процедурка.

  Процедура УдалитьРольИзОписанияПрофиля(ОписаниеПрофиля, Роль)
    ИндексРоли = ОписаниеПрофиля.Роли.Найти(Роль);
    Если ИндексРоли = Неопределено Тогда
      Возврат;
    КонецЕсли;
    ОписаниеПрофиля.Роли.Удалить(ИндексРоли);
  КонецПроцедуры //
8 unregistered
 
31.10.18
14:30
(5) Да, да, да. А потом трахаться после установки каждого обновления от 1С из-за ошибок, что какие-то роли были добавлены или исключены из поставляемого профиля, а твоя копия поставляемого профиля об этом почему-то ничего не знает.
Придётся либо каждый раз контролировать все такие изменения (которые делаются программно), либо всё равно вписываться в типовые алгоритмы БСП (в модуль УправлениеДоступомПереопределяемый), чтобы дублировать изменения поставляемых профилей и твои скопированные. А зачем так усложнять?...
9 unregistered
 
31.10.18
14:33
+ к (7) Естественно все подобные доработки можно запилить в расширении с вызовом &После. Если неохота включать возможность изменения объекта конфигурации поставщика.
10 bolobol
 
31.10.18
14:35
(7) Спасибо! Ознакомлюсь детально. Один лишь вопрос остался - когда я исправлю "поставляемый профиль" - там, при обновлении, далее код обновляет всех юзеров с этим профилем?
11 unregistered
 
31.10.18
14:43
(10) > далее код обновляет всех юзеров с этим профилем?

За это как раз и отвечает обновление служебных данных из пакета инструментов разработчика БСП (обработка ОбновлениеВспомогательныхДанных.epf из папки ExtFiles\Инструменты разработчика , размещенной в папке с шаблоном конфигурации БСП после установки). Ну или можно один раз запустить конфу с параметром "ЗапуститьОбновлениеИнформационнойБазы" (при обновлении автоматически обновляются все вспомогательные данные).
12 unregistered
 
31.10.18
14:49
13 bolobol
 
31.10.18
15:02
Вответькак! Спасибо-спасибо!!