Имя: Пароль:
1C
1С v8
Задача по формированию ОСВ из обработки в БП 3 с восстановлением настроек пользователя.
0 Gena1984
 
26.07.17
13:41
Всем доброго дня. Вопрос следующий. Есть задача сформировать ОСВ из обработки в которой я задаю какой либо счет (19.01 например). Это легко сделать. Дальше в зависимости от счета я должен программно найти сохраненную настройку пользователя связанную с этим счетом и из неё загрузить настройки в открытую обработкой ОСВ. И вот я застрял. пробовал различные варианты написания кода, ничего не получается, не могу добраться до этих настроек. Подскажите, пожалуйста, что нибудь
1 Gena1984
 
26.07.17
13:43
Самым перспективным видился вот такой код:

&НаСервере
Функция ПолучитьПользовательскиеНастройкиНаСервере()
    ХранилищаНастроек.ХранилищеВариантовОтчетов.ПолучитьСписок("Отчет.ОборотноСальдоваяВедомостьПоСчету");
    гОтбор = Новый Структура("КлючОбъекта");
    гОтбор.КлючОбъекта = "Отчет.ОборотноСальдоваяВедомостьПоСчету/ОборотноСальдоваяВедомостьПоСчету";
    СписокНастроек = ХранилищеПользовательскихНастроекОтчетов.Выбрать(гОтбор);
    Пока СписокНастроек.Следующий() Цикл
        Если СписокНастроек.Представление = "Сч19" Тогда
            Возврат СписокНастроек.Настройки;
        КонецЕсли;
    КонецЦикла;
    Возврат Неопределено;
КонецФункции

&НаСервере
Функция ВозвратСчетУчета()
    Возврат Объект.СчетУчета;    
КонецФункции

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


Но он тоже к сожалению не сработал
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший