Имя: Пароль:
1C
1С v8
ХранилищеОбщихНастроек.Загрузить() возвращает неопределено при указании пользователя
0 Тенепопятам
 
29.12.21
14:52
ХранилищеОбщихНастроек.Загрузить("КлючОбъекта","КлючНастроек") возвращает настройку текущего пользователя
ХранилищеОбщихНастроек.Загрузить("КлючОбъекта","КлючНастроек",,ПользователиКлиентСервер.ТекущийПользователь()) возвращает неопределено.

Для некоторых пользователей срабатывают корректно оба варианта. В чем может быть дело?
1 ДенисЧ
 
29.12.21
14:53
Права?
2 fisher
 
29.12.21
14:57
ПользователиКлиентСервер.ТекущийПользователь() ссылку на справочник пользователей возвращает. Ее представление может отличаться от имени входа.
3 Тенепопятам
 
29.12.21
15:40
(1) Точно нет. Проверял под собой: для себя без параметра - норм, с параметром - неопределено, для первого пользователя - норм (с параметром), для второго тоже неопределено. (2) И так и сяк пробовал, и по ссылке и по наименованию строкой - результат одинаковый.
4 fisher
 
29.12.21
15:49
(3) Если скопируешь один в один строку из наименования пользователя в КОНФИГУРАТОРЕ, то должно отработать.
5 Тенепопятам
 
29.12.21
15:59
(4) Пробовал и так - результат аналогичный
6 Тенепопятам
 
29.12.21
15:59
Может платформа глючит...
7 Жан Пердежон
 
29.12.21
16:02
(3) какая ссылка, какое наименование? тебе говорят - логин нужен
8 fisher
 
29.12.21
16:04
Может и платформа. Но чаще человеческий фактор.
Можешь еще под админом поглядеть внимательно на "проблемные" настройки. Инструментами разработчика например или самому обработку накидать. И посимвольно сравнить имя пользователя под которым они лежат в хранилище с тем, что ты ему скормить пытаешься.
9 Тенепопятам
 
29.12.21
17:05
(8) Так и оказалось - видимо пользователя переименовали. Получается, что если параметр "пользователь" не указывать, то пользователь ищется по УИДу, а если указывать то по наименованию? Т.е. получается надо или пересоздавать пользователя или удалять его из хранилища? Методом Удалить() кстати удалить пользователя из хранилища не получилось - удалились только настройки.
10 fisher
 
29.12.21
17:19
(9) Нет. Уиды пользователей в хранилище настроек не фигурируют. Только их названия, как они заданы в конфигураторе.
Цитата из СП: "В случае переименования пользователя прежние настройки не заменяются. Если будет создан пользователь, имя которого совпадает с именем прежнего пользователя, для него будут использованы существующие настройки."
11 Тенепопятам
 
29.12.21
20:01
(10) Спасибо, разобрался. Меня ввело в заблуждение то, что настройку можно было получить в том числе по ссылке на справочник "Пользователи", если имя пользователя совпадает с именем пользователя ИБ.
12 Тенепопятам
 
29.12.21
20:09
Хотя, даже не обязательно совпадает. Просто в некоторых случаях настройку можно было получить по ссылке или имени пользователя.
13 hhhh
 
30.12.21
01:58
(12) там же вроде получить настройку другого пользователя можно только с административными правами. Если административных прав нет, то можно вытащить только свои настройки.
14 Тенепопятам
 
30.12.21
09:25
(13) Я под админскими эксперименты проводил. Сам код тоже в РЗ крутится с админскими правами.
15 fisher
 
30.12.21
09:56
(11) Метод принимает строку. При передаче ссылки происходило просто неявное преобразование ссылки к строковому типу (получение представления ссылки). В любых непонятных ситуациях надо первым делом в СП смотреть.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.