Добрый день, уважаемые форумчане!
Возникла проблема, долго уже бьюсь не могу корректно составить запрос. Есть конфигурация и в ней есть документ Отпуск в отделение, и этот документ является основанием для другого документа Уведомление. В этих документах указывается номенклатура и по партиям (серия), но вот бывают случаи когда серии в этих документах отличаются, но все равно общее количество номенклатуры должно быть одинаково. Если связывать по серии, то если допустим в отпуске нет этой серии, то тогда строка не попадает. Пробовал делать свой запрос с полным соединениям не по сериям а вообще по номенклатуре и документу основанию, но тогда у меня дублируются строки количества.
Был предложен такой вариант:
"ВЫБРАТЬ
| УведомлениеОВыдачеВОтделенияМДЛП.Ссылка КАК Уведомление,
| УведомлениеОВыдачеВОтделенияМДЛП.Основание КАК Отпуск,
| УведомлениеОВыдачеВОтделенияМДЛПТовары.Номенклатура КАК Номенклатура,
| УведомлениеОВыдачеВОтделенияМДЛПТовары.Серия КАК Серия,
| УведомлениеОВыдачеВОтделенияМДЛПТовары.Количество КАК Количество
|ПОМЕСТИТЬ ВТ_Уведомления
|ИЗ
| Документ.УведомлениеОВыдачеВОтделенияМДЛП КАК УведомлениеОВыдачеВОтделенияМДЛП
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.УведомлениеОВыдачеВОтделенияМДЛП.Товары КАК УведомлениеОВыдачеВОтделенияМДЛПТовары
| ПО УведомлениеОВыдачеВОтделенияМДЛП.Ссылка = УведомлениеОВыдачеВОтделенияМДЛПТовары.Ссылка
|ГДЕ
| УведомлениеОВыдачеВОтделенияМДЛП.Основание = &Ссылка
| И УведомлениеОВыдачеВОтделенияМДЛП.Дата > &Дата
| И УведомлениеОВыдачеВОтделенияМДЛП.Проведен
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОтпускТоваровВОтделениеТовары.Ссылка КАК Ссылка,
| ОтпускТоваровВОтделениеТовары.Номенклатура КАК Номенклатура,
| ОтпускТоваровВОтделениеТовары.СерияНоменклатуры КАК СерияНоменклатуры,
| ОтпускТоваровВОтделениеТовары.Количество КАК Количество
|ПОМЕСТИТЬ ВТ_Отпуска
|ИЗ
| Документ.ОтпускТоваровВОтделение.Товары КАК ОтпускТоваровВОтделениеТовары
|ГДЕ
| ОтпускТоваровВОтделениеТовары.Ссылка = &Ссылка
| И ОтпускТоваровВОтделениеТовары.Проведен
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(ВТ_Отпуска.Ссылка, ВТ_Уведомления.Отпуск) КАК Ссылка,
| ЕСТЬNULL(ВТ_Отпуска.Номенклатура, ВТ_Уведомления.Номенклатура) КАК Номенклатура,
| ЕСТЬNULL(ВТ_Отпуска.СерияНоменклатуры, ВТ_Уведомления.Серия) КАК СерияНоменклатуры,
| ЕСТЬNULL(ВТ_Отпуска.Количество, 0) КАК КоличествоОтпуска,
| ВТ_Уведомления.Уведомление КАК Уведомление,
| ЕСТЬNULL(ВТ_Уведомления.Количество, 0) КАК КоличествоВУведомлении
|ИЗ
| ВТ_Отпуска КАК ВТ_Отпуска
| ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Уведомления КАК ВТ_Уведомления
| ПО ВТ_Отпуска.Ссылка = ВТ_Уведомления.Отпуск
| И ВТ_Отпуска.Номенклатура = ВТ_Уведомления.Номенклатура
| И ВТ_Отпуска.СерияНоменклатуры = ВТ_Уведомления.Серия";
Показать
Все более менее хорошо, правда не попадает сюда в строку уведомление, и дублируется количество, можно ли как то в запросе сделать если серия допустим в другом документ отсутствует то количество равно 0?