Имя: Пароль:
1C
1С v8
почему СКД не учитывает отбор?
, ,
0 camomile
 
28.12.11
16:33
Умоляю! ответьте кто знает - почему в моем случае СКД не учитывает отбор?  Мой случай : обработка - есть реквизит  на форме (КомпоновщикНастроек.Настройки.Отбор) - тип КомпоновщикНастроекКомпоновкиДанных, и есть макет  - СКД,процедура при открытии формы:

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


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

Делаю отбор на форме

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

В СКД три связанных набора типа запрос, в настройках только группировки (одна с иерархией) и детальные записи. Все вложенные поля выведены в заросах отдельно.  но при этом отбор не учитывается и в тз попадает все подряд.
1 acsent
 
28.12.11
16:36
Ошибка здесь
Выполнить(СКД,КомпоновщикНастроек.Настройки
2 camomile
 
28.12.11
17:04
в чем ошибка то?
3 acsent
 
28.12.11
17:14
А где главный атрибут новогоднего праздника?
4 camomile
 
28.12.11
17:15
КомпоновщикНастроек.Настройки.Отбор пустой после того как на форме сделан отбор, по почему ? в чем ошибка?
5 acsent
 
28.12.11
17:16
Не хочешь, как хочешь
6 camomile
 
28.12.11
17:16
в деда мороза уже не верю , снегурочкой сама наряжусь, а елка в офисе стоит , все атрибуты на месте  )
7 acsent
 
28.12.11
17:21
На мисте главный атрибут новогоднего праздника - это ....
8 camomile
 
28.12.11
17:23
это??? (я не в теме по атрибутам на мисте  )
9 camomile
 
28.12.11
17:33
неужели надо вручную прописывать в КомпоновщикНастроек все отборы которые задаются на форме ?
10 camomile
 
28.12.11
17:36
неужели все только о новом годе говорят  а как же истиная ценность данного форума?
11 camomile
 
28.12.11
17:40
кажется я схожу с ума  , сама с собой уже  разговариваю на форуме
12 camomile
 
28.12.11
17:41
я не пойму как прицепить компоновщикнастроек на форме к компоновщикунастроек скд ((((((
13 acsent
 
28.12.11
17:42
держи пока я добрый
ПолучитьНастройки()
14 zzhiraf
 
28.12.11
17:42
Выложи обработку на народ, посмотрю.
15 zzhiraf
 
28.12.11
17:43
(13) Это тоже самое)
16 camomile
 
28.12.11
17:47
добавила вот такую вот вещь и заработало, но неужели нет другого более простого пути?

Для каждого  эл из элементыФормы.КомпоновщикНастроек.Значение.Элементы Цикл
        ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.Использование = эл.Использование;
        ЭлементОтбора.ЛевоеЗначение  = эл.ЛевоеЗначение;
        ЭлементОтбора.ПравоеЗначение = эл.ПравоеЗначение;
        ЭлементОтбора.ВидСравнения =эл.ВидСравнения;
       

       
    КонецЦИкла;
17 acsent
 
28.12.11
17:49
(16) см. (13) еще раз
18 zzhiraf
 
28.12.11
17:49
(16) ну можно и так...
19 camomile
 
28.12.11
17:50
(17) опс, не заметила (13) , сейчас попробую
20 zzhiraf
 
28.12.11
17:51
Скорее всего, элемент на форме не связан с реквизитом формы типа КомпоновщикНастроекКомпоновкиДанных
21 Фулиган
 
28.12.11
18:02
(13) сделал подсказку
я подскажу дальше надо использовать пользовательские настройки
22 camomile
 
28.12.11
18:08
чорт! запуталась совсем... получить - загрузить... , спасибо всем  за подсказки завтра попоробую на свежую голову
23 Фулиган
 
28.12.11
18:08
Ну если 8.2 очень рекомендую использовать событие в модуле отчета ПриКомпоновкеРезультата
24 Фулиган
 
28.12.11
18:09
+(23) В модуле формы вообще ничего писать не надо
25 camomile
 
29.12.11
10:33
ну не получается ((((( я не понимаю как привязать настройки. Еще раз:
обработка, 8.1 , есть реквизит КомпоновщикНастроекСКД типа КомпоновщикНастроекКомпоновкиДанных, есть макет СКД, на форме есть поле ввода  КомпоновщикНастроекСКД данные - ОбработкаОбъект.КомпоновщикНастроекСКД.настройки.отбор,  при открытии формы пишу :

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

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

в итоге в Настройки  - параметры есть , отборов нет, и как связать
элементыформы.КомпоновщикНастроекСКД.значение.элементы  с  реквизитом  обработки КомпоновщикНастроекСКД?  ниче не понимаю , брррр. Объясните кто-нибудь как работают отборы СКД в обработке , в отчете с этим нет никаких проблем , а через обработку не понимаю как сделать.
26 camomile
 
29.12.11
10:41
ну конечно, новый год жеж. разве кто поможет теперь (((  одна я...  совсем одна со своими заморочками. Ну и ладно! С Наступающим всех!
27 Паучог
 
29.12.11
10:49
(26) можно обработку посмотреть целиком?
28 camomile
 
29.12.11
11:00
можно,  но я не знаю как здесь ее выложить
29 Паучог
 
29.12.11
11:00
(28) в почту
30 sergei123654
 
29.12.11
11:04
(0) фэсо не читал. а в завпросах есть конструкция:

{ГДЕ
   РасходнаяНакладная.Склад.*,
   РасходнаяНакладная.Контрагент.*}

Ибо, как мне кажется эта вещичка и отвечает за отбор.

весьб запрос примерно так.

ВЫБРАТЬ
   РасходнаяНакладная.Склад КАК Склад,
   РасходнаяНакладная.Контрагент КАК Контрагент,
   РасходнаяНакладная.СуммаДокумента КАК СуммаДокумента
{ВЫБРАТЬ
   Склад.*,
   Контрагент.*,
   СуммаДокумента}
ИЗ
   Документ.РасходнаяНакладная КАК РасходнаяНакладная
{ГДЕ
   РасходнаяНакладная.Склад.*,
   РасходнаяНакладная.Контрагент.*}
31 zzhiraf
 
29.12.11
11:10
Еще раз предлагаю выложить обработку на народ :)
32 camomile
 
29.12.11
11:13
Паучог, отправила
33 camomile
 
29.12.11
11:14
(30) я думаю что это не нужно
34 camomile
 
29.12.11
13:01
убрала поле ввода для отбора , добавила ТабличноеПоле - все заработало! (хотя я думала это не имеет значения, ведь в данных указано одно и тоже) Спасибо Паучог еще раз! Спасибо всем за участие.