Имя: Пароль:
1C
1С v8
Помогите с запросом.
0 Magic Dick
 
20.03.13
23:15
Есть запрос вида

ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ЗаказыПокупателейОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК ДоговорКонтрагентаВладелец,
   ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
   ЗаказыПокупателейОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   ЗаказыПокупателейОстаткиИОбороты.Цена КАК Цена,
   ВЫБОР
       КОГДА ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоПриход, 0) * ЗаказыПокупателейОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент = ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток, 0) * ЗаказыПокупателейОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
               И ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоПриход, 0) * ЗаказыПокупателейОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент = ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0) * ЗаказыПокупателейОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
           ТОГДА "Заказ сформирован"
       ИНАЧЕ "Заказ не сформирован"
   КОНЕЦ КАК СостояниеЗаказов,
   РасчетыСКонтрагентами.СуммаУпрПриход КАК СуммаЗаказа
ИЗ
   РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ЗаказПокупателя ССЫЛКА Документ.ЗаказПокупателя {(ДоговорКонтрагента.Владелец).* КАК ДоговорКонтрагентаВладелец, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ВЫРАЗИТЬ(ЗаказПокупателя КАК Документ.ЗаказПокупателя)).* КАК ЗаказПокупателя, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры}) КАК ЗаказыПокупателейОстаткиИОбороты
       {ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, ДокументРезерва ССЫЛКА Документ.ЗаказПокупателя {(ВЫРАЗИТЬ(ДокументРезерва КАК Документ.ЗаказПокупателя)).* КАК ЗаказПокупателя, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры}) КАК ТоварыВРезервеНаСкладах
       ПО ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = ТоварыВРезервеНаСкладах.ДокументРезерва
           И ЗаказыПокупателейОстаткиИОбороты.Номенклатура = ТоварыВРезервеНаСкладах.Номенклатура
           И ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры}
       {ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РазмещениеЗаказовПокупателей.Остатки(&ДатаКон, ЗаказПокупателя ССЫЛКА Документ.ЗаказПокупателя {(ВЫРАЗИТЬ(ЗаказПокупателя КАК Документ.ЗаказПокупателя)).* КАК ЗаказПокупателя, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры}) КАК РазмещениеЗаказовПокупателей
       ПО ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = РазмещениеЗаказовПокупателей.ЗаказПокупателя
           И ЗаказыПокупателейОстаткиИОбороты.Номенклатура = РазмещениеЗаказовПокупателей.Номенклатура
           И ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = РазмещениеЗаказовПокупателей.ХарактеристикаНоменклатуры}
       {ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Сделка ССЫЛКА Документ.ЗаказПокупателя {(ДоговорКонтрагента.Владелец).* КАК ДоговорКонтрагентаВладелец, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ВЫРАЗИТЬ(Сделка КАК Документ.ЗаказПокупателя)).* КАК ЗаказПокупателя}) КАК РасчетыСКонтрагентами
       ПО ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = РасчетыСКонтрагентами.Сделка}
       {ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ЗаказПокупателя ССЫЛКА Документ.ЗаказПокупателя {(ДоговорКонтрагента.Владелец).* КАК ДоговорКонтрагентаВладелец, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ВЫРАЗИТЬ(ЗаказПокупателя КАК Документ.ЗаказПокупателя)).* КАК ЗаказПокупателя}) КАК СводЗаказыПокупателейОстаткиИОбороты
       ПО ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = СводЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя}
ГДЕ
   ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = &ЗаказПокупателя
ИТОГИ
   МАКСИМУМ(СостояниеЗаказов),
   ВЫБОР
       КОГДА Номенклатура ЕСТЬ НЕ NULL
           ТОГДА 0
       КОГДА ЗаказПокупателя ЕСТЬ НЕ NULL
           ТОГДА СУММА(СуммаЗаказа) / КОЛИЧЕСТВО(Номенклатура)
       ИНАЧЕ 0
   КОНЕЦ КАК СуммаЗаказа
ПО
   ОБЩИЕ,
   ДоговорКонтрагентаВладелец,
   ЗаказПокупателя,
   Номенклатура,
   ХарактеристикаНоменклатуры,
   Цена

Поле СостояниеЗаказов показывает насколько готов документ к обработке,
но беда в том, что поле рассчитывается не только для заказа, но и для остальных полей. Как вычислить значение только по одному полю, и установить его для всех остальных полей?
1 YHVVH
 
20.03.13
23:17
интересно кто осилит ночью данное произведение искусств?
2 Magic Dick
 
20.03.13
23:17
(1)спасибо за поддержку
3 saaken
 
20.03.13
23:28
чем вычисление от установки отличается?
4 Magic Dick
 
20.03.13
23:36
(3) вычисляем для каждой строки, а устанавливаем только одно вычесленное

У меня есть получается таблица


Заказ  4 3 Заказ не сформирован
Товар1 2 2 Заказ сформирован
Товар2 2 1 Заказ не сформирован

а надо

Заказ  4 3 Заказ не сформирован
Товар1 2 2 Заказ не сформирован
Товар2 2 1 Заказ не сформирован
6 shuhard
 
21.03.13
00:02
(0)[ Как вычислить значение только по одному полю, ]
отменная трава
7 Magic Dick
 
21.03.13
00:03
(6) не знаешь чем помочь, пройди мимо
8 saaken
 
21.03.13
00:18
для одной строки с товаром должно появиться состояние из другой строки с заказом?
9 saaken
 
21.03.13
00:18
и лучше бы с начала начал.
рассказал как задача звучала
10 saaken
 
21.03.13
00:19
а то выясниться что пытаешься узнать оплачена ли номенклатура из заказа, и причем по fifo
11 Magic Dick
 
21.03.13
00:25
(9) в УТ есть типовой отчет Анализ заказов покупателей
Надо добавить возможность выводить только те заказы, которые еще не отгружены, но полностью зарервировали товара со склада.
12 saaken
 
21.03.13
00:35
уже лучше. озвучим цель.
1. ставим фильтр на состояние по "заказ не сформирован".
2. нужно выводить заказ со всеми зарезервированными товарами, даже если товар уже отгружен.
так?
13 saaken
 
21.03.13
00:37
в одном запросе в общем случае узнать значение предыдущей или последующей записи не удасться
14 saaken
 
21.03.13
00:38
копай в сторону компоновки, есть несколько функций начиная с 8.2.14
15 saaken
 
21.03.13
00:39
или сделай соединение результата запроса самого с собой
16 Magic Dick
 
21.03.13
01:03
(12) 1. да
2. заказ выводим только в том случае если товарпо нему отгружен не полностью либо вообще не отгружен