![]() |
|
Запрос по двум табличным частям документа | ☑ | ||
---|---|---|---|---|
0
NIGHTHUNTER
26.05.22
✎
12:46
|
Подскажите пожалуйста по запросу.
Есть документ. У этого документа есть 2 табличных части. В первой ссылки на другой документ. У которого так же 2 нужные табличные части. Необходимо выбирать номенклатуру второго (другого документа), из одной табличной части, по ссылкам первой части документа и если Грузоотправитель = ПодразделениеЗаказчик, из этого другого документа. Выберет ли это правильно вот этот запрос? нужно делать подобный потом по ПодразделениеИсполнитель, я вот делать решил двумя разными запросами. Интересует выполнится ли условие в И? Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка, | ВЫБОР | КОГДА ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) | ТОГДА ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Комментарий | ИНАЧЕ ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Номенклатура | КОНЕЦ КАК Номенклатура, | ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Количество КАК Количество |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоЗаказчиком КАК ХХХ_НарядЗадание_ОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка В(&Ссылки) | И ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка.ПодразделениеЗаказчик = &ПодразделениеЗаказчик"; |
|||
1
NIGHTHUNTER
26.05.22
✎
12:54
|
Всего у меня получился такой код. Я сделал вот так. Вижу что можно было бы через объединение делать.
Это сработает? Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка, | ВЫБОР | КОГДА ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) | ТОГДА ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Комментарий | ИНАЧЕ ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Номенклатура | КОНЕЦ КАК Номенклатура, | ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Количество КАК Количество |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоЗаказчиком КАК ХХХ_НарядЗадание_ОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка В(&Ссылки) | И ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка.ПодразделениеЗаказчик = &Грузоотправитель"; Запрос.УстановитьПараметр("Ссылки", Объект.ХХХ_Основание.Выгрузить().ВыгрузитьКолонку("ДокументСсылка")); Запрос.УстановитьПараметр("Грузоотправитель", Объект.Грузоотправитель); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл НоваяСтрока = Объект.ХХХ_Товары.Добавить(); НоваяСтрока.Номенклатура = Выборка.Номенклатура; НоваяСтрока.Количество = Выборка.Количество; НоваяСтрока.ДокументСсылка = Выборка.ДокументСсылка; КонецЦикла; // Если Грузоотправитель = ПодразделениеИсполнитель, то запрос по Тч.ОтгруженоИсполнителем Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗадание_ОтгруженоИсполнителем.Ссылка КАК ДокументСсылка, | ВЫБОР | КОГДА ХХХ_НарядЗадание_ОтгруженоИсполнителем.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) | ТОГДА ХХХ_НарядЗадание_ОтгруженоИсполнителем.Комментарий | ИНАЧЕ ХХХ_НарядЗадание_ОтгруженоИсполнителем.Номенклатура | КОНЕЦ КАК Номенклатура, | ХХХ_НарядЗадание_ОтгруженоИсполнителем.Количество КАК Количество |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоИсполнителем КАК ХХХ_НарядЗадание_ОтгруженоИсполнителем |ГДЕ | ХХХ_НарядЗадание_ОтгруженоИсполнителем.Ссылка В(&Ссылки) | И ХХХ_НарядЗадание_ОтгруженоИсполнителем.Ссылка.ПодразделениеИсполнитель = &Грузоотправитель"; Запрос.УстановитьПараметр("Ссылки", Объект.ХХХ_Основание.Выгрузить().ВыгрузитьКолонку("ДокументСсылка")); Запрос.УстановитьПараметр("Грузоотправитель", Объект.Грузоотправитель); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл НоваяСтрока = Объект.ХХХ_Товары.Добавить(); НоваяСтрока.Номенклатура = Выборка.Номенклатура; НоваяСтрока.Количество = Выборка.Количество; НоваяСтрока.ДокументСсылка = Выборка.ДокументСсылка; КонецЦикла; |
|||
2
NIGHTHUNTER
26.05.22
✎
12:55
|
(1+) верхняя строчка перед первым запросом
// Если Грузоотправитель = ПодразделениеЗаказчик, то запрос по Тч.ОтгруженоЗаказчиком |
|||
3
Kassern
26.05.22
✎
12:56
|
(0) "ХХХ_НарядЗадание" - даже не хочу представлять, что это за наряд такой и какие там задания)
|
|||
4
NIGHTHUNTER
26.05.22
✎
12:57
|
Сам вопрос в том что, будет ли работать вот это условие?
|ГДЕ | ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка В(&Ссылки) | И ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка.ПодразделениеЗаказчик = &Грузоотправитель"; Когда идет выборка документа по ссылкам, из первой табличной части, и ещё по условию на подразделение, одно из |
|||
5
Kassern
26.05.22
✎
12:57
|
не знаете как отработает соединения таблиц - прочитайте про них, протестируйте на простых примерах с минимальным количеством строк
|
|||
6
NIGHTHUNTER
26.05.22
✎
12:57
|
(3) Да обычный документ, в использовании. Такие вот кто то придумал идентификаторы. А так ничего необычного.
|
|||
7
Kassern
26.05.22
✎
12:58
|
(4) вы должны понимать, что ГДЕ отрабатывает уже с итоговой таблицей после СВЯЗИ таблиц
|
|||
8
NIGHTHUNTER
26.05.22
✎
12:58
|
(5) Сейчас вопрос сработает ли запросы в (1) читать ничего нет времени. Это сейчас нужно выяснить. а не читать что то идти.
|
|||
9
NIGHTHUNTER
26.05.22
✎
13:00
|
(7) Там нет никаких связей, происходит отбор номенклатуры табличной части документа, по переданным в ГДЕ Ссылкам, из первой табличной части другого документа.
Сработает ли это если накладывается ещё условие в И ? | И ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка.ПодразделениеЗаказчик = &Грузоотправитель"; |
|||
10
Kassern
26.05.22
✎
13:01
|
(9) значит еще проще для вас, раз нет. Условия с И отработаются, куда они денутся. Вы не знаете как работает И? Отберутся все строчки, которые удовлетворяют обоим условиям.
|
|||
11
Ryzeman
26.05.22
✎
13:01
|
(7) ТЫ видишь у него связь таблиц?
|
|||
12
kobzon2
26.05.22
✎
13:02
|
(8) Что значит сработает ли запрос? В (5) правильно написали, заполни документы минимальными данными и тестируй.
|
|||
13
Kassern
26.05.22
✎
13:04
|
(11) я даже заглядывать не стал) Не ожидал, что будет вопрос по поводу И в условии) Это же блин самые азы
|
|||
14
NIGHTHUNTER
26.05.22
✎
13:05
|
(13) Для меня вот это как то необычно было
| ХХХ_НарядЗадание_ОтгруженоЗаказчиком.Ссылка В(&Ссылки) И ещё плюс отбор, как то не мог сообразить как это будет. |
|||
15
Kassern
26.05.22
✎
13:08
|
(14) И что тут не обычного? Простое условие на вхождение ссылки в коллекцию. Вот и получается, если ссылка входит в коллекцию и у нее все по жизни хорошо, тогда выводить строчку)
|
|||
16
Kassern
26.05.22
✎
13:09
|
я одного понять не могу, неужели для вас быстрее написать пост на Мисте, чем просто взять в консоли запросов быстро проверить результат?
|
|||
17
NIGHTHUNTER
26.05.22
✎
13:15
|
(16) Я открываю консоль сейчас. тут ещё к ней подлезть нужно. И ещё и на тестирование времени может не оказаться.
Я в теории хотел узнать, отрабатывает ли то что я привел в (1). Хоть и таким. не оптимальным образом. Консоль ещё тут только под тонким клиентом может работать. Я хотел спросить и делать. |
|||
18
Kassern
26.05.22
✎
13:17
|
(17) вы так это описываете, как будто целая история - открыть консоль)) Можно же просто через файл->Открыть и все дела. Или же поставить звездочку для быстрого доступа, если прикрутили ее к 1с. Щелк и консоль открылась, туда просто текст запроса вставили и параметры указали. Делов на 2 минуты, вы столько же по времени писали сам пост)
|
|||
19
NIGHTHUNTER
26.05.22
✎
13:19
|
(18) В голове буря. видимо нет энергии или силы. что бы сидеть самому и рубиться. Может вышла?!
Вчера например. я обнаружил что у меня нет карточки. Мысли подсказали, что я ее оставил в штанах, что нес, перешивать и подшивать другие. А ателье вчера не работало день. От всего, так. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |