Имя: Пароль:
1C
1С v8
СКД запрос отбор. Как?
0 kyrgyz
 
19.07.12
12:02
Есть запрос в скд ВЫБРАТЬ
   ТиповойОборотыДтКт.СчетДт,
   ТиповойОборотыДтКт.СчетКт,
   ТиповойОборотыДтКт.СубконтоКт1,
   ТиповойОборотыДтКт.СубконтоКт2 ,
   ЕСТЬNULL(ТиповойОборотыДтКт.СуммаОборот, 0) КАК СуммаОборот,
   ТиповойОборотыДтКт.СуммаОборот КАК СуммаОборот1,
   ТиповойОборотыДтКт.КоличествоОборотКт
ИЗ
   РегистрБухгалтерии.Типовой.ОборотыДтКт(&Дата1, &Дата2, Год, СчетДт в иерархии(&СчетДт), , СчетКт в( &СчетКт), , )
КАК ТиповойОборотыДтКт
где ТиповойОборотыДтКт.СубконтоКт2 = &Склад

В последней строке отбор по складу через парамерты и реквизиты формы организвал. Как написать запрос чтобы при пустом складе выбирал все?
1 Fragster
 
гуру
19.07.12
12:03
а нефиг делать через Где
2 Fragster
 
гуру
19.07.12
12:04
ну, если нет автозаполнения, то {где ТиповойОборотыДтКт.СубконтоКт2.* КАК Склад}
3 kyrgyz
 
19.07.12
12:04
а как?
4 Fragster
 
гуру
19.07.12
12:04
а если есть автозаполнение - то все и так должно работать
5 Нуф-Нуф
 
19.07.12
12:05
убрать условие и добавлять отбор средствами скд
6 kyrgyz
 
19.07.12
12:07
(5) я таки делал в начале работало. Но Надо было отбрр вывести на форму. А на форму я реквизит прикрутил  склад и передаю как параметр.
7 kyrgyz
 
19.07.12
12:08
зы платформа 8.1 13.41 макет компоновки даных по хитрому завел вв виде отеддельог макета. и он работает с формой.
8 Sereja
 
19.07.12
12:12
(6) Не надо его как параметр

надо вот так

Процедура СкладОтборПриИзменении()
 
   ПолеСклад = Новый ПолеКомпоновкиДанных("Склад");
   
   Для каждого Элемент Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
       Если Элемент.ЛевоеЗначение = ПолеСклад Тогда
           ЭлементОтбора = Элемент;
           Прервать;
       КонецЕсли;  
   КонецЦикла;  
   
   Если ЭлементОтбора = Неопределено Тогда
       ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   КонецЕсли;  
   
   ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;  
   ЭлементОтбора.ЛевоеЗначение  = ПолеСклад;  
   ЭлементОтбора.ПравоеЗначение = СкладОтбор;
   ЭлементОтбора.Использование  = НЕ СкладОтбор.Пустая();
КонецПроцедуры
9 Нуф-Нуф
 
19.07.12
12:13
отбор отлично выносится на форму и без всяких параметров
10 kyrgyz
 
19.07.12
13:19
Я в параметрах виртуальной таблицы в запросе завел фильтр
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.