Имя: Пароль:
1C
1С v8
Выгрузить-загрузить настройки пользователя
0 Веселый собака
 
10.08.26
10:43
Есть СохранитьЗначение/ВосстановитьЗначение. Речь о них.

Надо от одного пользователя перекинуть другому его значения (выбранные из списка галками. Список должен содержать ВСЕ сохраненные значения пользователя и формироваться автоматически).

Как я понял, проблема получить значение, не зная конкретного ключа.

Есть элегантный способ?
1 Волшебник
 
10.08.26
10:44
Запустить сеанс под пользователем, настройки восстановятся, сохранить их в другом виде, в файл или регистр сведений.
2 Веселый собака
 
10.08.26
10:47
Не совсем то.
1. надо под администратором
2. Как перебрать ВСЕ настройки, не зная ключей (пусть даже в сеансе того пользователя)?
3 Веселый собака
 
10.08.26
10:52
Функция ПолучитьНастройкиПользователяВТЗ(ИмяПользователя)
    
    // Создаем таблицу значений для результатов
    ТЗНастроек = Новый ТаблицаЗначений;
    ТЗНастроек.Колонки.Добавить("КлючНастройки", Новый ОписаниеТипов("Строка"));
    ТЗНастроек.Колонки.Добавить("Значение"); // Любой тип
    
    // Настраиваем отбор для ХранилищаОбщихНастроек
    Отбор = Новый Структура;
    Отбор.Вставить("Пользователь", ПользДонор.Наименование);
    Отбор.Вставить("КлючОбъекта",  ""); // Для СохранитьЗначение() здесь всегда пустая строка
    
    // Получаем выборку напрямую из системного хранилища
    ВыборкаНастроек = ХранилищеОбщихНастроек.Выбрать(Отбор);
    
    Пока ВыборкаНастроек.Следующий() Цикл
        
        НоваяСтрока = ТЗНастроек.Добавить();
        НоваяСтрока.КлючНастройки = ВыборкаНастроек.КлючНастройки;
        
        // Получаем само сохраненное значение
        НоваяСтрока.Значение = ВыборкаНастроек.Значение;
        
    КонецЦикла;    
    Возврат ТЗНастроек;
    
КонецФункции

- это не работает )
4 Волшебник
 
10.08.26
10:56
(2) Не спорьте
5 Fish
 
гуру
10.08.26
11:00
(0) "Надо от одного пользователя перекинуть другому его значения" - В БСП в настройках пользователя есть кнопочки "Скопировать другим" и "Скопировать от".

Можно покопать в ту сторону.
6 Веселый собака
 
10.08.26
11:02
(1) вот без спора:

как прочитать все такие настройки под пользователем, не зная имена ключей? Мне их из кода ковырять что-ли? А если они созданы левой внешней обработкой, как я о них узнаю?
7 Веселый собака
 
10.08.26
11:03
(5) а это разве про СохранитьЗначение/ВосстановитьЗначение?
8 Fish
 
гуру
10.08.26
11:10
(7) Возможно, в каких-то из настроек сидят и нужные тебе. Например, в персональных или прочих.
В общем, ковыряться нужно.
9 Веселый собака
 
10.08.26
11:13
(8) нет, там они точно в СохранитьЗначение/ВосстановитьЗначение. Так накодили и так и продолжают кодить.

А теперь мне надо сэмулировать работу одного пользователя, он там таблицы исключений настроил длиной по 100 строк. И еще дать его коллеге доступ к таким же настройкам.

Конечно, я могу и код расковырять и ключи выписать на бумазку, но разве это нормально?
10 Веселый собака
 
10.08.26
11:15
Вообще, получается, 1С дала на уровне пользователя этакое личное хранилище, скрытое от других, в том числе от администратора. Это же дыра в безопасности, епт, туда же можно и бинарный код положить и что угодно..
11 Timon1405
 
10.08.26
11:39
(0) в ИР есть редактор хранилищ настроек
12 Веселый собака
 
10.08.26
11:40
(11) он так и называется? какой ИР именно?
13 Веселый собака
 
10.08.26
11:49
вотс способ через одно место:
Если база развернута на сервере, вы можете обратиться к SQL-таблице напрямую (при наличии прав администратора СУБД):
sqlSELECT [FileName], [Data] FROM [Имя_Вашей_Базы].[dbo].[Files]
WHERE [FileName] LIKE '%.pfl'
В поле Data будет содержаться двоичный или текстовый поток, в котором можно найти текстовые упоминания ваших ключей.

ну да, канеш.)
14 Timon1405
 
10.08.26
11:53
(12) да, так и называется. у меня расширение, во внешнем не пробовал, но тоже, наверное, есть
https://devtool1c.ucoz.ru/index/redaktor_khranilishh_nastroek/0-44