Имя: Пароль:
1C
1С v8
Помогите пожалуйста с запросом
0 Новичок777
 
24.08.11
14:29
Не могу открыть конструктором запрос или добавить еще отбор по складу


//Запрос.Текст="SELECT *
   //            |FROM (ВЫБРАТЬ Реал.Номенклатура,Реал.Номенклатура.Артикул как Модель,Реал.СерияНоменклатуры,Реал.Ссылка.Контрагент как Контрагент,4 как Тип, """" как Состояние,Реал.Ссылка.Дата как ДатаРеализации,Реал.Ссылка.Сделка.ДатаОтгрузки как КрайняяДата,Реал.Ссылка.Сделка.Ответственный как Менеджер,Реал.Ссылка.Сделка как Заказ,Дост.Ссылка.ДатаОтгрузки как ДатаОтгрузки,Пост.заказПоставщику.ЗаводскойНомер как ЗаводскойНомер,Пост.заказПоставщику.ДатаГотовности как ДатаГотовности,1 как Количество
   //            |ИЗ Документ.РеализацияТоваровУслуг.Товары Реал
   //            |LEFT JOIN Документ.ВозвратТоваровОтПокупателя.Товары Возврат ON Возврат.Ссылка.Проведен и Возврат.Ссылка.Дата>=&ДатаНачала и Возврат.Ссылка.Дата<=&ДатаКонца и Возврат.Номенклатура=Реал.Номенклатура и Возврат.СерияНоменклатуры=Реал.СерияНоменклатуры и Реал.Ссылка.Сделка=Возврат.Ссылка.Сделка"+?(ЗначениеЗаполнено(ГруппаТоваров)," и Реал.Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+"
   //            |LEFT JOIN Документ.ПоступлениеТоваровУслуг.Товары Пост ON Пост.Ссылка.Проведен и Пост.СерияНоменклатуры=Реал.СерияНоменклатуры
   //            |LEFT JOIN Документ.ДоставкаЗаказовПоставщику.Товары Дост ON не Дост.Ссылка.ПометкаУдаления и Дост.СерияНоменклатуры=Реал.СерияНоменклатуры
   //            |WHERE Возврат.Ссылка IS NULL and Реал.Ссылка.Проведен и Реал.Ссылка.Дата>=&ДатаНачала и Реал.Ссылка.Дата<=&ДатаКонца"+?(ТолькоОтгруженные,"","
   //            |UNION ALL
   //            |ВЫБРАТЬ Ост.Номенклатура,Ост.Номенклатура.Артикул как Модель,Ост.СерияНоменклатуры,Рез.ДокументРезерва.Контрагент как Контрагент,1 как Тип, CASE WHEN Рез.Номенклатура IS NULL THEN """" ELSE (CASE WHEN Взаим.Сделка IS NULL THEN ""резерв"" ELSE ""куплен"" END) END как Состояние,&ПустаяДАТА как ДатаРеализации,Рез.ДокументРезерва.ДатаОтгрузки как КрайняяДата,Рез.ДокументРезерва.Ответственный как Менеджер,Рез.ДокументРезерва,Дост.Ссылка.ДатаОтгрузки как ДатаОтгрузки,Пост.заказПоставщику.ЗаводскойНомер как ЗаводскойНомер,Пост.заказПоставщику.ДатаГотовности как ДатаГотовности,1
   //            |ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ГраницаКонца"+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+") Ост
   //            |LEFT JOIN РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ГраницаКонца"+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+") Рез ON Ост.Номенклатура=Рез.Номенклатура и Ост.СерияНоменклатуры=Рез.СерияНоменклатуры и Рез.КоличествоОстаток>0
   //            |LEFT JOIN РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ГраницаКонца) Взаим ON Взаим.Сделка=Рез.ДокументРезерва и Взаим.СуммаВзаиморасчетовОстаток<0
   //            |LEFT JOIN Документ.ПоступлениеТоваровУслуг.Товары Пост ON Пост.Ссылка.Проведен и Пост.СерияНоменклатуры=Ост.СерияНоменклатуры
   //            |LEFT JOIN Документ.ДоставкаЗаказовПоставщику.Товары Дост ON не Дост.Ссылка.ПометкаУдаления и Дост.СерияНоменклатуры=Ост.СерияНоменклатуры
   //            |WHERE Ост.КоличествоОстаток>0
   //            |UNION ALL
   //            |ВЫБРАТЬ Ост.Номенклатура,Ост.Номенклатура.Артикул как Модель,"""",Ост.ЗаказПокупателя.Контрагент как Контрагент,2 как Тип, CASE WHEN Взаим.Сделка IS NULL THEN ""заказан"" ELSE ""куплен"" END как Состояние,&ПустаяДАТА как ДатаРеализации,Ост.ЗаказПокупателя.ДатаОтгрузки как КрайняяДата,Ост.ЗаказПокупателя.Ответственный как Менеджер,Ост.ЗаказПокупателя,&ПустаяДата,"""",&ПустаяДата,Ост.КоличествоОстаток
   //            |ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки(&ГраницаКонца"+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+") Ост
   //            |LEFT JOIN РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ГраницаКонца"+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+") Рез ON Ост.Номенклатура=Рез.Номенклатура и Ост.ЗаказПокупателя=Рез.ДокументРезерва и Рез.КоличествоОстаток>0
   //            |LEFT JOIN РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ГраницаКонца) Взаим ON Взаим.Сделка=Ост.ЗаказПокупателя и Взаим.СуммаВзаиморасчетовОстаток<0
   //            |WHERE Ост.КоличествоОстаток>0 и Рез.Номенклатура IS NULL")+") А
   //            |ORDER BY Номенклатура";
1 Новичок777
 
24.08.11
14:30
Запрос.Текст="SELECT *
               |FROM (ВЫБРАТЬ Реал.Номенклатура,Реал.Номенклатура.Артикул как Модель,Реал.СерияНоменклатуры,Реал.Ссылка.Контрагент как Контрагент,4 как Тип, """" как Состояние,Реал.Ссылка.Дата как ДатаРеализации,Реал.Ссылка.Сделка.ДатаОтгрузки как КрайняяДата,Реал.Ссылка.Сделка.Ответственный как Менеджер,Реал.Ссылка.Сделка как Заказ,Дост.Ссылка.ДатаОтгрузки как ДатаОтгрузки,Пост.заказПоставщику.ЗаводскойНомер как ЗаводскойНомер,Пост.заказПоставщику.ДатаГотовности как ДатаГотовности,1 как Количество
               |ИЗ Документ.РеализацияТоваровУслуг.Товары Реал
               |LEFT JOIN Документ.ВозвратТоваровОтПокупателя.Товары Возврат ON Возврат.Ссылка.Проведен и Возврат.Ссылка.Дата>=&ДатаНачала и Возврат.Ссылка.Дата<=&ДатаКонца и Возврат.Номенклатура=Реал.Номенклатура и Возврат.СерияНоменклатуры=Реал.СерияНоменклатуры и Реал.Ссылка.Сделка=Возврат.Ссылка.Сделка"+?(ЗначениеЗаполнено(ГруппаТоваров)," и Реал.Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+"
               |LEFT JOIN Документ.ПоступлениеТоваровУслуг.Товары Пост ON Пост.Ссылка.Проведен и Пост.СерияНоменклатуры=Реал.СерияНоменклатуры
               |LEFT JOIN Документ.ДоставкаЗаказовПоставщику.Товары Дост ON не Дост.Ссылка.ПометкаУдаления и Дост.СерияНоменклатуры=Реал.СерияНоменклатуры
               |WHERE Возврат.Ссылка IS NULL and Реал.Ссылка.Проведен и Реал.Ссылка.Дата>=&ДатаНачала и Реал.Ссылка.Дата<=&ДатаКонца"+?(ТолькоОтгруженные,"","
               |UNION ALL
               |ВЫБРАТЬ Ост.Номенклатура,Ост.Номенклатура.Артикул как Модель,Ост.СерияНоменклатуры,Рез.ДокументРезерва.Контрагент как Контрагент,1 как Тип, CASE WHEN Рез.Номенклатура IS NULL THEN """" ELSE (CASE WHEN Взаим.Сделка IS NULL THEN ""резерв"" ELSE ""куплен"" END) END как Состояние,&ПустаяДАТА как ДатаРеализации,Рез.ДокументРезерва.ДатаОтгрузки как КрайняяДата,Рез.ДокументРезерва.Ответственный как Менеджер,Рез.ДокументРезерва,Дост.Ссылка.ДатаОтгрузки как ДатаОтгрузки,Пост.заказПоставщику.ЗаводскойНомер как ЗаводскойНомер,Пост.заказПоставщику.ДатаГотовности как ДатаГотовности,1
               |ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ГраницаКонца"+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+") Ост
               |LEFT JOIN РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ГраницаКонца"+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+") Рез ON Ост.Номенклатура=Рез.Номенклатура и Ост.СерияНоменклатуры=Рез.СерияНоменклатуры и Рез.КоличествоОстаток>0
               |LEFT JOIN РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ГраницаКонца) Взаим ON Взаим.Сделка=Рез.ДокументРезерва и Взаим.СуммаВзаиморасчетовОстаток<0
               |LEFT JOIN Документ.ПоступлениеТоваровУслуг.Товары Пост ON Пост.Ссылка.Проведен и Пост.СерияНоменклатуры=Ост.СерияНоменклатуры
               |LEFT JOIN Документ.ДоставкаЗаказовПоставщику.Товары Дост ON не Дост.Ссылка.ПометкаУдаления и Дост.СерияНоменклатуры=Ост.СерияНоменклатуры
               |WHERE Ост.КоличествоОстаток>0
               |UNION ALL
               |ВЫБРАТЬ Ост.Номенклатура,Ост.Номенклатура.Артикул как Модель,"""",Ост.ЗаказПокупателя.Контрагент как Контрагент,2 как Тип, CASE WHEN Взаим.Сделка IS NULL THEN ""заказан"" ELSE ""куплен"" END как Состояние,&ПустаяДАТА как ДатаРеализации,Ост.ЗаказПокупателя.ДатаОтгрузки как КрайняяДата,Ост.ЗаказПокупателя.Ответственный как Менеджер,Ост.ЗаказПокупателя,&ПустаяДата,"""",&ПустаяДата,Ост.КоличествоОстаток
               |ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки(&ГраницаКонца"+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+") Ост
               |LEFT JOIN РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ГраницаКонца"+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+") Рез ON Ост.Номенклатура=Рез.Номенклатура и Ост.ЗаказПокупателя=Рез.ДокументРезерва и Рез.КоличествоОстаток>0
               |LEFT JOIN РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ГраницаКонца) Взаим ON Взаим.Сделка=Ост.ЗаказПокупателя и Взаим.СуммаВзаиморасчетовОстаток<0
               |WHERE Ост.КоличествоОстаток>0 и Рез.Номенклатура IS NULL")+") А
               |ORDER BY Номенклатура";
