Имя: Пароль:
1C
1С v8
Условие на номенклатура не в группе в скд
,
0 Miss1C
 
12.04.13
18:27
Как в параметрах виртуальной таблицы выставить отбор по номенклатуре которая находится не в группе "Тара" ?
1 Miss1C
 
12.04.13
18:45
ап
2 runoff_runoff
 
12.04.13
18:48
НЕ (Номенклатура В ИЕРАРХИИ (&Группа))
3 Fragster
 
гуру
12.04.13
18:48
не надо так делать, зависнет напрочь
4 Miss1C
 
12.04.13
18:50
(3) Как тогда?
5 Miss1C
 
12.04.13
18:50
(2) Группу нужно в параметрах выставить, а она у меня не предопределенная
6 Fragster
 
гуру
12.04.13
18:50
Во временной таблице, если уж очень надо. А ее уже потом - в виртуальную
7 runoff_runoff
 
12.04.13
18:51
если группа не содержит подгрупп.. то условие упрощается
Номенклатура.Родитель <> &Группа
8 Miss1C
 
12.04.13
18:52
(7) Не содержит, но содержится
9 Miss1C
 
12.04.13
18:53
(7) А параметром что выставить?
10 runoff_runoff
 
12.04.13
18:53
если вы работает на самолетостроительном заводе.. где в номенклатуру заносят каждую гайку (как fragster).. то конечно сначала лучше подготовить табличку с подчиненными группе эоементами ;-)
11 runoff_runoff
 
12.04.13
18:54
Запрос.УстановитьПараметр("Группа", ТараСсылка);
12 Miss1C
 
12.04.13
18:55
(11) Отчет на скд
13 runoff_runoff
 
12.04.13
18:57
Функция ПолучитьЭлементОтбора(Настройки, Имя)
   
   НастройкиОтборЭлементы = Настройки.Отбор.Элементы;
   ПолеКомпоновкиДанных = Новый ПолеКомпоновкиДанных(Имя);
   
   Для каждого ЭлементОтбора Из НастройкиОтборЭлементы Цикл
       Если ЭлементОтбора.ЛевоеЗначение = ПолеКомпоновкиДанных Тогда
           Возврат ЭлементОтбора;
       КонецЕсли;
   КонецЦикла;
   
   ЭлементОтбора = НастройкиОтборЭлементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение = ПолеКомпоновкиДанных;
   
   Возврат ЭлементОтбора;
   
КонецФункции

///////////////////////////////////////////////////////////

Процедура УстановитьЗначениеОтбора(Настройки, Имя, Значение, ВидСравнения, Использование = Неопределено)
   
   ЭлементОтбора = ПолучитьЭлементОтбора(Настройки, Имя);
   ЭлементОтбора.ПравоеЗначение = Значение;
   ЭлементОтбора.ВидСравнения = ВидСравнения;
   
   Если Использование = Неопределено Тогда
       ЭлементОтбора.Использование = ЗначениеЗаполнено(Значение);
   Иначе
       ЭлементОтбора.Использование = Использование;
   КонецЕсли;
   
КонецПроцедуры
14 runoff_runoff
 
12.04.13
18:58
УстановитьЗначениеОтбора(КомпоновщикНастроек.Настройки, "Номенклатура", Номенклатура, ВидСравненияКомпоновкиДанных.НЕвИерархии);
15 sanja26
 
12.04.13
18:58
через компоновку данных в запросе, в скд отключаешь автозаполнение и твои параметры виртуальной таблицы появятся в отборе скд
(3) почему это зависнет?
16 Miss1C
 
12.04.13
19:01
(15) Не спорю, это хорошо если группы предопределенные, когда в правом значении я могла бы ее выбрать
17 runoff_runoff
 
12.04.13
19:03
(16) а что мешает подставить в правое значение группу ТараСсылка?..
18 Miss1C
 
12.04.13
19:04
(13) Буду пробовать
19 Miss1C
 
12.04.13
19:04
(17) Нужно по умолчанию выставить этот отбор
20 runoff_runoff
 
12.04.13
19:04
(18) например..
ТараСсылка = Справочники.Номенклатура.НайтиПоКоду("ывапвапвап");
УстановитьЗначениеОтбора(КомпоновщикНастроек.Настройки, "Номенклатура", ТараСсылка, ВидСравненияКомпоновкиДанных.НЕвИерархии);
21 sanja26
 
12.04.13
19:05
(19) странный вопрос. ты первый раз отчет делаешь?
22 runoff_runoff
 
12.04.13
19:06
(19) щас я на мыло вышлю вам шаблон отчета на СКД с произвольной расшифровкой.. внешними данными и предопределенными отборами ;-)
23 Miss1C
 
12.04.13
19:10
(21) Нет, но с таким условием не приходилось
24 sanja26
 
12.04.13
19:12
(20)Справочники.Номенклатура.НайтиПоКоду("ывапвапвап")можно прямо в выражении на закладке параметра прописать и не надо никакого кода
25 sanja26
 
12.04.13
19:14
(13),(14) зачем все это? такой огород городить из-за того, что надо один параметр задать по-умолчанию. Максимум для того, чтобы это в попытку-исключение вставить
26 runoff_runoff
 
12.04.13
19:18
(24) тоже правильно.. но если поле ввода отбора дублировано на форме.. то надо писать в коде ;-)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан