1. LOTR 22.05.19 14:02 Сейчас в теме

объединение запросов

ривет всем, необходимо объединить 2 запроса, я что то не пойму как, необходимо сделать выборку и заполнить табличную часть с типом значения ТаблицаЗначений, так как выборка из разных таблиц, по следующему алгоритму:

При открытии формы или при нажатии на кнопку «Найти» выполнить выборку всех документов «Заказ EDI» по условию:
• Дата документа больше значения в поле «Период с» и меньше значения в поле «Период по».
Для каждого выбранного заказа EDI:
• Найти документ «Заказ покупателя», созданный на основании текущего заказа EDI,
• Найти все записи регистра «Уведомления ORDRSP», у которых значение поля «Заказ EDI» равно текущему заказу EDI.
Выбранные заказы EDI вывести в таблицу и заполнить колонки по следующему алгоритму:
Колонка таблицы Алгоритм заполнения
Номер заказа клиента Значение реквизита «Номер в системе покупателя» текущего заказа EDI.
Номер заказа 1с Значение реквизита «Номер» найденного заказа покупателя.
Дата отправки Значение поля «Дата отправки» найденной записи регистра «Уведомления ORDRSP», имеющей самое позднее значение «Дата постановки», или пустое значение, если записи не найдены.
Дата первой отправки Значение поля «Дата отправки» найденной записи регистра «Уведомления ORDRSP», имеющей самое раннее значение «Дата постановки», или пустое значение, если записи не найдены.
Причина отклонения Значение поля «Причина отклонения» найденной записи регистра «Уведомления ORDRSP», имеющей самое позднее значение «Дата постановки», или пустое значение, если записи не найдены.
Пометка Не заполняется.
Дата заказа Значение реквизита «Дата» заказа покупателя.


Чтож первую часть я сделал вот так, я заполнил часть колонок,



"ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение,
| ЗаказEDI.НомерВСистемеПокупателя КАК НомерЗаказаКлиента,
| ЗначенияСвойствОбъектов.Объект КАК ЗаказПокупателя,
| ЗначенияСвойствОбъектов.Объект.Номер КАК НомерЗаказа1С,
| ЗначенияСвойствОбъектов.Объект.Дата КАК ДатаЗаказа1С,
| ЗаказEDI.Ссылка КАК ЗаказEDI
|ИЗ
| Документ.ЗаказEDI КАК ЗаказEDI,
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство
| И ЗначенияСвойствОбъектов.Значение = ЗаказEDI.НомерВСистемеПокупателя";


Сделал 2 запрос дабы заполнить 3 оставшиеся колонки и тут встала проблема, он выводит либо 1 запрос либо 2, когда я объединяю, вот 2 запрос


ВЫБРАТЬ
УведомленияORDRSP.ПричинаОтклонения КАК ПричинаОтклонения,
ВложенныйЗапрос.ДатаОтправки КАК ДатаОтправки,
ВложенныйЗапрос.ДатаПервойОтправки КАК ДатаПервойОтправки
ИЗ
(ВЫБРАТЬ
МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаОтправки,
МИНИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПервойОтправки
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ПО УведомленияORDRSP.ДатаПостановки = ВложенныйЗапрос.ДатаОтправки


Как объединить так что бы все это вывелось в 1 ТабличноеПоле, обхединение дает вывод только 1 выборки, 2 сразу туда не попадают
Ответы
Избранное Подписка Сортировка: Древо
2. alex-l19041 9 22.05.19 14:17 Сейчас в теме
надо не объединять таблицы, а соединять по соответствию одинаковых полей в таблицах
3. alex-l19041 9 22.05.19 14:21 Сейчас в теме
Найти все записи регистра «Уведомления ORDRSP», у которых значение поля «Заказ EDI» равно текущему заказу EDI. - для этого во второй таблице надо выбирать Заказ EDI
4. LOTR 22.05.19 14:23 Сейчас в теме
что значит соединить? Можно пример, я уже многое перепробовал и вывода не было))
5. alex-l19041 9 22.05.19 14:24 Сейчас в теме
6. LOTR 22.05.19 14:32 Сейчас в теме
(5)Если речь идет о временных таблицах, то тут я ограничен так как работаю в 8.0
8. alex-l19041 9 22.05.19 14:34 Сейчас в теме
(6) можно и не использовать временные таблицы, а соединять результаты вложенных запросов (надеюсь они есть в 8.0 )
10. alex-l19041 9 22.05.19 14:38 Сейчас в теме
(6) ... немного не по теме... но советую обновить платформу до 8.2 (возможно необходимо сначала обновить на 8.1, а затем уже дальше)
11. LOTR 22.05.19 14:39 Сейчас в теме
(10)Заказчик не хочет, ему так комфортно))
12. LOTR 22.05.19 14:41 Сейчас в теме
(10)Он пишет что неоднозначное поле заказEDI
14. alex-l19041 9 22.05.19 14:42 Сейчас в теме
13. LOTR 22.05.19 14:41 Сейчас в теме
(10)Ну тоесть и там заказ и тут
7. LOTR 22.05.19 14:33 Сейчас в теме
Придется пилить супер запрос и я пока не пойму как это все связать))
9. alex-l19041 9 22.05.19 14:36 Сейчас в теме
(7) для начала добавить во вторую таблицу Заказ EDI по которому потом соединять
15. LOTR 22.05.19 16:24 Сейчас в теме
(9)Получается что то типа этого, но выводит чушь))

ВЫБРАТЬ
ЗаказEDI.НомерВСистемеПокупателя КАК НомерЗаказаКлиента,
ЗначенияСвойствОбъектов.Объект.Номер КАК НомерЗаказа1С,
ЗначенияСвойствОбъектов.Объект.Дата КАК ДатаЗаказа1С,
ЗаказEDI.Ссылка КАК ЗаказEDI,
NULL КАК ПричинаОтклонения,
NULL КАК ДатаОтправки,
NULL КАК ДатаПервойОтправки,
NULL КАК ЗаказEDI1
ИЗ
Документ.ЗаказEDI КАК ЗаказEDI,
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
ЗначенияСвойствОбъектов.Свойство = &Свойство
И ЗначенияСвойствОбъектов.Значение = ЗаказEDI.НомерВСистемеПокупателя

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
NULL,
NULL,
NULL,
NULL,
УведомленияORDRSP.ПричинаОтклонения,
ВложенныйЗапрос.ДатаОтправки,
ВложенныйЗапрос.ДатаПервойОтправки,
УведомленияORDRSP.ЗаказEDI
ИЗ
(ВЫБРАТЬ
МАКСИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаОтправки,
МИНИМУМ(УведомленияORDRSP.ДатаПостановки) КАК ДатаПервойОтправки
ИЗ
РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
ПО УведомленияORDRSP.ДатаПостановки = ВложенныйЗапрос.ДатаОтправки
16. alex-l19041 9 22.05.19 16:32 Сейчас в теме
не "ОБЪЕДИНИТЬ ВСЕ " , а Левое соединение по ЗаказEDI
17. LOTR 22.05.19 16:40 Сейчас в теме
(16)я что то уже запутался и как будет выглядеть запрос))
18. acanta 55 22.05.19 17:17 Сейчас в теме
В конструкторе запросов помещаете оба запроса во временные таблицы и затем пишете итоговый запрос с левым соединением.
19. LOTR 22.05.19 17:39 Сейчас в теме
(18)8.0, временные появились в 8.2 или 8.1
20. acanta 55 22.05.19 17:42 Сейчас в теме
(19) значит соединяем два подзапроса?
21. LOTR 22.05.19 18:00 Сейчас в теме
(20)я в соединениях новичок, если можно то покажите как это делать)) отдельные запросы не сложно а как это все в одно слепить вот в чем дело))
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Бобров
зарплата от 100 000 руб. до 150 000 руб.
Временный (на проект)

Студент (стажер) 1С
Нижний Новгород
зарплата от 25 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб.
Полный день