Имя: Пароль:
1C
1С v8
Как сохранить таб. часть в настройках отчета?
0 lirt82
 
25.09.25
08:02
Всем привет, есть самописный отчет (не СКД) в отчете на форме есть закладка "НастройкиВыгрузки" в ней расположена таб. часть "СписокКлиентовДляВыгрузки" эта таб. часть реквизит объекта отчета. Пользователь ее (таб. часть заполняет) и сохраняет по кнопке "СохранитьНастройкиВыгрузки". Необходимо реализовать сохранение данных таб. части отчета и при открытии восстановить данные в таб. части. Код из формы отчета.

&НаКлиенте
Процедура СохранитьНастройкиВыгрузки(Команда)
    СохранитьНастройкиВыгрузкиНаСервере();
КонецПроцедуры

&НаСервере
Процедура СохранитьНастройкиВыгрузкиНаСервере()
            
    //СписокКлиентовВыгрузки = ЗначениеВСтрокуВнутр(Отчет.СписокКлиентовДляВыгрузки.Выгрузить());
        
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    ОтчетОбъект.СохранитьНастройкиВыгрузки(Отчет.АдресДляВыгрузки, Отчет.СписокКлиентовДляВыгрузки); //.Выгрузить());
    
КонецПроцедуры

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

Код модуля объекта отчета.

Процедура СохранитьНастройкиВыгрузки(ПутьДляСохранения, СписокКлиентов) Экспорт
    
    Ключ = ПолучитьКлючОбъекта();
    
    НастройкиВыгрузки = Новый Структура;
    НастройкиВыгрузки.Вставить("ПутьДляСохранения", ПутьДляСохранения);
    НастройкиВыгрузки.Вставить("СписокКлиентов", СписокКлиентов);
    
    УстановитьПривилегированныйРежим(Истина);    
    ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(Ключ, ПолучитьКлючНастроекВыгрузки(), НастройкиВыгрузки,, Ключ);
    УстановитьПривилегированныйРежим(Ложь);
    
КонецПроцедуры

Процедура ВосстановитьНастройкиВыгрузки(ПутьДляСохранения, СписокКлиентов) Экспорт
    
    Ключ = ПолучитьКлючОбъекта();
    
    УстановитьПривилегированныйРежим(Истина);    
    НастройкиВыгрузки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(Ключ, ПолучитьКлючНастроекВыгрузки(),,, Ключ);
    УстановитьПривилегированныйРежим(Ложь);
    
    Если НастройкиВыгрузки <> Неопределено Тогда
    ПутьДляСохранения = НастройкиВыгрузки.ПапкаДляСохранения;
        СписокКлиентов = НастройкиВыгрузки.СписокКлиентов; //ЗначениеИзСтрокиВнутр(НастройкиВыгрузки.СписокКлиентов);
    КонецЕсли;

КонецПроцедуры

при таком коде выходит ошибка:
Ошибка при установке значения атрибута контекста (СписокКлиентовДляВыгрузки)
по причине:
Нельзя изменять поле, содержащее объект данных формы
1 Asmody
 
25.09.25
08:04
Потому что нельзя присвоить значение  таб.части.
Загрузить() можно
2 lirt82
 
25.09.25
08:20
(1) СписокКлиентов = НастройкиВыгрузки.СписокКлиентов.Загрузить();
Метод объекта не обнаружен (Загрузить)
Хотя тип НастройкиВыгрузки.СписокКлиентов ТаблицаЗначений
3 Chameleon1980
 
25.09.25
08:31
Список.загрузить
4 Мультук
 
гуру
25.09.25
08:32
(2)
Кэп имел в виду


ПутьДляСохранения = НастройкиВыгрузки.ПапкаДляСохранения;
СписокКлиентов.Загрузить(НастройкиВыгрузки.СписокКлиентов);
5 Chameleon1980
 
25.09.25
08:33
(4) не вник в название метода :)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший