Имя: Пароль:
1C
1С v8
Настройки отчета на СКД...
0 mua thu
 
05.11.13
23:39
База УПП, есть отчет на СКД в котором пользователь может выбирать нужные настройки и сохранять их. Есть регламентное задание - в котором по расписанию формируется этот отчет и выгружается в эксель.  Не могу понять как можно загрузить программно последние сохраненные пользователем настройки отчета. Формирую только с настройками по умолчанию:

СКД = Отчеты.ДанныеОТоварахДляСайта.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = скд.НастройкиПоУмолчанию;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,Настройки);
    ПроцКомпДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцКомпДанных.Инициализировать(МакетКомпоновки);
    ТабДок = Новый ТабличныйДокумент;
    ПроцВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцВывода.УстановитьДокумент(ТабДок);
    ПроцВывода.Вывести(ПроцКомпДанных);                    
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    Путь = "d:\Базы 1С\Эксперт 1С\СпортТоп\";
    ТабДок.Записать(Путь+"k.xls","xls");


Пожалуйста подскажите, как можно получить нужные настройки?
Заранее благодарю!
1 zippygrill
 
05.11.13
23:42
Что для каждого пользователя своя настройка и выгрузка в эксель по рассписанию? А не уошерно ли это? Какие у вас на это причины?
2 mua thu
 
05.11.13
23:44
С отчетом будет работать один пользователь.
3 zippygrill
 
05.11.13
23:48
1. Смотри скд. Пользовательские настройки
2. Добавь кнопку на форме отчета типо "сохранить отчет(хls)" и сохраняй сформированный табдок
4 zippygrill
 
05.11.13
23:49
3. Пошли лесом пользователя. Ему тяжело самому сохранить чтоли?
5 mua thu
 
05.11.13
23:52
Ну идея такая что кнопка на форме-то есть.=) Типа настройки он один раз сохранит в отчете и потом по расписанию будет выполняться выгрузка в эксель - для сайта собственно.. Через какое-то время он может чуть поменять настройки и дальше чтобы с новыми выгружалось. Как-то так..=))
6 mua thu
 
05.11.13
23:54
Я думаю может через xml попробовать, но так еще не делал, выгружаю из отчета но загрузить нормально не могу..=))
7 zippygrill
 
06.11.13
00:01
Почему не можешь загрузить?
8 mua thu
 
06.11.13
00:09
Сохраняю так:

Процедура СохранитьНастройку() Экспорт

    СтруктураНастроек = ТиповыеОтчеты.ПолучитьСтруктуруПараметровТиповогоОтчета(ЭтотОбъект);
    СохранениеНастроек.СохранитьНастройкуОбъекта(СохраненнаяНастройка, СтруктураНастроек);
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл("d:\Базы 1С\Эксперт 1С\СпортТоп\1.xml");
    ЗаписьXML.ЗаписатьОбъявлениеXML();
    
    СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СтруктураНастроек);
КонецПроцедуры

А загрузить пытаюсь так но че-то не то.:

СКД = Отчеты.ДанныеОТоварахДляСайта.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
//    ЧтениеXML = Новый ЧтениеXML;
//ЧтениеXML.ОткрытьФайл("d:\Базы 1С\Эксперт 1С\СпортТоп\1.xml");
//Настройки = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);

    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
И т.д.
9 mua thu
 
06.11.13
00:11
В этой строке ругается на параметр Настройки:

  МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,Настройки);

Тип данных не правильный но пока не соображу как сделать..
=)
10 zippygrill
 
06.11.13
00:12
Так, погоди, причем тут настройки отчета и данные которые нужно загрузить насколько я понял на сайт?
11 zippygrill
 
06.11.13
00:14
Если не разберешся до завтра тогда скину пример.
12 mua thu
 
06.11.13
00:15
Спасибо большое! Буду ждать!
13 mua thu
 
06.11.13
12:19
Тема актуальна, буду благодарен за хорошие советы!
14 mua thu
 
06.11.13
14:19
Тема актуальна.. =))
15 mua thu
 
06.11.13
18:42
Тема актуальна.. =))
16 Пол Ньюман
 
06.11.13
18:44
(0) Добавить в форму отчета код, который будет сохранять при закрытии формы пару "Пользователь - Настройки" в какой-нибудь регистр.
17 Зойч
 
06.11.13
18:46
разве в упп нет сохраненных настроек
18 mua thu
 
06.11.13
18:53
Может есть в конфигурации какой-то пример по аналогии чтобы глянуть как это все делается? =))
19 banco
 
06.11.13
19:02
(18)  есть, посмотри в БСП Рассылка отчетов
20 mua thu
 
06.11.13
19:05
Спасибо!
21 mua thu
 
07.11.13
21:19
Вот переделал так - но настройка не применяется - формируется как по умолчанию.. В чем может быть ошибка?

ОтчетОбъект = Отчеты.ДанныеОТоварахДляСайта.Создать();
    СохраненнаяНастройка = Справочники.СохраненныеНастройки.НайтиПоНаименованию("2");
    Если Не СохраненнаяНастройка.Пустая() Тогда
        
        СтруктураНастроек = СохраненнаяНастройка.ХранилищеНастроек.Получить();
        Если Не СтруктураНастроек = Неопределено Тогда
            ОтчетОбъект.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ОтчетОбъект.СхемаКомпоновкиДанных));
            ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(СтруктураНастроек.НастройкиКомпоновщика);
            ЗаполнитьЗначенияСвойств(ОтчетОбъект, СтруктураНастроек);
        Иначе
            ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(ОтчетОбъект.СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
        КонецЕсли;
        
    Иначе
        ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(ОтчетОбъект.СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
    КонецЕсли;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(ОтчетОбъект.СхемаКомпоновкиДанных,ОтчетОбъект.КомпоновщикНастроек.Настройки);
    ПроцКомпДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцКомпДанных.Инициализировать(МакетКомпоновки);
    ТабДок = Новый ТабличныйДокумент;
    ПроцВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцВывода.УстановитьДокумент(ТабДок);
    ПроцВывода.Вывести(ПроцКомпДанных);
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    Путь = "D:\Work\";
    ТабДок.Записать(Путь+"k1.xls","xls");
22 К_Дач
 
07.11.13
21:37
СКД = РеквизитФормыВЗначение("ОтчетОбъект").ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");                          
    
ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД);
КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
КомпоновщикНастроек.ЗагрузитьНастройки(СтруктураНастроек.НастройкиКомпоновщика);
Компоновщик.Восстановить();
23 К_Дач
 
07.11.13
21:38
Вот так должно работать
24 mua thu
 
07.11.13
21:41
Да сорри забыл сказать - в 21) это код именно из общего модуля (формируется отчет и выгружается в эксель)
25 К_Дач
 
07.11.13
21:43
(24) у этого общего модуля должен стоять флаг "на сервере"
26 mua thu
 
07.11.13
21:45
Обычное приложение..
А вот пожалуйста подскажите как тогда вот эта строка будет выглядеть?

МакетКомпоновки = КомпоновщикМакета.Выполнить(ОтчетОбъект.СхемаКомпоновкиДанных,ОтчетОбъект.КомпоновщикНастроек.Настройки);
27 mua thu
 
07.11.13
21:46
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,ОтчетОбъект.КомпоновщикНастроек.Настройки); Так?
28 К_Дач
 
07.11.13
21:48
(27) код формирования макета у тебя вроде правильный, я тебе код инициализации настроек подсказал, запихни его в свое условие
29 mua thu
 
07.11.13
21:56
Спасибо!
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой