Имя: Пароль:
1C
1С v8
ПривилегированныйРежим
,
0 port8080
 
31.03.19
12:46
Добрый день!

Пожалуйста подскажите как решить мою проблему.
Делаю внешнюю печатную форму, в которой идет запрос к данным физ. лиц.  У кадровика нет доступа к этим данным (физ. лицо). Но для печатной формы надо получить имя и пол (для склонения) и подстановки в печатную форму.
Внешнюю печатную обработку для отладки сделала с формой, открываю через "файл открыть".

В код в модуле объекта (перед запросом) добавила строки:
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);

Но не отключается безопасный режим и не включается соответственно привилегированный режим.

Как можно получить эти данные?
1 port8080
 
31.03.19
12:48
Управляемые формы.
2 Галахад
 
гуру
31.03.19
12:51
База файловая?
3 port8080
 
31.03.19
12:54
Отлаживаю дома на файловой. На работе база на сервере.
4 port8080
 
31.03.19
12:55
На серверной базе у нас запрещена отладка (не подключена).
5 Галахад
 
гуру
31.03.19
12:57
(3) Тогда можно и не мучится. В клиент-серверном варианте на клиенте не будет работать.
6 port8080
 
31.03.19
13:00
А как тогда можно получить эти данные?
7 rphosts
 
31.03.19
13:06
(0) если у кадровика не предусмотрен доступ к этим данным - значит ему их получить не положено. Не правильно посредством программирования решать организационные вопросы
8 Галахад
 
гуру
31.03.19
13:07
(6) Получение данных сделать на сервере...
9 Галахад
 
гуру
31.03.19
13:11
А вообще, в свежих конфигурациях вроде есть функция "Просклонять". Может проще ее использовать.
10 Cyberhawk
 
31.03.19
13:12
(8) Написано же в (0), во-первых, "в модуле объекта", во-вторых "перед запросом", что в итоге дважды указывает, что код выполняется на сервере.
В зависимости от версии БСП нужно разрешения заполнять у подключаемой обработки.
11 rphosts
 
31.03.19
13:12
(8) ну получит она допустим примитивные данные(текст, числа, ...) а потом потребуется расшифровка, а потом... может начать с того что-бы кадровик обосновал необходимость доступа?
12 port8080
 
31.03.19
13:13
"просклонять" есть такая функция. Она использует пол, который берется у физ лица. А к физ лицу доступа нет. Это ответственное лицо, его надо подставить в печатную форму.
13 port8080
 
31.03.19
13:14
Кадровик должен печать приказы.
Это ERP, там доступ идет по группе доступа физ лиц.
14 port8080
 
31.03.19
13:16
Дело не в функции просклонять. А в том, что я даже ФИО получить не могу ((((. Группы доступа тоже я настраивала. По другому настроить не получится.
15 port8080
 
31.03.19
13:17
нужно разрешения заполнять, вот про это я читала на форумах. Но какое именно, не нашла.
16 rphosts
 
31.03.19
13:22
(13) создайте и настройте свою группу. ЕРП это не тот продукт где в первую очередь требуется кодить, а тот где в первую очередь требуется уметь с ним работать, знать его функционал... Займитесь этим - повысите свою стоимость на рынке.
17 palsergeich
 
31.03.19
13:28
Безопасный режим имеет высший приоритет и его нельзя в коде отключить, если он установлен ранее.
Как то так

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");

    ПараметрыРегистрации.Вставить("Наименование", "Загрузка номенклатуры");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", "Загрузка номенклатуры");
    ПараметрыРегистрации.Вставить("ВерсияБСП", "2.0.7.6");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд,
    "Загрузка номенклатуры",
    "1",
    "ОткрытиеФормы",
    Истина,""

    );
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
КонецФункции
18 palsergeich
 
31.03.19
13:30
Если БСП древнее - то безопасный режим это галка в элементе справочника Дополнительные отчеты и обработки
19 palsergeich
 
31.03.19
13:33
вот путь обхода http://catalog.mista.ru/public/617394/
20 palsergeich
 
31.03.19
13:35
С какой то версии платформы - обработки через файл открыть открываются в безопасном режиме в файловой базе.
21 port8080
 
31.03.19
13:37
Новую группу доступа настроить и засунуть туда всех ответственных лиц нельзя. Кадровик увидит секретные данные. Например "оклад" при приеме на работу.
Как вариант создать просто еще физ. лиц чисто как "подписантов"... Но это уже совсем костыль.
22 palsergeich
 
31.03.19
13:41
(21) Получай "секретные" данные в фоновом задании под юзером которому можно.
23 port8080
 
31.03.19
13:42
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);  - это я проверила в первую очередь
24 Мимохожий Однако
 
31.03.19
14:05
Через фоновое задание под другим пользователем и складывать в папку кадровика. ) Вот это костыль так костыль.
25 Мимохожий Однако
 
31.03.19
14:21
Из документации:
ВНИМАНИЕ! В клиент-серверном варианте вызов метода не оказывает влияния при работе на стороне клиента.
Попробуй перенести функционал по получению данных в серверные процедуры
26 palsergeich
 
31.03.19
14:42
Вариант простой - не отлаживайте через файл открыть, а отлаживайте через Доп отчеты и обработки.
Или (19)
27 port8080
 
31.03.19
14:48
Научите плиз, как отлаживать через доп отчеты и обработки.
28 palsergeich
 
31.03.19
14:52
(27) в яндексе на первой же строчке http://catalog.mista.ru/public/982505/
29 port8080
 
31.03.19
14:56
Ах спасибо ), примерно так я знала, что можно отлаживать.
Попробую щас.

Частично решила проблему с физ лицами. Создала новый профиль доступа и прописала кадровику только "чтение физ лиц". Это помогло! Но появились другие ошибки с доступом, как они меня задрали. С ними буду разбираться дальше.
30 palsergeich
 
31.03.19
15:00
(29) Костыль, лучше сделай расширение из (28) и в дальнейшем тебе это не раз пригодится.
31 runoff_runoff
 
31.03.19
15:48
Сведения.Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима("Доступ на чтение"));
32 port8080
 
31.03.19
19:15
(31) У меня ошибка при подключении обработки "невозможно подключить обработку поле объекта не обнаружено (разрешения)"
33 runoff_runoff
 
31.03.19
19:21
Сведения = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.2");
    Сведения.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    Сведения.Наименование = Метаданные().Представление();
    Сведения.Версия = Метаданные().Комментарий;
    Сведения.Информация = Сведения.Наименование;
    
    Сведения.Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("FTP", ""));
    Сведения.Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима("Доступ на чтение"));
34 port8080
 
31.03.19
20:28
Добавила эти строки в функцию СведенияОВнешнейОбработке().
К сожалению ошибка доступа та же.
35 port8080
 
31.03.19
20:51
Итого, получилось без привилегированного режима :):
1. Небольшой костыль - добавить чтение физ лиц. Только чтение физ лиц без просмотра. Тогда пользователь физ лиц увидеть сможет, а прочесть начисления или например "образование физ лица" не сможет. Но это еще одна группа доступа.
2. Во всех запросах "Выбрать разрешенные". Без этого, будут постоянные ошибки в самых несуразных местах.
Всем спасибо.
И все же тема про привилегированный доступ интересна. Пока отлаживала, видела эти доступы по всем внутренним процедурам.
36 palsergeich
 
31.03.19
21:08
(35) не очень здорово, потому что никогда не знаешь где это вылезет)
37 port8080
 
02.04.19
09:23
Напишу еще что раскопала, может кому пригодится.

Я все таки включила привилегированный режим. Оказывается, его может включит только пользователь с правами "Администрирование зарплата кадры".

Если поставить кадровикам эту галку, то доступ к физ лицам можно отменить. Дело в том, что чтение физ лиц подразумевает и просмотр карточки физ лица. А это паспортные данные снилс и инн, что тоже плохо.

Поэтому в начале процедуры
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);

И в конце
УстановитьОтключениеБезопасногоРежима(Ложь);
УстановитьПривилегированныйРежим(Ложь);

---
Сейчас разберусь какие права дает галка "Администрирование зарплата кадры" у профиля "Кадровик".
38 Cyberhawk
 
02.04.19
10:48
(22) "в фоновом задании под юзером которому можно" // Может расскажешь, как запустить ФЗ под нужным пользователем?
39 ДенисЧ
 
02.04.19
10:50
(38) В консоли задач можно указать пользователя...
40 Cyberhawk
 
02.04.19
10:52
(39) Хз о чем ты
41 1Сергей
 
02.04.19
10:53
(40) Открой ерп и посмотри
42 ДенисЧ
 
02.04.19
10:54
(40) У тебя это бывает. Открой консоль заданий из инструментов раррабочика и удивсь.
43 port8080
 
02.04.19
12:45
Короче, в данной задачи одно решение - дать доступ на чтение физ лиц.  Привелигированный режим не подходит.

Дело в том, что нет стандартной роли в ERP только "чтение". Та роль, что я включила -  "чтение физ лиц" идет с просмотром. И как ни крути, некоторые данные (снилс, инн, паспорт) кадровики могут видеть. Увы.

Если взять способ №2 и поставить привелигированный режим в моей обработке, то у меня все нормуль, но остальные документы встроенные в 1С не подставят фио руководителя (так как доступ к нему закрыт), если нет чтения физ лиц.

Если стоит задача четко не видеть данных закрытых физ лиц, то есть 2 варианта решения.

1. Делать роль в расширении, и давать право только "на чтение" без просмотра.

2. Есть справочник "Дополнительные значения". Туда можно напихать что душе угодно и тянуть оттуда. Даже склонения фио туда можно напихать и не парится :).

Глобальный минус 1С:ERP, что я не могу сделать "чтение" какого то справочника без просмотра.
44 Cyberhawk
 
02.04.19
13:17
(41) И ты хз о чем. Зачем-то отвечаешь на незаданный вопрос, чудной )
45 Cyberhawk
 
02.04.19
13:18
(42) 1. Ты переобулся.
2. Как и (41) отвечаешь на незаданный вопрос.
Так что слив 2:0, это залет ))
46 ildary
 
02.04.19
14:15
(43) >Глобальный минус 1С:ERP, что я не могу сделать "чтение" какого то справочника без просмотра.

Что мешает создать в расширении роль где будет право Чтение но не будет права Просмотр?
47 shuhard
 
02.04.19
14:31
(43)[Глобальный минус 1С:ERP, что я не могу сделать "чтение" какого то справочника без просмотра.]
бред
48 Cyberhawk
 
02.04.19
14:39
(46) Роль, даруемая расширением, живет у пользователя до первого обновления конфигурации БД
49 port8080
 
02.04.19
16:12
(47) Ок. Предложите свой вариант. Как в документах выбирать в качестве подписантов руководителей, если доступ к ним запрещен у кадровиков и расчетчиков?
50 Вафель
 
02.04.19
16:21
(49) а зачем доступ запрещен? разве запрещено знать кто руководитель7
51 Максимка_
Космонавтом
 
02.04.19
16:41
(50) Вам что, не попадались клиенты, которые просили расчетичкам ЗП закрыть доступ на просмотр данных, в которых видно, из чего складывается ЗП расчетика ЗП?))))
52 Вафель
 
02.04.19
16:42
(51) ну так наименование физ.лица каким тут боком?
53 sqr4
 
02.04.19
16:47
(52) по (51) можно оценить глубину людского маразма и не задаваться вопросом как в (50)
54 Сияющий в темноте
 
02.04.19
16:51
доступа на уровне полей обьектов в 1с нет,а тут как раз такой случай.
хотя,логично было бы со стороны 1с реализовать получение фио подписанта через серверный модуль с включением привилегии,чтобы не надо было давать доступ на чтение всем,кто печатает документы.
55 Вафель
 
02.04.19
16:52
(54) как это нету? есть.
но конечно же поля из карточки так не скроешь
56 port8080
 
02.04.19
17:16
(50) кто руководитель - знать разрешено. Но видеть данные из карточки физ лица не желательно.
57 Cyberhawk
 
02.04.19
17:46
(55) Скроешь
58 Cyberhawk
 
02.04.19
17:48
Только для этого надо чтоб соблюдалась культура при создании и редактировании во всех других ролях, т.к. они CLS разрешают по всем "чужим" объектам в один клик
59 Вафель
 
02.04.19
17:51
(57) это как?
60 Cyberhawk
 
02.04.19
17:57
61 Вафель
 
02.04.19
18:04
(60) тут речь про рлс вроде шла, а не про роли
62 Cyberhawk
 
02.04.19
18:07
(61) Отмотай цепочку цифр-номеров сообщений и узри, о чем речь
63 port8080
 
02.04.19
20:41
(58) я что-то ничего не поняла... поясните пожалуйста. У меня закрыт доступ по ссылке этой...
64 Cyberhawk
 
02.04.19
21:12
(63) Хз о чем ты
65 Сияющий в темноте
 
02.04.19
23:00
Механизм доступа к полям обьекта работает только для форм,но никак не влияет на запросы,то есть скрыть поле на форме можно,но запросом пользователь,у которого есть право чтения обьекта,это значение получит.

если бы внутри запроса можно было бы получать список полей таблиц в доступном для операции с ними виде,то система ограничени на уровне записей работала бы и в случае запросов.
66 Franchiser
 
гуру
03.04.19
01:42
Константа использования профилей безопасности отключена?
67 port8080
 
03.04.19
08:51
(66) Константа "Автоматически настраивать разрешения в профилях безопасности" отключена.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.