В запросе не отбирается по статусам выполнения заказа
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения
ИЗ
РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыОбеспеченияЗаказов.Заказ
ГДЕ
ЗаказыПокупателейОстатки.КолОстаток > 0
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения <= &СчетчикМесяца
И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления
И НЕ ЗаказыПокупателейОстатки.ДокЗаказ В
(ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО
ПС_ЗаказыДляОтгрузки.Заказы.Заказ = СтатусыВыполненияЗаказов.Заказ
ПО
ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
ГДЕ
НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
И СтатусыВыполненияЗаказов.Статус.Наименование = "Частично отгружен")
СГРУППИРОВАТЬ ПО
ЗаказыПокупателейОстатки.ДокЗаказ,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения
АВТОУПОРЯДОЧИВАНИЕ
ПоказатьВ запросе надо получить заказы,которые не попадают в ПС_ЗаказыДляОтгрузки,но и СтатусыВыполненияЗаказов.Статус.Наименование = "Частично отгружен" должен попасть в запрос
По теме из базы знаний
- "Правила Ашманова". Часть 2: об управлении проектами
- Автоматизация администрирования информационных баз (версия 6.4)
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
- Исправляем проблемы производительности в конфигурации ERP - 7 примеров
- Как я писал ТЗ на внедрение 1С:ERP
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(12)
так?
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения,
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
ИЗ
РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыОбеспеченияЗаказов.Заказ
ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ПО (ПС_ЗаказыДляОтгрузкиЗаказы.Заказ = СтатусыВыполненияЗаказов.Заказ)
ГДЕ
ЗаказыПокупателейОстатки.КолОстаток > 0
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления
СГРУППИРОВАТЬ ПО
ЗаказыПокупателейОстатки.ДокЗаказ,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения,
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
АВТОУПОРЯДОЧИВАНИЕ
Показатьтак?
(14)
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения
ИЗ
РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыОбеспеченияЗаказов.Заказ,
(ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ПС_ЗаказыДляОтгрузки.Заказы.Заказ = СтатусыВыполненияЗаказов.Заказ
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
ГДЕ
НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
И СтатусыВыполненияЗаказов.Статус.Наименование = "Частично отгружен") КАК ВложенныйЗапрос
ГДЕ
ЗаказыПокупателейОстатки.КолОстаток > 0
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения <= &СчетчикМесяца
И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления
СГРУППИРОВАТЬ ПО
ЗаказыПокупателейОстатки.ДокЗаказ,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения
АВТОУПОРЯДОЧИВАНИЕ
Показать
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
вот эти условия лучше в массив и одной строкой проверять. Это во первых.
Во-вторых у Вас условием отсекаются статусы "Выполнен", "Не оформлен", "Не обеспечен". Остальные подбираются. а потом Запускается 2 левых соединения, которые участвуют во втором запросе "вложенный запрос" поля которого не читаете
ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения
это ваши поля, я не вижу в них ниодного обращения к вложенному запросу
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
вот эти условия лучше в массив и одной строкой проверять. Это во первых.
Во-вторых у Вас условием отсекаются статусы "Выполнен", "Не оформлен", "Не обеспечен". Остальные подбираются. а потом Запускается 2 левых соединения, которые участвуют во втором запросе "вложенный запрос" поля которого не читаете
ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения
это ваши поля, я не вижу в них ниодного обращения к вложенному запросу
вот так попробуйте
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения,
СтатусыВыполненияЗаказов.Статус
ИЗ
РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
ГДЕ
ЗаказыПокупателейОстатки.КолОстаток > 0
И СтатусыВыполненияЗаказов.Статус В (&МассивНеобходимыхСтатусов)
И ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения <= &СчетчикМесяца
И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления
СГРУППИРОВАТЬ ПО
ЗаказыПокупателейОстатки.ДокЗаказ,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения,
СтатусыВыполненияЗаказов.Статус
АВТОУПОРЯДОЧИВАНИЕ
Показать
(18)Уже все сделала сама,спасибо всем) Получилось вот так
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения,
СтатусыВыполненияЗаказов.Статус
ИЗ
РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыОбеспеченияЗаказов.Заказ
ГДЕ
ЗаказыПокупателейОстатки.КолОстаток > 0
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения <= &СчетчикМесяца
И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления
И НЕ ЗаказыПокупателейОстатки.ДокЗаказ В
(ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ = СтатусыВыполненияЗаказов.Заказ
ГДЕ
СтатусыВыполненияЗаказов.Статус.Наименование <> "Частично отгружен")
СГРУППИРОВАТЬ ПО
ЗаказыПокупателейОстатки.ДокЗаказ,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения,
СтатусыВыполненияЗаказов.Статус
АВТОУПОРЯДОЧИВАНИЕ
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот