Имя: Пароль:
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. заказ выводим только в том случае если товарпо нему отгружен не полностью либо вообще не отгружен