|
Результат левого соединения в запросе. Homer, maxab72, DeeK, yurikmellon2, lEvGl, Санта Клаус, Доминошник, RVN, КонецЕсли, Конструктор1С, Kigo_Kigo, abfm, trad, takefive, Amra, Prog_man, okmail, lirt82, formista2000, viraboy, Telcher, Гипервизор, Beduin, AlexKimp, vbus, sergeev-ag-1977, arsik, zenik, JohnGilbert, Fragster, RomanYS, Timon1405, PLUT, Silgis, shuhard, PR, zuza, Mr_Boogie, Franchiser, bimbambum, H A D G E H O G s, DimVad
| ☑ | ||
|---|---|---|---|---|
|
0
lirt82
09.09.26
✎
11:51
|
Не могу понять почему в запросе при левом соединении, результат пустой, должны же быть сохранены все строки из левой таблицы.
ВЫБРАТЬ ПеремещениеТоваровТовары.Номенклатура КАК Номенклатура, ПеремещениеТоваровТовары.Количество КАК ПеремещаемоеКоличество, ПеремещениеТоваровТовары.Ссылка.СкладОтправитель КАК СкладОтправитель ПОМЕСТИТЬ ВТ_ДанныеДокумента ИЗ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары ГДЕ ПеремещениеТоваровТовары.Ссылка = &ДокПеремещения И ПеремещениеТоваровТовары.Номенклатура.АвтоматическиКомплектовать ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ДанныеДокумента.Номенклатура КАК Номенклатура, ВТ_ДанныеДокумента.СкладОтправитель КАК СкладОтправитель, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) - ВТ_ДанныеДокумента.ПеремещаемоеКоличество КАК РазницаТоварыНаСкладах, ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) - ВТ_ДанныеДокумента.ПеремещаемоеКоличество КАК РазницаТоварыОрганизации ПОМЕСТИТЬ ВТ_МинусовыеОстатки ИЗ ВТ_ДанныеДокумента КАК ВТ_ДанныеДокумента ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаДокаПеремещения, ) КАК ТоварыНаСкладахОстатки ПО ВТ_ДанныеДокумента.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И ВТ_ДанныеДокумента.СкладОтправитель = ТоварыНаСкладахОстатки.Склад И ВТ_ДанныеДокумента.ПеремещаемоеКоличество > ТоварыНаСкладахОстатки.КоличествоОстаток ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаДокаПеремещения, ) КАК ТоварыОрганизацийОстатки ПО ВТ_ДанныеДокумента.Номенклатура = ТоварыОрганизацийОстатки.Номенклатура И ВТ_ДанныеДокумента.СкладОтправитель = ТоварыОрганизацийОстатки.Склад И ВТ_ДанныеДокумента.ПеремещаемоеКоличество > ТоварыОрганизацийОстатки.КоличествоОстаток ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_МинусовыеОстатки.Номенклатура КАК Номенклатура, ЕСТЬNULL(СборкаТоваров.Ссылка, НЕОПРЕДЕЛЕНО) КАК ДокСборка, ВТ_МинусовыеОстатки.СкладОтправитель КАК СкладОтправитель, ВЫБОР КОГДА ВТ_МинусовыеОстатки.РазницаТоварыНаСкладах > ВТ_МинусовыеОстатки.РазницаТоварыОрганизации ТОГДА ВТ_МинусовыеОстатки.РазницаТоварыОрганизации * -1 ИНАЧЕ ВТ_МинусовыеОстатки.РазницаТоварыНаСкладах * -1 КОНЕЦ КАК КоличествоДляСборки ИЗ ВТ_МинусовыеОстатки КАК ВТ_МинусовыеОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаТоваров КАК СборкаТоваров ПО ВТ_МинусовыеОстатки.СкладОтправитель = СборкаТоваров.Склад И ВТ_МинусовыеОстатки.Номенклатура = СборкаТоваров.Номенклатура ГДЕ СборкаТоваров.Проведен И СборкаТоваров.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийКомплектацияНоменклатуры.Комплектация) И СборкаТоваров.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаДокаПеремещения, ДЕНЬ) И &ДатаДокаПеремещения Если документ Сборка проведу тогда результат запроса не пустой https://yapx.ru/album/eL08F Если сниму с проведения тогда результат пустой https://yapx.ru/album/eL087 |
|||
|
1
RomanYS
09.09.26
✎
11:55
|
Не надо в "ГДЕ" условия делать на правую таблицу. Это делает соединение внутренним по факту
|
|||
|
2
maxab72
09.09.26
✎
11:57
|
ГДЕ
СборкаТоваров.Проведен |
|||
|
3
lirt82
09.09.26
✎
12:33
|
(1) тогда в последнем запросе нужно делать объединение?
цель доработки: перед проведением Перемещения получаем остаток из регистра, если остаток меньше чем мы перемещаем в документе Перемещение тогда либо создаем новую Сборку либо добавляем в уже существующую Сборку. в последнем запросе получить ссылку на док Сборка при условии проведенного дока Сборка и даты Сборки не позже даты документа Перемещения, если такого документа Сборки не найдется тогда в поле "ДокСборка" будет Неопределено, дальше по результату выполнения запроса 2 варианта, либо создается новый документ Сборка либо в найденный запросом док Сборка добавляется недостающая номенклатура для комплектации. |
|||
|
4
Kigo_Kigo
09.09.26
✎
12:52
|
(3) Собери еще обну ВТ где СборкаТоваров.Проведен, а потом уже собирай итоговую
|
|||
|
5
КонецЕсли
09.09.26
✎
13:06
|
...
ИЗ ВТ_МинусовыеОстатки КАК ВТ_МинусовыеОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаТоваров КАК СборкаТоваров ПО ВТ_МинусовыеОстатки.СкладОтправитель = СборкаТоваров.Склад И ВТ_МинусовыеОстатки.Номенклатура = СборкаТоваров.Номенклатура И СборкаТоваров.Проведен И СборкаТоваров.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийКомплектацияНоменклатуры.Комплектация) И СборкаТоваров.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаДокаПеремещения, ДЕНЬ) И &ДатаДокаПеремещения |
|||
|
6
lirt82
09.09.26
✎
13:22
|
(4) все получилось) благодарю
|
|||
|
7
lirt82
09.09.26
✎
13:25
|
(5) да я пробовал делать связь по условию, также при непроведеной сборке был пустой результат, а по (4) все получилось.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |