Имя: Пароль:
1C
 
1с условное оформление, сохранение и загрузка.
↓ (Волшебник 18.10.2025 20:12)
0 Leo1C
 
10.10.25
08:04
Приветствую, не нашел инфы четкой. Есть настройка списка, условное оформление, еще кнопка сохранить настройку и загрузить настройку. Как программно сохранить и загрузить?

Что видел примеры везде просто обход и вручную заполнение элементов, мне это не нужно (ну или в крайнем придется так сохранять и загружать). Общая цель что бы один пользователь мог сохранить настройку, а у других она загрузилась при входе и первый меняет постоянно её, у других она загружается программно.
1 программистище
 
10.10.25
10:32
Если речь идет о динамическом списке, у него есть КомпоновщикНастроек, который, я так понимаю, можно Установить/Прочитать.
его можно сохранять в хранилище значений и хранить в регистре/справочнике
также есть обработчики ПриСохраненииПользовательскихНастроекНаСервере
ПриЗагрузкеПользовательскихНастроекНаСервере
2 lEvGl
 
гуру
10.10.25
10:12
не нашел инфы четкой

(0) было что-то с хранилищем настроек программы, где лежат настройки интерфейса основного окна, окон внутри основного окна, настройки отчетов и еще много чего, возможно там можно хранить, кажется там таблица была не только по пользователю, гугл скажет более однозначно
3 Leo1C
 
10.10.25
12:48
(1) При загрузке обратно немного застопорился, вроде так просто нельзя сделать: Список.КомпоновщикНастроек.ЗагрузитьНастройки(ХранилищеПолуч2); Невозможно применить фиксированные настройки. Совпадают значения параметра
4 banco
 
10.10.25
20:26
(0) в типовых вроде есть копирование настроек пользователя, посмотри как сделано
5 Leo1C
 
16.10.25
22:52
Спасибо. За ответы. Посмотрел копирование настроек, некая морока показалась, хотя можно разобраться думаю.

Сделал для оформления пока так:
Функция Проверка()
    ТекПоль = ПользователиКлиентСервер.ТекущийПользователь();
    Если ТекПоль.Наименование = "Администратор" Тогда  //Кто главый задает настройки
        ПолучаюНастройки = Список.КомпоновщикНастроек.ПолучитьНастройки();  
        Хранилище = Новый ХранилищеЗначения(ПолучаюНастройки, Новый СжатиеДанных());
        Константы.ОСК_ХранЗнач.Установить(Хранилище);    
    Иначе
        Попытка
            ХранилищеПолуч = Константы.ОСК_ХранЗнач.Получить();
            ХранилищеПолуч2=ХранилищеПолуч.Получить();
            Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[2].Элементы.Очистить();
            
            
            //Список.КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
            //Список.КомпоновщикНастроек.ПользовательскиеНастройки.ЗагрузитьНастройки(ХранилищеПолуч2);
            //Так не дает есть фикс настройки
            Для Каждого ЭлПолуч Из ХранилищеПолуч2.УсловноеОформление.Элементы Цикл
                Для СчетЭл = 0 По ЭлПолуч.Оформление.Элементы.Количество()-1 Цикл
                    Если ЭлПолуч.Оформление.Элементы[СчетЭл].Использование = Истина Тогда
                        ДобЭл =  Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[2].Элементы.Добавить();
                                                    
                        ДобЭл.Оформление.Элементы[СчетЭл].Значение = ЭлПолуч.Оформление.Элементы[СчетЭл].Значение;
                        ДобЭл.Оформление.Элементы[СчетЭл].Использование = Истина;
                    
                    КонецЕсли;
                КонецЦикла;
                            
            КонецЦикла;
        Исключение
            Сообщить("Ошибка загрузки оформления " + ОписаниеОшибки());
        КонецПопытки;
            
    КонецЕсли;
КонецФункции
6 lEvGl
 
гуру
17.10.25
00:32
если админ, то пишет настройки, если не админ, то читает, что это за логика такая, админу получать настройки не надо что ли
константы можно заменить на хранилище настроек
7 Leo1C
 
17.10.25
20:23
(6) У Админа и так будет сохранятся автоматически, как обычно сохранение в формах. Спасибо за ответ, еще немного знаний. Тестовый вариант прописал пока.
8 Волшебник
 
17.10.25
20:20
(5) говнокод
9 Leo1C
 
17.10.25
20:22
(8) А как вы бы писали? Просто пример как бы сохраняли, загружали настройки? или всё таки идти разбирать стандартное копирование настроек?
10 Волшебник
 
17.10.25
20:24
(9) Я бы не пользовался БСП и СКД.
Я бы не именовал переменные в стиле "ТекПоль" и "ХранилищеПолуч2".

Здесь явно сквозит какая-то халатность и неуважение к программному коду.
Сделано на "отъебись".
11 Leo1C
 
17.10.25
20:42
(10) Понял. Да там местами такое се, подправлю.
А без скд, это типа: Элементы.Список.ЦветФона = и Т.д.?
12 Волшебник
 
17.10.25
20:43
(11) Не надо нам чужих скриншотов. Мы Вас видим внутрь. У меня зрение рентгеновское.
13 Leo1C
 
17.10.25
20:47
(12) Скрин мой, камон (даже видно из двух частей), делать нечего искать чужое для такой фигни. Пишу же подправил.
Тут и условия не учтены (сырая тема написана), а ведь могут быть легко.
14 Волшебник
 
17.10.25
20:46
(13) Я Вам так скажу. Не надо усложнять. Тут всё просто. Просто цикл. Просто запрос. Просто запрос в цикле. Не пугайтесь запросов в цикле. Делайте нормально, просто и понятно.