Объединить Запросы в один
ВЫБРАТЬ
Вложенный.Номенклатура,
Вложенный.ВариантИсполнения,
Вложенный.КолОборотПродажи,
Вложенный.Кол,
Вложенный.Цена,
Вложенный.ДатаИсполнения,
Вложенный.ЗаказНаПроизводство,
Вложенный.ПодЗаказСсылка,
Вложенный.Статус,
Вложенный.КолВыпуск,
Вложенный.ОстатокНаСкладе
ИЗ
(ВЫБРАТЬ
ЗаказНаПроизводствоТЧПродукция.Номенклатура КАК Номенклатура,
ЗаказНаПроизводствоТЧПродукция.ВариантИсполнения КАК ВариантИсполнения,
NULL КАК КолОборотПродажи,
ЗаказНаПроизводствоТЧПродукция.Кол КАК Кол,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ЗаказНаПроизводствоТЧПродукция.Ссылка.ДатаИсполнения КАК ДатаИсполнения,
ЗаказНаПроизводствоТЧПродукция.Ссылка КАК ЗаказНаПроизводство,
ЗаказНаПроизводствоТЧПродукция.Ссылка.ПодЗаказ.Ссылка КАК ПодЗаказСсылка,
СтатусыВыполненияЗаказов.Статус КАК Статус,
ВыпускПродукцииТЧПродукция.Кол КАК КолВыпуск,
NULL КАК ОстатокНаСкладе
ИЗ
Документ.ЗаказНаПроизводство.ТЧПродукция КАК ЗаказНаПроизводствоТЧПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ЗаказНаПроизводствоТЧПродукция.Номенклатура)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции.ТЧПродукция КАК ВыпускПродукцииТЧПродукция
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ВыпускПродукцииТЧПродукция.ДокЗаказНаПроизводство.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказНаПроизводствоТЧПродукция.Ссылка)
ГДЕ
ЗаказНаПроизводствоТЧПродукция.Ссылка.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ОстаткиТМЦОстатки.Номенклатура,
ОстаткиТМЦОстатки.ВариантИсполнения,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
ЕСТЬNULL(ОстаткиТМЦОстатки.КолОстаток, 0) - ЕСТЬNULL(РезервыОстатки.КолОстаток, 0)
ИЗ
РегистрНакопления.ОстаткиТМЦ.Остатки КАК ОстаткиТМЦОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
ПО ОстаткиТМЦОстатки.Номенклатура = РезервыОстатки.Номенклатура
И ОстаткиТМЦОстатки.ВариантИсполнения = РезервыОстатки.ВариантИсполнения
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ПродажиОборотыОбороты.Номенклатура,
ПродажиОборотыОбороты.ВариантИсполнения,
ПродажиОборотыОбороты.КолОборот,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК ПродажиОборотыОбороты) КАК Вложенный
СГРУППИРОВАТЬ ПО
Вложенный.Номенклатура,
Вложенный.ВариантИсполнения,
Вложенный.КолОборотПродажи,
Вложенный.Кол,
Вложенный.Цена,
Вложенный.ДатаИсполнения,
Вложенный.ЗаказНаПроизводство,
Вложенный.ПодЗаказСсылка,
Вложенный.Статус,
Вложенный.КолВыпуск,
Вложенный.ОстатокНаСкладе
ПоказатьЕсть запрос,нужно объединить все по строке номенклатура,но не получается. Подскажите пожалуйста...
По теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Так,выводит сначала первый запрос,потом 2 и тд.Друг за другом. То есть задваивает значения
ВЫБРАТЬ
ЗаказНаПроизводствоТЧПродукция.Номенклатура,
ЗаказНаПроизводствоТЧПродукция.Кол КАК КолЗаказа,
ЦеныНоменклатурыСрезПоследних.Цена,
ЗаказНаПроизводство.ДатаИсполнения,
ЗаказНаПроизводство.Ссылка КАК ЗаказНаПроизводство,
ЗаказНаПроизводство.ПодЗаказ.Ссылка,
СтатусыВыполненияЗаказов.Статус,
ВыпускПродукцииТЧПродукция.Кол КАК КолВыпущено,
ЗаказНаПроизводствоТЧПродукция.ВариантИсполнения,
ЗаказНаПроизводствоТЧПродукция.Ссылка.РабочийЦентр КАК РабочийЦентр
ПОМЕСТИТЬ Основа
ИЗ
Документ.ЗаказНаПроизводство.ТЧПродукция КАК ЗаказНаПроизводствоТЧПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&НачалоПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних
ПО ЗаказНаПроизводствоТЧПродукция.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РабочиеЦентры КАК РабочиеЦентры
ПО ЗаказНаПроизводство.РабочийЦентр = РабочиеЦентры.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказНаПроизводство.Ссылка = СтатусыВыполненияЗаказов.Заказ
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ЗаказНаПроизводство.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции.ТЧПродукция КАК ВыпускПродукцииТЧПродукция
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ВыпускПродукцииТЧПродукция.ДокЗаказНаПроизводство
ГДЕ
НЕ ЗаказНаПроизводство.ПометкаУдаления
И ЗаказНаПроизводство.Проведен = ИСТИНА
И НЕ ВыпускПродукцииТЧПродукция.Ссылка.ПометкаУдаления
И ВыпускПродукцииТЧПродукция.Ссылка.Проведен = ИСТИНА
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ОстаткиТМЦОстатки.КолОстаток, 0) - ЕСТЬNULL(РезервыОстатки.КолОстаток, 0) КАК ОстаткиНаСкладе,
ОстаткиТМЦОстатки.Номенклатура,
ОстаткиТМЦОстатки.ВариантИсполнения
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ОстаткиТМЦ.Остатки КАК ОстаткиТМЦОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
ПО (РезервыОстатки.Номенклатура = ОстаткиТМЦОстатки.Номенклатура)
И (РезервыОстатки.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Остатки.ОстаткиНаСкладе КАК ОстаткиНаСкладе,
Основа.КолВыпущено,
Основа.Статус,
Основа.ПодЗаказСсылка,
Основа.ЗаказНаПроизводство,
Основа.ДатаИсполнения,
Основа.РабочийЦентр,
Основа.Цена,
Основа.КолЗаказа,
Основа.Номенклатура КАК Номенклатура,
Основа.ВариантИсполнения КАК ВариантИсполнения,
ПродажиОборотыОбороты.КолОборот КАК КолОборотПродажи
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты КАК ПродажиОборотыОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Основа КАК Основа
ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Основа.Номенклатура = Остатки.Номенклатура
И Основа.ВариантИсполнения = Остатки.ВариантИсполнения
ПО ПродажиОборотыОбороты.Номенклатура = Основа.Номенклатура
И ПродажиОборотыОбороты.ВариантИсполнения = Основа.ВариантИсполнения
ГДЕ
Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
Номенклатура.Ссылка,
NULL,
NULL
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Активность
И НЕ Номенклатура.ПометкаУдаления
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Остатки.ОстаткиНаСкладе,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
Остатки.Номенклатура,
Остатки.ВариантИсполнения,
NULL
ИЗ
Остатки КАК Остатки
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
ПродажиОборотыОбороты.Номенклатура,
ПродажиОборотыОбороты.ВариантИсполнения,
ПродажиОборотыОбороты.КолОборот
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты КАК ПродажиОборотыОбороты
ПоказатьТак,выводит сначала первый запрос,потом 2 и тд.Друг за другом. То есть задваивает значения
(5)
Вот так вот,вобще хорошо,но мне нужно чтобы выводилась вся номенклаутра,а не только та которая есть в заказах
ВЫБРАТЬ
ЗаказНаПроизводствоТЧПродукция.Номенклатура,
ЗаказНаПроизводствоТЧПродукция.Кол КАК КолЗаказа,
ЦеныНоменклатурыСрезПоследних.Цена,
ЗаказНаПроизводство.ДатаИсполнения,
ЗаказНаПроизводство.Ссылка КАК ЗаказНаПроизводство,
ЗаказНаПроизводство.ПодЗаказ.Ссылка,
СтатусыВыполненияЗаказов.Статус,
ВыпускПродукцииТЧПродукция.Кол КАК КолВыпущено,
ЗаказНаПроизводствоТЧПродукция.ВариантИсполнения,
ЗаказНаПроизводствоТЧПродукция.Ссылка.РабочийЦентр КАК РабочийЦентр
ПОМЕСТИТЬ Основа
ИЗ
Документ.ЗаказНаПроизводство.ТЧПродукция КАК ЗаказНаПроизводствоТЧПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&НачалоПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних
ПО ЗаказНаПроизводствоТЧПродукция.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РабочиеЦентры КАК РабочиеЦентры
ПО ЗаказНаПроизводство.РабочийЦентр = РабочиеЦентры.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказНаПроизводство.Ссылка = СтатусыВыполненияЗаказов.Заказ
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ЗаказНаПроизводство.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции.ТЧПродукция КАК ВыпускПродукцииТЧПродукция
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ВыпускПродукцииТЧПродукция.ДокЗаказНаПроизводство
ГДЕ
НЕ ЗаказНаПроизводство.ПометкаУдаления
И ЗаказНаПроизводство.Проведен = ИСТИНА
И НЕ ВыпускПродукцииТЧПродукция.Ссылка.ПометкаУдаления
И ВыпускПродукцииТЧПродукция.Ссылка.Проведен = ИСТИНА
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ОстаткиТМЦОстатки.КолОстаток, 0) - ЕСТЬNULL(РезервыОстатки.КолОстаток, 0) КАК ОстаткиНаСкладе,
ОстаткиТМЦОстатки.Номенклатура,
ОстаткиТМЦОстатки.ВариантИсполнения
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ОстаткиТМЦ.Остатки КАК ОстаткиТМЦОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
ПО (РезервыОстатки.Номенклатура = ОстаткиТМЦОстатки.Номенклатура)
И (РезервыОстатки.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Остатки.ОстаткиНаСкладе КАК ОстаткиНаСкладе,
Основа.КолВыпущено,
Основа.Статус,
Основа.ПодЗаказСсылка,
Основа.ЗаказНаПроизводство,
Основа.ДатаИсполнения,
Основа.РабочийЦентр,
Основа.Цена,
Основа.КолЗаказа,
Основа.Номенклатура КАК Номенклатура,
Основа.ВариантИсполнения КАК ВариантИсполнения,
ПродажиОборотыОбороты.КолОборот КАК КолОборотПродажи
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты КАК ПродажиОборотыОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Основа КАК Основа
ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Основа.Номенклатура = Остатки.Номенклатура
И Основа.ВариантИсполнения = Остатки.ВариантИсполнения
ПО ПродажиОборотыОбороты.Номенклатура = Основа.Номенклатура
И ПродажиОборотыОбороты.ВариантИсполнения = Основа.ВариантИсполнения
ГДЕ
Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
ПоказатьВот так вот,вобще хорошо,но мне нужно чтобы выводилась вся номенклаутра,а не только та которая есть в заказах
(8)
Вот так попробовала,тут пустые строки выходят
ВЫБРАТЬ
ЗаказНаПроизводствоТЧПродукция.Номенклатура,
ЗаказНаПроизводствоТЧПродукция.Кол КАК КолЗаказа,
ЦеныНоменклатурыСрезПоследних.Цена,
ЗаказНаПроизводство.ДатаИсполнения,
ЗаказНаПроизводство.Ссылка КАК ЗаказНаПроизводство,
ЗаказНаПроизводство.ПодЗаказ.Ссылка,
СтатусыВыполненияЗаказов.Статус,
ВыпускПродукцииТЧПродукция.Кол КАК КолВыпущено,
ЗаказНаПроизводствоТЧПродукция.ВариантИсполнения,
ЗаказНаПроизводствоТЧПродукция.Ссылка.РабочийЦентр КАК РабочийЦентр
ПОМЕСТИТЬ Основа
ИЗ
Документ.ЗаказНаПроизводство.ТЧПродукция КАК ЗаказНаПроизводствоТЧПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&НачалоПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних
ПО ЗаказНаПроизводствоТЧПродукция.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РабочиеЦентры КАК РабочиеЦентры
ПО ЗаказНаПроизводство.РабочийЦентр = РабочиеЦентры.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказНаПроизводство.Ссылка = СтатусыВыполненияЗаказов.Заказ
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ЗаказНаПроизводство.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции.ТЧПродукция КАК ВыпускПродукцииТЧПродукция
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ВыпускПродукцииТЧПродукция.ДокЗаказНаПроизводство
ГДЕ
НЕ ЗаказНаПроизводство.ПометкаУдаления
И ЗаказНаПроизводство.Проведен = ИСТИНА
И НЕ ВыпускПродукцииТЧПродукция.Ссылка.ПометкаУдаления
И ВыпускПродукцииТЧПродукция.Ссылка.Проведен = ИСТИНА
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ОстаткиТМЦОстатки.КолОстаток, 0) - ЕСТЬNULL(РезервыОстатки.КолОстаток, 0) КАК ОстаткиНаСкладе,
ОстаткиТМЦОстатки.Номенклатура,
ОстаткиТМЦОстатки.ВариантИсполнения
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ОстаткиТМЦ.Остатки КАК ОстаткиТМЦОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
ПО (РезервыОстатки.Номенклатура = ОстаткиТМЦОстатки.Номенклатура)
И (РезервыОстатки.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Остатки.ОстаткиНаСкладе КАК ОстаткиНаСкладе,
Основа.КолВыпущено,
Основа.Статус,
Основа.ПодЗаказСсылка,
Основа.ЗаказНаПроизводство,
Основа.ДатаИсполнения,
Основа.РабочийЦентр,
Основа.Цена,
Основа.КолЗаказа,
Основа.Номенклатура КАК Номенклатура,
Основа.ВариантИсполнения КАК ВариантИсполнения,
ПродажиОборотыОбороты.КолОборот КАК КолОборотПродажи
ПОМЕСТИТЬ ВСЕВМЕСТЕ
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты КАК ПродажиОборотыОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Основа КАК Основа
ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Основа.Номенклатура = Остатки.Номенклатура
И Основа.ВариантИсполнения = Остатки.ВариантИсполнения
ПО ПродажиОборотыОбороты.Номенклатура = Основа.Номенклатура
И ПродажиОборотыОбороты.ВариантИсполнения = Основа.ВариантИсполнения
ГДЕ
Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВСЕВМЕСТЕ.ОстаткиНаСкладе,
ВСЕВМЕСТЕ.КолВыпущено,
ВСЕВМЕСТЕ.Статус,
ВСЕВМЕСТЕ.ПодЗаказСсылка,
ВСЕВМЕСТЕ.ЗаказНаПроизводство,
ВСЕВМЕСТЕ.ДатаИсполнения,
ВСЕВМЕСТЕ.РабочийЦентр,
ВСЕВМЕСТЕ.Цена,
ВСЕВМЕСТЕ.КолЗаказа,
ВСЕВМЕСТЕ.Номенклатура,
ВСЕВМЕСТЕ.ВариантИсполнения,
ВСЕВМЕСТЕ.КолОборотПродажи
ИЗ
Справочник.Номенклатура КАК НоменклатураСправ
ЛЕВОЕ СОЕДИНЕНИЕ ВСЕВМЕСТЕ КАК ВСЕВМЕСТЕ
ПО ВСЕВМЕСТЕ.Номенклатура = НоменклатураСправ.Ссылка
ПоказатьВот так попробовала,тут пустые строки выходят
(11)Логично, вы ж всю номенклатуру выводите, а было ли с ней чего в присоединяемой таблице или нет - не известно. Если было - выведет заполненые поля, если не было, то только номенклатура будет заполнена.
Вместо
ВСЕВМЕСТЕ.Номенклатура
нужно сделать
НоменклатураСправ.Ссылка КАК Номенклатура
в последнем запросе из пакета
Вместо
ВСЕВМЕСТЕ.Номенклатура
нужно сделать
НоменклатураСправ.Ссылка КАК Номенклатура
в последнем запросе из пакета
(13)
вот так? нет. Все так же
ВЫБРАТЬ
ВСЕВМЕСТЕ.ОстаткиНаСкладе,
ВСЕВМЕСТЕ.КолВыпущено,
ВСЕВМЕСТЕ.Статус,
ВСЕВМЕСТЕ.ПодЗаказСсылка,
ВСЕВМЕСТЕ.ЗаказНаПроизводство,
ВСЕВМЕСТЕ.ДатаИсполнения,
ВСЕВМЕСТЕ.РабочийЦентр,
ВСЕВМЕСТЕ.Цена,
ВСЕВМЕСТЕ.КолЗаказа,
ВСЕВМЕСТЕ.Номенклатура,
ВСЕВМЕСТЕ.ВариантИсполнения,
ВСЕВМЕСТЕ.КолОборотПродажи
ИЗ
Справочник.Номенклатура КАК НоменклатураСправ
ЛЕВОЕ СОЕДИНЕНИЕ ВСЕВМЕСТЕ КАК ВСЕВМЕСТЕ
ПО (НоменклатураСправ.Ссылка = ВСЕВМЕСТЕ.Номенклатура)
Показатьвот так? нет. Все так же
(14)
Найдите 1 различие :)
ВЫБРАТЬ
ВСЕВМЕСТЕ.ОстаткиНаСкладе,
ВСЕВМЕСТЕ.КолВыпущено,
ВСЕВМЕСТЕ.Статус,
ВСЕВМЕСТЕ.ПодЗаказСсылка,
ВСЕВМЕСТЕ.ЗаказНаПроизводство,
ВСЕВМЕСТЕ.ДатаИсполнения,
ВСЕВМЕСТЕ.РабочийЦентр,
ВСЕВМЕСТЕ.Цена,
ВСЕВМЕСТЕ.КолЗаказа,
НоменклатураСправ.Ссылка КАК Номенклатура,
ВСЕВМЕСТЕ.ВариантИсполнения,
ВСЕВМЕСТЕ.КолОборотПродажи
ИЗ
Справочник.Номенклатура КАК НоменклатураСправ
ЛЕВОЕ СОЕДИНЕНИЕ ВСЕВМЕСТЕ КАК ВСЕВМЕСТЕ
ПО (НоменклатураСправ.Ссылка = ВСЕВМЕСТЕ.Номенклатура)
ПоказатьНайдите 1 различие :)
ВЫБРАТЬ
ЗаказНаПроизводствоТЧПродукция.Номенклатура КАК Номенклатура,
ЗаказНаПроизводствоТЧПродукция.ВариантИсполнения КАК ВариантИсполнения,
0 КАК КолОборотПродажи,
ЗаказНаПроизводствоТЧПродукция.Кол КАК Кол,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ЗаказНаПроизводствоТЧПродукция.Ссылка.ДатаИсполнения КАК ДатаИсполнения,
ЗаказНаПроизводствоТЧПродукция.Ссылка КАК ЗаказНаПроизводство,
ЗаказНаПроизводствоТЧПродукция.Ссылка.ПодЗаказ.Ссылка КАК ПодЗаказСсылка,
СтатусыВыполненияЗаказов.Статус КАК Статус,
ВыпускПродукцииТЧПродукция.Кол КАК КолВыпуск,
0 КАК ОстатокНаСкладе
Поместить ВременнаяТаблица
ИЗ
Документ.ЗаказНаПроизводство.ТЧПродукция КАК ЗаказНаПроизводствоТЧПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ЗаказНаПроизводствоТЧПродукция.Номенклатура)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции.ТЧПродукция КАК ВыпускПродукцииТЧПродукция
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ВыпускПродукцииТЧПродукция.ДокЗаказНаПроизводство.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказНаПроизводствоТЧПродукция.Ссылка)
ГДЕ
ЗаказНаПроизводствоТЧПродукция.Ссылка.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ОстаткиТМЦОстатки.Номенклатура,
ОстаткиТМЦОстатки.ВариантИсполнения,
0,
0,
0,
NULL,
NULL,
NULL,
NULL,
NULL,
ЕСТЬNULL(ОстаткиТМЦОстатки.КолОстаток, 0) - ЕСТЬNULL(РезервыОстатки.КолОстаток, 0)
ИЗ
РегистрНакопления.ОстаткиТМЦ.Остатки КАК ОстаткиТМЦОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
ПО ОстаткиТМЦОстатки.Номенклатура = РезервыОстатки.Номенклатура
И ОстаткиТМЦОстатки.ВариантИсполнения = РезервыОстатки.ВариантИсполнения
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ПродажиОборотыОбороты.Номенклатура,
ПродажиОборотыОбороты.ВариантИсполнения,
ПродажиОборотыОбороты.КолОборот,
0,
0,
NULL,
NULL,
NULL,
NULL,
NULL,
0
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК ПродажиОборотыОбороты
:
ВЫБРАТЬ * ИЗ ВременнаяТаблица
ПоказатьНо вы учтите, что ссылочные данные с NULL никогда не сгрупируются, т.к. это два разных значения.
Поэтому вам необходимо переделать запрос, чтобы из ссылочных данных он выводил только номенклатуру и вариант исполнения.
Если используется инструкция "СГРУППИРОВАТЬ", то в нее нужно определять только основные поля(измерения). К остальным должны применяться агрегатные функции, например, "СУММА", "МАКСИМУМ".
...
Данные изменения позволят сгруппировать по номенклатуре и доп. признакам. Если, допустим, нужен один любой заказ на производство, то можно к нему применить "МАКСИСМУМ" и убрать из группируемых полей.
ВЫБРАТЬ
Вложенный.Номенклатура,
Вложенный.ВариантИсполнения,
СУММА(Вложенный.КолОборотПродажи),
СУММА(Вложенный.Кол),
Вложенный.Цена,
Вложенный.ДатаИсполнения,
Вложенный.ЗаказНаПроизводство,
Вложенный.ПодЗаказСсылка,
Вложенный.Статус,
СУММА(Вложенный.КолВыпуск),
СУММА((Вложенный.ОстатокНаСкладе)
Показать...
СГРУППИРОВАТЬ ПО
Вложенный.Номенклатура,
Вложенный.ВариантИсполнения,
Вложенный.Цена,
Вложенный.ДатаИсполнения,
Вложенный.ЗаказНаПроизводство,
Вложенный.ПодЗаказСсылка,
Вложенный.Статус
Данные изменения позволят сгруппировать по номенклатуре и доп. признакам. Если, допустим, нужен один любой заказ на производство, то можно к нему применить "МАКСИСМУМ" и убрать из группируемых полей.
(21) У Вас основная таблица "ЗаказНаПроизводство". Поэтому остатки не считает
Чтобы видеть остатки следует использовать ПОЛНОЕ СОЕДИНЕНИЕ и функцию ЕСТЬNULL
А если нужно видеть продажи, где нет заказов, вместо ВНУТРЕННЕГО соединения, нужно использовать ЛЕВОЕ.
А если и то и другое, то нужно поменять порядок или вид соединения.
Таким образом если нужны все остатки и все продажи, то нужно два полных соединения с двойной функцией ЕСТЬNULL (ЕСТЬNULL(ПродажиОборотыОбороты.Номенклатура,ЕСТЬNULL(Основа.Номенклатура, Остатки.Номенклатура)). Если нужны остатки, то к таблице остатков следует лепить все левым соединением.
ВЫБРАТЬ
Остатки.ОстаткиНаСкладе КАК ОстаткиНаСкладе,
Основа.КолВыпущено,
Основа.Статус,
Основа.ПодЗаказСсылка,
Основа.ЗаказНаПроизводство,
Основа.ДатаИсполнения,
Основа.РабочийЦентр,
Основа.Цена,
Основа.КолЗаказа,
Основа.Номенклатура КАК Номенклатура,
Основа.ВариантИсполнения КАК ВариантИсполнения,
ПродажиОборотыОбороты.КолОборот КАК КолОборотПродажи
ПОМЕСТИТЬ ВСЕВМЕСТЕ
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты КАК ПродажиОборотыОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Основа КАК Основа
ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Основа.Номенклатура = Остатки.Номенклатура
И Основа.ВариантИсполнения = Остатки.ВариантИсполнения
ПО ПродажиОборотыОбороты.Номенклатура = Основа.Номенклатура
И ПродажиОборотыОбороты.ВариантИсполнения = Основа.ВариантИсполнения
ГДЕ
Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
;
ПоказатьЧтобы видеть остатки следует использовать ПОЛНОЕ СОЕДИНЕНИЕ и функцию ЕСТЬNULL
ВЫБРАТЬ
Остатки.ОстаткиНаСкладе КАК ОстаткиНаСкладе,
Основа.КолВыпущено,
Основа.Статус,
Основа.ПодЗаказСсылка,
Основа.ЗаказНаПроизводство,
Основа.ДатаИсполнения,
Основа.РабочийЦентр,
Основа.Цена,
Основа.КолЗаказа,
ЕСТЬNULL(Основа.Номенклатура, Остатки.Номенклатура) КАК Номенклатура,
ЕСТЬNULL(Основа.ВариантИсполнения, Остатки.ВариантИсполнения) КАК ВариантИсполнения,
ПродажиОборотыОбороты.КолОборот КАК КолОборотПродажи
ПОМЕСТИТЬ ВСЕВМЕСТЕ
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты КАК ПродажиОборотыОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Основа КАК Основа
ПОЛНОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Основа.Номенклатура = Остатки.Номенклатура
И Основа.ВариантИсполнения = Остатки.ВариантИсполнения
ПО ПродажиОборотыОбороты.Номенклатура = Основа.Номенклатура
И ПродажиОборотыОбороты.ВариантИсполнения = Основа.ВариантИсполнения
ГДЕ
Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
;
ПоказатьА если нужно видеть продажи, где нет заказов, вместо ВНУТРЕННЕГО соединения, нужно использовать ЛЕВОЕ.
А если и то и другое, то нужно поменять порядок или вид соединения.
Таким образом если нужны все остатки и все продажи, то нужно два полных соединения с двойной функцией ЕСТЬNULL (ЕСТЬNULL(ПродажиОборотыОбороты.Номенклатура,ЕСТЬNULL(Основа.Номенклатура, Остатки.Номенклатура)). Если нужны остатки, то к таблице остатков следует лепить все левым соединением.
(22)
Вот так вот,ничего не поменялось...
ВЫБРАТЬ
ЗаказНаПроизводствоТЧПродукция.Номенклатура,
ЗаказНаПроизводствоТЧПродукция.Кол КАК КолЗаказа,
ЦеныНоменклатурыСрезПоследних.Цена,
ЗаказНаПроизводство.ДатаИсполнения,
ЗаказНаПроизводство.Ссылка КАК ЗаказНаПроизводство,
ЗаказНаПроизводство.ПодЗаказ.Ссылка,
СтатусыВыполненияЗаказов.Статус,
ВыпускПродукцииТЧПродукция.Кол КАК КолВыпущено,
ЗаказНаПроизводствоТЧПродукция.ВариантИсполнения,
ЗаказНаПроизводствоТЧПродукция.Ссылка.РабочийЦентр КАК РабочийЦентр
ПОМЕСТИТЬ Основа
ИЗ
Документ.ЗаказНаПроизводство.ТЧПродукция КАК ЗаказНаПроизводствоТЧПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&НачалоПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних
ПО ЗаказНаПроизводствоТЧПродукция.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РабочиеЦентры КАК РабочиеЦентры
ПО ЗаказНаПроизводство.РабочийЦентр = РабочиеЦентры.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказНаПроизводство.Ссылка = СтатусыВыполненияЗаказов.Заказ
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ЗаказНаПроизводство.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции.ТЧПродукция КАК ВыпускПродукцииТЧПродукция
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ВыпускПродукцииТЧПродукция.ДокЗаказНаПроизводство
ГДЕ
НЕ ЗаказНаПроизводство.ПометкаУдаления
И ЗаказНаПроизводство.Проведен = ИСТИНА
И НЕ ВыпускПродукцииТЧПродукция.Ссылка.ПометкаУдаления
И ВыпускПродукцииТЧПродукция.Ссылка.Проведен = ИСТИНА
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ОстаткиТМЦОстатки.КолОстаток, 0) - ЕСТЬNULL(РезервыОстатки.КолОстаток, 0) КАК ОстаткиНаСкладе,
ОстаткиТМЦОстатки.Номенклатура,
ОстаткиТМЦОстатки.ВариантИсполнения
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ОстаткиТМЦ.Остатки КАК ОстаткиТМЦОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
ПО (РезервыОстатки.Номенклатура = ОстаткиТМЦОстатки.Номенклатура)
И (РезервыОстатки.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Остатки.ОстаткиНаСкладе КАК ОстаткиНаСкладе,
Основа.КолВыпущено,
Основа.Статус,
Основа.ПодЗаказСсылка,
Основа.ЗаказНаПроизводство,
Основа.ДатаИсполнения,
Основа.РабочийЦентр,
Основа.Цена,
Основа.КолЗаказа,
Основа.Номенклатура КАК Номенклатура,
Основа.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ПродажиОборотыОбороты.Номенклатура, ЕСТЬNULL(Основа.Номенклатура, Остатки.Номенклатура)) КАК КолОборотПродажи
ПОМЕСТИТЬ ВСЕВМЕСТЕ
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК ПродажиОборотыОбороты
ЛЕВОЕ СОЕДИНЕНИЕ Основа КАК Основа
ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Основа.Номенклатура = Остатки.Номенклатура
И Основа.ВариантИсполнения = Остатки.ВариантИсполнения
ПО ПродажиОборотыОбороты.Номенклатура = Основа.Номенклатура
И ПродажиОборотыОбороты.ВариантИсполнения = Основа.ВариантИсполнения
ГДЕ
Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МАКСИМУМ(ВСЕВМЕСТЕ.ОстаткиНаСкладе) КАК ОстаткиНаСкладе,
МАКСИМУМ(ВСЕВМЕСТЕ.КолВыпущено) КАК КолВыпущено,
ВСЕВМЕСТЕ.Статус,
ВСЕВМЕСТЕ.ПодЗаказСсылка,
ВСЕВМЕСТЕ.ЗаказНаПроизводство,
ВСЕВМЕСТЕ.ДатаИсполнения,
ВСЕВМЕСТЕ.РабочийЦентр,
ВСЕВМЕСТЕ.Цена,
МАКСИМУМ(ВСЕВМЕСТЕ.КолЗаказа) КАК КолЗаказа,
ВСЕВМЕСТЕ.ВариантИсполнения,
МАКСИМУМ(ВСЕВМЕСТЕ.КолОборотПродажи) КАК КолОборотПродажи,
НоменклатураСправ.Ссылка КАК Номенклатура
ИЗ
Справочник.Номенклатура КАК НоменклатураСправ
ЛЕВОЕ СОЕДИНЕНИЕ ВСЕВМЕСТЕ КАК ВСЕВМЕСТЕ
ПО (ВСЕВМЕСТЕ.Номенклатура = НоменклатураСправ.Ссылка)
ГДЕ
НЕ НоменклатураСправ.ПометкаУдаления
И НЕ НоменклатураСправ.ЭтоГруппа
И НоменклатураСправ.Активность
СГРУППИРОВАТЬ ПО
ВСЕВМЕСТЕ.Статус,
ВСЕВМЕСТЕ.ПодЗаказСсылка,
ВСЕВМЕСТЕ.ЗаказНаПроизводство,
ВСЕВМЕСТЕ.ДатаИсполнения,
ВСЕВМЕСТЕ.РабочийЦентр,
ВСЕВМЕСТЕ.Цена,
ВСЕВМЕСТЕ.ВариантИсполнения,
НоменклатураСправ.Ссылка
ПоказатьВот так вот,ничего не поменялось...
(23) Что-нибудь должно было поменяться.
1. Все-таки лучше использовать СУММА для количества, а не МАКСИМУМ, только если нет цели найти максимум (по заказу в данном случае).
2. В последнем запросе советую добавить команду "УПОРЯДОЧИТЬ ПО Номенклатура", чтобы нагляднее видеть результат.
3. Результатом запроса будут все продажи, заказы попадут только те, что есть в продажах, остатки попадут толь те что есть и в заказах и продажах. И номенклатура без продаж. Чтобы видеть все остатки и продажи, и заказы, нужно ПОЛНОЕ СОЕДИНЕНИЕ.
1. Все-таки лучше использовать СУММА для количества, а не МАКСИМУМ, только если нет цели найти максимум (по заказу в данном случае).
2. В последнем запросе советую добавить команду "УПОРЯДОЧИТЬ ПО Номенклатура", чтобы нагляднее видеть результат.
3. Результатом запроса будут все продажи, заказы попадут только те, что есть в продажах, остатки попадут толь те что есть и в заказах и продажах. И номенклатура без продаж. Чтобы видеть все остатки и продажи, и заказы, нужно ПОЛНОЕ СОЕДИНЕНИЕ.
(23) Таким образом запрос по идее должен выглядеть так:
ВЫБРАТЬ
ЗаказНаПроизводствоТЧПродукция.Номенклатура,
ЗаказНаПроизводствоТЧПродукция.Кол КАК КолЗаказа,
ЦеныНоменклатурыСрезПоследних.Цена,
ЗаказНаПроизводство.ДатаИсполнения,
ЗаказНаПроизводство.Ссылка КАК ЗаказНаПроизводство,
ЗаказНаПроизводство.ПодЗаказ.Ссылка,
СтатусыВыполненияЗаказов.Статус,
ВыпускПродукцииТЧПродукция.Кол КАК КолВыпущено,
ЗаказНаПроизводствоТЧПродукция.ВариантИсполнения,
ЗаказНаПроизводствоТЧПродукция.Ссылка.РабочийЦентр КАК РабочийЦентр
ПОМЕСТИТЬ Основа
ИЗ
Документ.ЗаказНаПроизводство.ТЧПродукция КАК ЗаказНаПроизводствоТЧПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&НачалоПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних
ПО ЗаказНаПроизводствоТЧПродукция.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РабочиеЦентры КАК РабочиеЦентры
ПО ЗаказНаПроизводство.РабочийЦентр = РабочиеЦентры.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказНаПроизводство.Ссылка = СтатусыВыполненияЗаказов.Заказ
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ЗаказНаПроизводство.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции.ТЧПродукция КАК ВыпускПродукцииТЧПродукция
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ВыпускПродукцииТЧПродукция.ДокЗаказНаПроизводство
ГДЕ
НЕ ЗаказНаПроизводство.ПометкаУдаления
И ЗаказНаПроизводство.Проведен = ИСТИНА
И НЕ ВыпускПродукцииТЧПродукция.Ссылка.ПометкаУдаления
И ВыпускПродукцииТЧПродукция.Ссылка.Проведен = ИСТИНА
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ОстаткиТМЦОстатки.КолОстаток, 0) - ЕСТЬNULL(РезервыОстатки.КолОстаток, 0) КАК ОстаткиНаСкладе,
ОстаткиТМЦОстатки.Номенклатура,
ОстаткиТМЦОстатки.ВариантИсполнения
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ОстаткиТМЦ.Остатки КАК ОстаткиТМЦОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
ПО (РезервыОстатки.Номенклатура = ОстаткиТМЦОстатки.Номенклатура)
И (РезервыОстатки.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(Остатки.ОстаткиНаСкладе, 0) КАК ОстаткиНаСкладе,
ЕСТЬNULL(Основа.КолВыпущено, 0) КАК КолВыпущено,
Основа.Статус,
Основа.ПодЗаказСсылка,
Основа.ЗаказНаПроизводство,
Основа.ДатаИсполнения,
Основа.РабочийЦентр,
ЕСТЬNULL(Основа.Цена, 0)
ЕСТЬNULL(Основа.КолЗаказа,0)
ЕСТЬNULL(ПродажиОборотыОбороты.КолОборот,0) КАК КолОборотПродажи,
ЕСТЬNULL(ПродажиОборотыОбороты.ВариантИсполнения, ЕСТЬNULL(Основа.ВариантИсполнения, Остатки.ВариантИсполнения)) КАК ВариантИсполнения,
ЕСТЬNULL(ПродажиОборотыОбороты.Номенклатура, ЕСТЬNULL(Основа.Номенклатура, Остатки.Номенклатура)) КАК Номенклатура
ПОМЕСТИТЬ ВСЕВМЕСТЕ
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК ПродажиОборотыОбороты
ПОЛНОЕ СОЕДИНЕНИЕ Основа КАК Основа
ПОЛНОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Основа.Номенклатура = Остатки.Номенклатура
И Основа.ВариантИсполнения = Остатки.ВариантИсполнения
ПО ПродажиОборотыОбороты.Номенклатура = Основа.Номенклатура
И ПродажиОборотыОбороты.ВариантИсполнения = Основа.ВариантИсполнения
ГДЕ
Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(ВСЕВМЕСТЕ.ОстаткиНаСкладе) КАК ОстаткиНаСкладе,
СУММА(ВСЕВМЕСТЕ.КолВыпущено) КАК КолВыпущено,
ВСЕВМЕСТЕ.Статус,
ВСЕВМЕСТЕ.ПодЗаказСсылка,
ВСЕВМЕСТЕ.ЗаказНаПроизводство,
ВСЕВМЕСТЕ.ДатаИсполнения,
ВСЕВМЕСТЕ.РабочийЦентр,
ВСЕВМЕСТЕ.Цена,
СУММА(ВСЕВМЕСТЕ.КолЗаказа) КАК КолЗаказа,
ВСЕВМЕСТЕ.ВариантИсполнения,
СУММА(ВСЕВМЕСТЕ.КолОборотПродажи) КАК КолОборотПродажи,
НоменклатураСправ.Ссылка КАК Номенклатура
ИЗ
Справочник.Номенклатура КАК НоменклатураСправ
ЛЕВОЕ СОЕДИНЕНИЕ ВСЕВМЕСТЕ КАК ВСЕВМЕСТЕ
ПО (ВСЕВМЕСТЕ.Номенклатура = НоменклатураСправ.Ссылка)
ГДЕ
НЕ НоменклатураСправ.ПометкаУдаления
И НЕ НоменклатураСправ.ЭтоГруппа
И НоменклатураСправ.Активность
СГРУППИРОВАТЬ ПО
ВСЕВМЕСТЕ.Статус,
ВСЕВМЕСТЕ.ПодЗаказСсылка,
ВСЕВМЕСТЕ.ЗаказНаПроизводство,
ВСЕВМЕСТЕ.ДатаИсполнения,
ВСЕВМЕСТЕ.РабочийЦентр,
ВСЕВМЕСТЕ.Цена,
ВСЕВМЕСТЕ.ВариантИсполнения,
НоменклатураСправ.Ссылка
УПОРЯДОЧИТЬ ПО Номенклатура
Показать
(27) Еще попробуйте заменить в предпоследнем запросе.
на
ГДЕ
Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
на
ГДЕ
Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания ИЛИ Основа.ЗаказНаПроизводство ЕСТЬ NULL
(30)
Раз появились остатки, должны были появиться и продажи. Может быть продаж нет в регистре за указанный период?
Цена не должна появляться, т.к. цены подтягиваются левым соединением к заказу. Хотите, чтобы были везде, нужно подтягивать левым соединением к последнему запросу.
(29) так,появились остатки,но продаж нет,и цена наверное тоже должна быть
Раз появились остатки, должны были появиться и продажи. Может быть продаж нет в регистре за указанный период?
Цена не должна появляться, т.к. цены подтягиваются левым соединением к заказу. Хотите, чтобы были везде, нужно подтягивать левым соединением к последнему запросу.
Я вижу 3 варианта. Нужно задуматься над вопросом: нужны ли в окончательном результате Статус, ПодЗаказСсылка, ЗаказНаПроизводство, ДатаИсполнения, РабочийЦентр?
1. Если они не нужны, то все просто, они удаляются из выборки в последнем запросе.
2. Если нужен только один вариант, и не важно какой, тогда указанные поля убираются из инструкции "СГРУППИРОВАТЬ ПО", а в выборке к ним добавляется агрегатная функция, например "МАКСИМУМ".
3. Если нужны все то можно обойти это препятствие с помощью интрукции "ИТОГИ". Т.е. к запросу добавить перед "УПОРЯДОЧИТЬ ПО"
В этом случае будут итоги по номенклатуре и можно будет увидеть заказы.
Но если не подходит ничего из перечисленного, стоит задуматься над тем, как вы хотите видеть количество остатков и продаж.
1. Если они не нужны, то все просто, они удаляются из выборки в последнем запросе.
2. Если нужен только один вариант, и не важно какой, тогда указанные поля убираются из инструкции "СГРУППИРОВАТЬ ПО", а в выборке к ним добавляется агрегатная функция, например "МАКСИМУМ".
3. Если нужны все то можно обойти это препятствие с помощью интрукции "ИТОГИ". Т.е. к запросу добавить перед "УПОРЯДОЧИТЬ ПО"
ИТОГИ
СУММА(ОстаткиНаСкладе),
СУММА(КолВыпущено),
МАКСИМУМ(ВСЕВМЕСТЕ.Статус),
МАКСИМУМ(ПодЗаказСсылка),
МАКСИМУМ(ЗаказНаПроизводство),
МАКСИМУМ(ДатаИсполнения),
МАКСИМУМ(РабочийЦентр),
МАКСИМУМ(Цена),
СУММА(КолЗаказа),
СУММА(КолОборотПродажи)
ПО
Номенклатура,
ВариантИсполнения
ПоказатьВ этом случае будут итоги по номенклатуре и можно будет увидеть заказы.
Но если не подходит ничего из перечисленного, стоит задуматься над тем, как вы хотите видеть количество остатков и продаж.
(36)Вот так?
Так номенклатур без заказа по 3 шт выводит...
ВЫБРАТЬ
ЗаказНаПроизводствоТЧПродукция.Номенклатура,
ЗаказНаПроизводствоТЧПродукция.Кол КАК КолЗаказа,
ЗаказНаПроизводство.ДатаИсполнения,
ЗаказНаПроизводство.Ссылка КАК ЗаказНаПроизводство,
ЗаказНаПроизводство.ПодЗаказ.Ссылка,
СтатусыВыполненияЗаказов.Статус,
ВыпускПродукцииТЧПродукция.Кол КАК КолВыпущено,
ЗаказНаПроизводствоТЧПродукция.ВариантИсполнения,
ЗаказНаПроизводствоТЧПродукция.Ссылка.РабочийЦентр КАК РабочийЦентр
ПОМЕСТИТЬ Основа
ИЗ
Документ.ЗаказНаПроизводство.ТЧПродукция КАК ЗаказНаПроизводствоТЧПродукция
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РабочиеЦентры КАК РабочиеЦентры
ПО ЗаказНаПроизводство.РабочийЦентр = РабочиеЦентры.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО ЗаказНаПроизводство.Ссылка = СтатусыВыполненияЗаказов.Заказ
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ЗаказНаПроизводство.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции.ТЧПродукция КАК ВыпускПродукцииТЧПродукция
ПО ЗаказНаПроизводствоТЧПродукция.Ссылка = ВыпускПродукцииТЧПродукция.ДокЗаказНаПроизводство
ГДЕ
НЕ ЗаказНаПроизводство.ПометкаУдаления
И ЗаказНаПроизводство.Проведен = ИСТИНА
И НЕ ВыпускПродукцииТЧПродукция.Ссылка.ПометкаУдаления
И ВыпускПродукцииТЧПродукция.Ссылка.Проведен = ИСТИНА
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ОстаткиТМЦОстатки.КолОстаток, 0) - ЕСТЬNULL(РезервыОстатки.КолОстаток, 0) КАК ОстаткиНаСкладе,
ОстаткиТМЦОстатки.Номенклатура,
ОстаткиТМЦОстатки.ВариантИсполнения
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ОстаткиТМЦ.Остатки КАК ОстаткиТМЦОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
ПО (РезервыОстатки.Номенклатура = ОстаткиТМЦОстатки.Номенклатура)
И (РезервыОстатки.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(Остатки.ОстаткиНаСкладе, 0) КАК ОстаткиНаСкладе,
ЕСТЬNULL(Основа.КолВыпущено, 0) КАК КолВыпущено,
Основа.Статус,
Основа.ПодЗаказСсылка,
Основа.ЗаказНаПроизводство,
Основа.ДатаИсполнения,
Основа.РабочийЦентр,
ЕСТЬNULL(Основа.КолЗаказа, 0) КАК КолЗаказа,
ЕСТЬNULL(ПродажиОборотыОбороты.КолОборот, 0) КАК КолОборотПродажи,
ЕСТЬNULL(ПродажиОборотыОбороты.ВариантИсполнения, ЕСТЬNULL(Основа.ВариантИсполнения, Остатки.ВариантИсполнения)) КАК ВариантИсполнения,
ЕСТЬNULL(ПродажиОборотыОбороты.Номенклатура, ЕСТЬNULL(Основа.Номенклатура, Остатки.Номенклатура)) КАК Номенклатура
ПОМЕСТИТЬ ВСЕВМЕСТЕ
ИЗ
РегистрНакопления.ПродажиОбороты.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК ПродажиОборотыОбороты
ПОЛНОЕ СОЕДИНЕНИЕ Основа КАК Основа
ПОЛНОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Основа.Номенклатура = Остатки.Номенклатура
И Основа.ВариантИсполнения = Остатки.ВариантИсполнения
ПО ПродажиОборотыОбороты.Номенклатура = Основа.Номенклатура
И ПродажиОборотыОбороты.ВариантИсполнения = Основа.ВариантИсполнения
ГДЕ
(Основа.ЗаказНаПроизводство.ДатаИсполнения МЕЖДУ &ДатаНачала И &ДатаОкончания
ИЛИ Основа.ЗаказНаПроизводство ЕСТЬ NULL)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВСЕВМЕСТЕ.ОстаткиНаСкладе КАК ОстаткиНаСкладе,
ВСЕВМЕСТЕ.КолВыпущено КАК КолВыпущено,
ВСЕВМЕСТЕ.Статус КАК Статус,
ВСЕВМЕСТЕ.ПодЗаказСсылка КАК ПодЗаказСсылка,
ВСЕВМЕСТЕ.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
ВСЕВМЕСТЕ.ДатаИсполнения КАК ДатаИсполнения,
ВСЕВМЕСТЕ.РабочийЦентр КАК РабочийЦентр,
ВСЕВМЕСТЕ.КолЗаказа КАК КолЗаказа,
ВСЕВМЕСТЕ.ВариантИсполнения КАК ВариантИсполнения,
ВСЕВМЕСТЕ.КолОборотПродажи КАК КолОборотПродажи,
НоменклатураСправ.Ссылка КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ИЗ
Справочник.Номенклатура КАК НоменклатураСправ
ЛЕВОЕ СОЕДИНЕНИЕ ВСЕВМЕСТЕ КАК ВСЕВМЕСТЕ
ПО (ВСЕВМЕСТЕ.Номенклатура = НоменклатураСправ.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = НоменклатураСправ.Ссылка)
ГДЕ
НЕ НоменклатураСправ.ПометкаУдаления
И НЕ НоменклатураСправ.ЭтоГруппа
И НоменклатураСправ.Активность
УПОРЯДОЧИТЬ ПО
Номенклатура
ИТОГИ
СУММА(ОстаткиНаСкладе),
СУММА(КолВыпущено),
МАКСИМУМ(Статус),
МАКСИМУМ(ПодЗаказСсылка),
МАКСИМУМ(ЗаказНаПроизводство),
МАКСИМУМ(ДатаИсполнения),
МАКСИМУМ(РабочийЦентр),
СУММА(КолЗаказа),
СУММА(КолОборотПродажи),
МАКСИМУМ(Цена)
ПО
Номенклатура,
ВариантИсполнения
ПоказатьТак номенклатур без заказа по 3 шт выводит...
(38) Тогда определитесь с тем, что вам нужно. Если запрос будет выводится в отчете, например на СКД, то запрос без итогов - это то что вам нужно. Благодаря правильной настройке ресурсов можно получить удовлетворительный результат.
То что остатки выводится одинаковые для каждой строчки - это нормально.
И еще один момент: при запросе формируется таблица значений, где каждая строчка ничего не знает о других. Поэтому просто нельзя сказать, что если остаток выводился в строке 1, то его не должно быть в строке 2.
Надеюсь ответил.
То что остатки выводится одинаковые для каждой строчки - это нормально.
И еще один момент: при запросе формируется таблица значений, где каждая строчка ничего не знает о других. Поэтому просто нельзя сказать, что если остаток выводился в строке 1, то его не должно быть в строке 2.
Надеюсь ответил.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)