Имя: Пароль:
1C
1С v8
Скд программный вызов
0 Doman26
 
19.09.11
14:33
Вызываю программно отчет и при открытии записываются параметры и отбор те что нужно, но потом при инициализации они как то опять обнуляются? как их мне запомнить

 СхемаКомпоновкиДанных  = Отчеты.ОтчетПоШинамНаТС.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");
      ФормаОтчета = Отчеты.ОтчетПоШинамНаТС.ПолучитьФорму(,этаформа);

    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
   
    ДатаП = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
    ДатаП.Использование = Истина;
    ДатаП.Значение = ТекущаяДата();

   
    ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение  = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Машина")).Поле;
    ЭлементОтбора.ПравоеЗначение = Ссылка;
   
           
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,ДанныеРасшифровки);
   
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина);
   
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   
   
   
    ПроцессорВывода.УстановитьДокумент(ФормаОтчета.ЭлементыФормы.Результат);
    //ЭлементыФормы.Результат.Очистить();
    //ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
    ФормаОтчета.Открыть();
1 Doman26
 
19.09.11
14:39
в смсыле при повторном формировании вывод пустой
2 Doman26
 
19.09.11
15:09
никто не разбирается в этом что ль?
3 ssh2006
 
19.09.11
15:20
У тебя КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; Правь тот компоновщик настроек, который свойство отчета.
4 Doman26
 
19.09.11
15:54
это  схемы компоновки данных свойство?
5 ssh2006
 
19.09.11
15:57
ОтчетОбъект.<Имя отчета>.КомпоновщикНастроек (ReportObject.<Имя отчета>.SettingsComposer)
ОтчетОбъект.<Имя отчета> (ReportObject.<Имя отчета>)
КомпоновщикНастроек (SettingsComposer)
Использование:
Только чтение.
Описание:
Тип: КомпоновщикНастроекКомпоновкиДанных. Компoновщик для редактирования настроек отчета.
6 Doman26
 
19.09.11
16:02
СхемаКомпоновкиДанных  = Отчеты.ОтчетПоШинамНаТС.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");
      Отчет = Отчеты.ОтчетПоШинамНаТС.Создать();
      КомпоновщикНастроек =  ОТчет.Компоновщикнастроек;
   // КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
   // КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    //КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
   
    ДатаП = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
    ДатаП.Использование = Истина;
    ДатаП.Значение = ТекущаяДата();

   
    ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение  = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Машина")).Поле;
    ЭлементОтбора.ПравоеЗначение = Ссылка;
   
           
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,ДанныеРасшифровки);
   
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина);
   
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   
       ФормаОтчета = Отчеты.ОтчетПоШинамНаТС.ПолучитьФорму(,этаформа);

   
    ПроцессорВывода.УстановитьДокумент(ФормаОтчета.ЭлементыФормы.Результат);
    //ЭлементыФормы.Результат.Очистить();
    //ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
    ФормаОтчета.Открыть();
       
все равно не выводит(
7 ssh2006
 
19.09.11
16:05
ФормаОтчета = Отчет.ПолучитьФорму(,этаформа);
8 Doman26
 
19.09.11
16:14
все равно выводит по старому
9 Doman26
 
19.09.11
16:22
а вот это не надо переделывать?
 ДатаП = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
    ДатаП.Использование = Истина;
    ДатаП.Значение = ТекущаяДата();

   
    ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение  = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Машина")).Поле;
    ЭлементОтбора.ПравоеЗначение = Ссылка;
10 Blast
 
19.09.11
16:24
(8) а у тебя при открытии самой формы отчета случайно автоматически не загружаются сохраненные пользовательские настройки?
11 Doman26
 
19.09.11
16:25
(10) наверняка загружаются только где это менять и как?
12 Doman26
 
19.09.11
16:29
(10) вот это я тупил, а как сделать так чтоб они при открытии именно из этого места не сохранялись?
13 Blast
 
19.09.11
16:31
(11) В отчете посмотри в диалоге пользовательских настроек в режиме предприятия флажки автоматически сохранять при закрытии  и восстанавливать при открытии
14 Doman26
 
19.09.11
16:33
а как прописать не с новым полем отбора а со старым
ЭлементОтбора.ЛевоеЗначение  = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Машина")).Поле;
15 Blast
 
19.09.11
16:36
(14) не понял вопроса.
какая задача стоит? обрисуй.
16 Doman26
 
19.09.11
16:38
(15) ну когда я создал свой компоновщик, он не определяет он дает значение не тому отбору что есть, а создает новый(тот оставляет пустым)


+ почему то выводит большой пустой кусок сверху, и только потом данные отчета
17 Blast
 
19.09.11
16:48
(16) так у тебя в коде так прописано, что новый отбор добавляется.
ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

если у тебя уже какой-то отбор задан был в конфигураторе, то тебе нужно уже имеющееся поле отбора получать.
18 Doman26
 
19.09.11
16:53
(17) а как?
19 Doman26
 
19.09.11
16:54
а почему кусок пропускает?
20 Doman26
 
19.09.11
17:11
так как найти то это поле?
21 ssh2006
 
19.09.11
17:16
Перебирай в цикле коллекцию элементов отбора и проверяй левое значение
Ошибка? Это не ошибка, это системная функция.