Здравствуйте, есть проблема, не могу понять как сделать доработку. Есть обработка, рабочее место диспетчера ГП, в ней 2 области, первая - выводит внутренние заказы по дате, вторая - выводит документы созданные на основании внутреннего заказа. Бывают ситуации, когда создаются по 2 документа на основании, и они влияют на дату отгрузки, в обработке из за этого документ выводится на 2 разные даты. Нужно брать в учет только последние документы с переносом даты отгрузки, но я понять не могу как это реализовать в имеющемся запросе. Собственно вот он: Code: ВЫБРАТЬ Различные | ВложенныйЗапрос.ВнутреннийЗаказ |ПОМЕСТИТЬ ВложенныйЗапрос1 |ИЗ | (ВЫБРАТЬ | ВнутреннийЗаказДок.Ссылка КАК ВнутреннийЗаказ | ИЗ | Документ.ВнутреннийЗаказ КАК ВнутреннийЗаказДок | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО ВнутреннийЗаказДок.Заказчик = ЗначенияСвойствОбъектов.Объект | И (ЗначенияСвойствОбъектов.Свойство = &СвойствоРегион) | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗакрытиеВнутреннихЗаказов.Заказы КАК ЗакрытиеВнутреннихЗаказов | ПО ЗакрытиеВнутреннихЗаказов.ВнутреннийЗаказ = ВнутреннийЗаказДок.Ссылка | ГДЕ | ВнутреннийЗаказДок.Проведен | И ВнутреннийЗаказДок.Организация В (&Организация) | И ВнутреннийЗаказДок.ВидЗаказа = ЗНАЧЕНИЕ(Перечисление.ВидыВнутреннегоЗаказа.НаСклад) | И НЕ ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL | И (ВнутреннийЗаказДок.Подразделение В ИЕРАРХИИ (&Подразделение) | ИЛИ ВнутреннийЗаказДок.Подразделение = &ОтделПродажМебели) | И ЗакрытиеВнутреннихЗаказов.Ссылка ЕСТЬ NULL | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ВнутреннийЗаказДок.Ссылка | ИЗ | Документ.ВнутреннийЗаказ КАК ВнутреннийЗаказДок | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗакрытиеВнутреннихЗаказов.Заказы КАК ЗакрытиеВнутреннихЗаказов | ПО ЗакрытиеВнутреннихЗаказов.ВнутреннийЗаказ = ВнутреннийЗаказДок.Ссылка | ГДЕ | ВнутреннийЗаказДок.Проведен | И ВнутреннийЗаказДок.Организация В (&Организация) | И ВнутреннийЗаказДок.ВидЗаказа = ЗНАЧЕНИЕ(Перечисление.ВидыВнутреннегоЗаказа.НаСклад) | И (ВнутреннийЗаказДок.Подразделение В ИЕРАРХИИ (&Подразделение) | ИЛИ ВнутреннийЗаказДок.Подразделение = &ОтделПродажМебели) | И ВнутреннийЗаказДок.Заказчик В | (ВЫБРАТЬ | СоставГруппДоступностиСкладов.Склад | ИЗ | РегистрСведений.СоставГруппДоступностиСкладов КАК СоставГруппДоступностиСкладов | ГДЕ | СоставГруппДоступностиСкладов.ГруппаДоступности В | (ВЫБРАТЬ | Константы.тдЦентральныйСкладГПХранение | ИЗ | Константы КАК Константы) | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | СоставГруппДоступностиСкладов.Склад | ИЗ | РегистрСведений.СоставГруппДоступностиСкладов КАК СоставГруппДоступностиСкладов | ГДЕ | СоставГруппДоступностиСкладов.ГруппаДоступности В | (ВЫБРАТЬ | Константы.тдЦентральныйСкладГПСервисный | ИЗ | Константы КАК Константы)) | И ЗакрытиеВнутреннихЗаказов.Ссылка ЕСТЬ NULL ) КАК ВложенныйЗапрос |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВложенныйЗапрос1.ВнутреннийЗаказ, | НАЧАЛОПЕРИОДА(ВложенныйЗапрос1.ВнутреннийЗаказ.Дата, ДЕНЬ) КАК ДатаКонсолидации, | ЕСТЬNULL(Диспетчеризация_ПараметрыОтгрузки.ВремяНачалаЗагрузки, ДАТАВРЕМЯ(1, 1, 1)) КАК ВремяНачалаЗагрузкиТС, | ЕСТЬNULL(Диспетчеризация_ПлановоеИзменениеДатыОтгрузки.РасчетнаяДатаОтгрузки, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос1.ВнутреннийЗаказ.Дата, ДЕНЬ), ДЕНЬ, &НормативПоОтгрузкеСДатыКонсолидации / 24)) КАК РасчетнаяДатаОтгрузки, | ЕСТЬNULL(Диспетчеризация_ПлановоеИзменениеДатыОтгрузки.СмещениеДатыОтгрузки, 0) КАК ПлановоеСмещениеДатыОтгрузки, | Диспетчеризация_ВнеплановоеСмещениеДатыОтгрузки.Ссылка КАК ВнеплановоеСмещениеДатыОтгрузкиСсылка |ПОМЕСТИТЬ ВложенныйЗапрос2 |ИЗ | ВложенныйЗапрос1 КАК ВложенныйЗапрос1 | ЛЕВОЕ СОЕДИНЕНИЕ Документ.тдДиспетчеризацияЦепиПоставокГП КАК Диспетчеризация_ПараметрыОтгрузки | ПО ВложенныйЗапрос1.ВнутреннийЗаказ = Диспетчеризация_ПараметрыОтгрузки.ВнутреннийЗаказ | И (Диспетчеризация_ПараметрыОтгрузки.ВидОперации = ЗНАЧЕНИЕ(Перечисление.тдВидОперацииДиспетчеризация.ПараметрыОтгрузки)) | ЛЕВОЕ СОЕДИНЕНИЕ Документ.тдДиспетчеризацияЦепиПоставокГП КАК Диспетчеризация_ПлановоеИзменениеДатыОтгрузки | ПО ВложенныйЗапрос1.ВнутреннийЗаказ = Диспетчеризация_ПлановоеИзменениеДатыОтгрузки.ВнутреннийЗаказ | И (Диспетчеризация_ПлановоеИзменениеДатыОтгрузки.ВидОперации = ЗНАЧЕНИЕ(Перечисление.тдВидОперацииДиспетчеризация.ПлановоеИзменениеДатыОтгрузки)) | ЛЕВОЕ СОЕДИНЕНИЕ Документ.тдДиспетчеризацияЦепиПоставокГП КАК Диспетчеризация_ВнеплановоеСмещениеДатыОтгрузки | ПО ВложенныйЗапрос1.ВнутреннийЗаказ = Диспетчеризация_ВнеплановоеСмещениеДатыОтгрузки.ВнутреннийЗаказ | И (Диспетчеризация_ВнеплановоеСмещениеДатыОтгрузки.ВидОперации = ЗНАЧЕНИЕ(Перечисление.тдВидОперацииДиспетчеризация.ВнеплановоеСмещениеДатыОтгрузки)) |{УПОРЯДОЧИТЬ ПО | ВнеплановоеСмещениеДатыОтгрузкиСсылка.*} |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВложенныйЗапрос2.ВнутреннийЗаказ КАК ВнутреннийЗаказ, | ВложенныйЗапрос2.ДатаКонсолидации КАК ДатаКонсолидации, | ВложенныйЗапрос2.ВремяНачалаЗагрузкиТС КАК ВремяНачалаЗагрузкиТС, | ВложенныйЗапрос2.РасчетнаяДатаОтгрузки КАК РасчетнаяДатаОтгрузки, | ВложенныйЗапрос2.ПлановоеСмещениеДатыОтгрузки КАК ПлановоеСмещениеДатыОтгрузки, | ВложенныйЗапрос2.ВнеплановоеСмещениеДатыОтгрузкиСсылка КАК ВнеплановоеСмещениеДатыОтгрузкиСсылка |ПОМЕСТИТЬ ВложенныйЗапрос3 |ИЗ | ВложенныйЗапрос2 КАК ВложенныйЗапрос2 | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос2.ВнутреннийЗаказ, | ВложенныйЗапрос2.ДатаКонсолидации, | ВложенныйЗапрос2.ВремяНачалаЗагрузкиТС, | ВложенныйЗапрос2.РасчетнаяДатаОтгрузки, | ВложенныйЗапрос2.ПлановоеСмещениеДатыОтгрузки, | ВложенныйЗапрос2.ВнеплановоеСмещениеДатыОтгрузкиСсылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВложенныйЗапрос3.ВнутреннийЗаказ КАК ВнутреннийЗаказ, | ВложенныйЗапрос3.ДатаКонсолидации КАК ДатаКонсолидации, | ВложенныйЗапрос3.ВремяНачалаЗагрузкиТС КАК ВремяНачалаЗагрузкиТС, | ВложенныйЗапрос3.РасчетнаяДатаОтгрузки КАК РасчетнаяДатаОтгрузки, | ВложенныйЗапрос3.ПлановоеСмещениеДатыОтгрузки КАК ПлановоеСмещениеДатыОтгрузки, | ЕСТЬNULL(ВложенныйЗапрос3.ВнеплановоеСмещениеДатыОтгрузкиСсылка.ОкончательнаяДатаИВремяЗагрузки, ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос3.РасчетнаяДатаОтгрузки, ДЕНЬ, ВложенныйЗапрос3.ПлановоеСмещениеДатыОтгрузки + ЕСТЬNULL(ВложенныйЗапрос3.ВнеплановоеСмещениеДатыОтгрузкиСсылка.СмещениеДатыОтгрузки, 0)), ЧАС, ЧАС(ВложенныйЗапрос3.ВремяНачалаЗагрузкиТС)), МИНУТА, МИНУТА(ВложенныйЗапрос3.ВремяНачалаЗагрузкиТС)), СЕКУНДА, &НормативПоЗагрузкеТС)) КАК ОкончательныеДатаИВремяОтгрузкиЗаказа |ПОМЕСТИТЬ ВложенныйЗапрос4 |ИЗ | ВложенныйЗапрос3 КАК ВложенныйЗапрос3 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВложенныйЗапрос4.ВнутреннийЗаказ |ИЗ | ВложенныйЗапрос4 КАК ВложенныйЗапрос4 |ГДЕ | //ДатаКонсолидации//НАЧАЛОПЕРИОДА(ВложенныйЗапрос4.ДатаКонсолидации, ДЕНЬ) = &ДатаКонсолидации | //ОкончательнаяДатаОтгрузки//НАЧАЛОПЕРИОДА(ВложенныйЗапрос4.ОкончательныеДатаИВремяОтгрузкиЗаказа, ДЕНЬ) = &ОкончательныеДатаИВремяОтгрузкиЗаказа |"); Все таинство происходит во втором запросе, т.е. мне нужно брать только первые документы с видом Внеплановое и Плановое изменение даты отгрузки. Пробовал вложенный запрос в левом соединении с "Выбрать первые" но не работает вообще, т.е. какие то документы в итоге есть, но не то. Предложить ставить пометку удаления на неактуальные документы пока не рассматривается, хочется понять как в запросе это сделать Помогите, пожалуйста, тупняк словил, а задача висит. Update: Конкретно кусок нужного кода: Code: |ВЫБРАТЬ | ВложенныйЗапрос1.ВнутреннийЗаказ, | НАЧАЛОПЕРИОДА(ВложенныйЗапрос1.ВнутреннийЗаказ.Дата, ДЕНЬ) КАК ДатаКонсолидации, | ЕСТЬNULL(Диспетчеризация_ПараметрыОтгрузки.ВремяНачалаЗагрузки, ДАТАВРЕМЯ(1, 1, 1)) КАК ВремяНачалаЗагрузкиТС, | ЕСТЬNULL(Диспетчеризация_ПлановоеИзменениеДатыОтгрузки.РасчетнаяДатаОтгрузки, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос1.ВнутреннийЗаказ.Дата, ДЕНЬ), ДЕНЬ, &НормативПоОтгрузкеСДатыКонсолидации / 24)) КАК РасчетнаяДатаОтгрузки, | ЕСТЬNULL(Диспетчеризация_ПлановоеИзменениеДатыОтгрузки.СмещениеДатыОтгрузки, 0) КАК ПлановоеСмещениеДатыОтгрузки, | Диспетчеризация_ВнеплановоеСмещениеДатыОтгрузки.Ссылка КАК ВнеплановоеСмещениеДатыОтгрузкиСсылка |ПОМЕСТИТЬ ВложенныйЗапрос2 |ИЗ | ВложенныйЗапрос1 КАК ВложенныйЗапрос1 | ЛЕВОЕ СОЕДИНЕНИЕ Документ.тдДиспетчеризацияЦепиПоставокГП КАК Диспетчеризация_ПараметрыОтгрузки | ПО ВложенныйЗапрос1.ВнутреннийЗаказ = Диспетчеризация_ПараметрыОтгрузки.ВнутреннийЗаказ | И (Диспетчеризация_ПараметрыОтгрузки.ВидОперации = ЗНАЧЕНИЕ(Перечисление.тдВидОперацииДиспетчеризация.ПараметрыОтгрузки)) | ЛЕВОЕ СОЕДИНЕНИЕ Документ.тдДиспетчеризацияЦепиПоставокГП КАК Диспетчеризация_ПлановоеИзменениеДатыОтгрузки | ПО ВложенныйЗапрос1.ВнутреннийЗаказ = Диспетчеризация_ПлановоеИзменениеДатыОтгрузки.ВнутреннийЗаказ | И (Диспетчеризация_ПлановоеИзменениеДатыОтгрузки.ВидОперации = ЗНАЧЕНИЕ(Перечисление.тдВидОперацииДиспетчеризация.ПлановоеИзменениеДатыОтгрузки)) | ЛЕВОЕ СОЕДИНЕНИЕ Документ.тдДиспетчеризацияЦепиПоставокГП КАК Диспетчеризация_ВнеплановоеСмещениеДатыОтгрузки | ПО ВложенныйЗапрос1.ВнутреннийЗаказ = Диспетчеризация_ВнеплановоеСмещениеДатыОтгрузки.ВнутреннийЗаказ | И (Диспетчеризация_ВнеплановоеСмещениеДатыОтгрузки.ВидОперации = ЗНАЧЕНИЕ(Перечисление.тдВидОперацииДиспетчеризация.ВнеплановоеСмещениеДатыОтгрузки)) |{УПОРЯДОЧИТЬ ПО | ВнеплановоеСмещениеДатыОтгрузкиСсылка.*} |;