2 zbv
 
24.08.11
14:30
что это ? откуда это ?

что пишет конструктор?
3 Новичок777
 
24.08.11
14:31
Эт из 1с. Чувак который писал его всегда запросы в ручную пишет
4 Новичок777
 
24.08.11
14:32
Запрос не найден
5 Wobland
 
24.08.11
14:32
так тра..., пардон, сношаться с раскладками...
6 Wobland
 
24.08.11
14:33
(4) хз, смени селект на выбрать и попробуй ещё раз
7 dva1c
 
24.08.11
14:33
(4) помощью чувака воспользоваться не получится.
тра..., как пишут в (5) ))
8 Wobland
 
24.08.11
14:34
конструктор вроде номер строки с ошибкой умеет говорить
9 dva1c
 
24.08.11
14:34
+(7) и в (6)
10 Ненавижу 1С
 
гуру
24.08.11
14:35
запрос собирается динамически, естественно конструктор его не откроет
11 zbv
 
24.08.11
14:35
там ошибка конструктоар из-за

"+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+"
12 unregistered
 
24.08.11
14:35
получи в отладчике текст запроса.
Этот текст - в конструктор запрсов.
После работы конструктора получится удобоваримый текст. Его сюда и выкладывай.

А лично я ахинею из (0) даже смотреть не стану.
13 Wobland
 
24.08.11
14:35
(10) блин, точно
14 ЛЮС
 
24.08.11
14:35
Так правильно, это у не просто текст а текст с условиями ?(условие , знач1, знач2), окончательный текст формируется в зависимости от параметров.
Редактирование таких конструкций осуществляется двумя путями:
1) вручную, без конструктора,
2) вырезать все условия, отредактировать запрос, вставить условия обратно.
15 sergei123654
 
24.08.11
14:35
(4) все дело в "+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+")

Прогромное построение запроса, конфигуратор такие не открывает.
Посмотри в отладчике Запро.Текст что там написано
16 Новичок777
 
24.08.11
14:36
(10) А как-нибудь может можно
17 Ненавижу 1С
 
гуру
24.08.11
14:36
(14)
еще 3) использовать построитель
18 Новичок777
 
24.08.11
14:36
Я убирал все  "+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+")
19 Axel2009
 
24.08.11
14:37
отладчиком глянуть итоговый текстзапроса
20 Wobland
 
24.08.11
14:37
(16) выдели конец фрома для первого селекта и допиши туда вхере УсловиеПоСкладу (может, вхере там и так есть)
21 Новичок777
 
24.08.11
14:40
Получилось, всем спасибо
22 Wobland
 
24.08.11
14:41
(21) что делал?
23 Новичок777
 
24.08.11
14:45
Убрал повнимательней "+?(ЗначениеЗаполнено(ГруппаТоваров),",Номенклатура В ИЕРАРХИИ (&ГруппаТоваров)","")+")