Имя: Пароль:
1C
1С v8
Как передать в СКД отбор по нескольким счетам?
,
0 men47
 
17.07.13
11:54
Здравствуйте, как правильно передать в СКД отбор несколько счетов (например,20, 23, 25, 26).

Пытаюсь сделать через массив, записываю в массив эти счета, потом в отбор присваиваю этот массив и ставлю использование = истина.

но он не отбирает, пишет, что отбор пуст.
1 ИсчадиеADO
 
17.07.13
11:55
в список значений
2 DexterMorgan
 
17.07.13
11:56
код покажи
3 ИсчадиеADO
 
17.07.13
11:56
и отбор как передаешь?
4 DexterMorgan
 
17.07.13
11:57
(1) массив должен работать, а вот список не всегда, кстате
5 ИсчадиеADO
 
17.07.13
11:57
(4) это когда это список не работает?
6 men47
 
17.07.13
11:58
Массив = Новый Массив;
       Массив.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду(23));
       Массив.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду(25));
       Массив.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду(26));
       Массив.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду(29));
       Настройки.Отбор.Элементы.Получить(1).ПравоеЗначение = Массив;
       Настройки.Отбор.Элементы.Получить(1).ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии;
       Настройки.Отбор.Элементы.Получить(1).Использование = Истина;
7 ИсчадиеADO
 
17.07.13
12:02
потом эти настройки нужно установить в скд
8 men47
 
17.07.13
12:03
ну да я так и делаю
вот продолжение кода
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
   
   ПроцессорКомоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
   
   ТабДок.Очистить();
   
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ТабДок);
   ПроцессорВывода.Вывести(ПроцессорКомоновкиДанных);
9 ИсчадиеADO
 
17.07.13
12:11
попробуй так
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки)
10 ИсчадиеADO
 
17.07.13
12:14
и кстати ты уверен что по индексу 1 - это те именно элементы отбора. Я б лучше через индекс не делал, даж на случай, есл допишешь потом что
11 men47
 
17.07.13
12:15
ну да я красавчик=) не увидел, что я пытаюсь отобрать счета в отборе на подразделение=))

а еще такой вопрос, а возможно реализовать отбор еще и по номенклатурной группе, по этим же счетам (если учесть что в 23 и 25 нету субконто номенклатурная группа) т.е. чтобы он отбирал номенклатурную группу в 23 и 29 (т.е. номенклатурную группу и подразделение), а в 25 и 26 просто выводил подразделение.

я думал если передавать отдельные запросы (типа на 23 и 29 и на 25 и 26), то тогда как хранить результат, чтобы потом склеить
12 ИсчадиеADO
 
17.07.13
12:21
(11) "то тогда как хранить результат, чтобы потом склеить" - временные таблицы?
склеить через ОБЪЕДИНИТЬ ВСЕ, тут даже ВТ не нужно
13 men47
 
17.07.13
12:24
(12) хм... а в СКД можно передавать не запрос, а результат запроса?, я просто недавно познакомился с этой системой
14 ИсчадиеADO
 
17.07.13
12:41
(13) таблицу можно передавать. Набор данных смотри
15 ИсчадиеADO
 
17.07.13
12:41
типизированную таблицу значений
16 DexterMorgan
 
17.07.13
12:41
(5) В динамическом списке так пробовал отбор установить - список не работал, с массивом взлетело
17 men47
 
17.07.13
12:55
(14)Ок, спасибо, пробую=)