8.х Запрос по трем таблицам

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем sae74, 16 авг 2012.

  1. TopicStarter Overlay
    sae74
    Offline

    sae74

    Регистрация:
    5 июл 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    конфигурация УТП.

    Нужно получить данные по трем таблицам: РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты (по движению Документа ОприходованиеТоваров) , РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты (по движению Документа СписаниеТоваров), и отдельно по Документ.ИнвентаризацияТоваровНаСкладе (проводок по нему не формируется, берем только значения из табличной части)

    Нужны данные по количеству и сумме по каждой номенклатуре.
    По отдельности я получаю все что мне нужно, а вот все вместе нет.

    В данном запросе получаю результат только по документу ИнвентаризацияТоваровНаСкладеЮ где я натупил?

    Код:
    Процедура ОсновныеДействияФормыЕще2(Кнопка)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Ведомость.Дата КАК Дата,
    | Ведомость.Склад КАК Склад,
    | Ведомость.ДокументВедомость КАК ДокументВедомость,
    | Ведомость.НоменклатураКод КАК НоменклатураКод,
    | Ведомость.Номенклатура КАК Номенклатура,
    | Ведомость.ВедомостьШт КАК ВедомостьШт,
    | Ведомость.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    | Ведомость.ВедомостьЦена КАК ВедомостьЦена,
    | Ведомость.ВедомостьГрн КАК ВедомостьГрн,
    | Пересчет.ПриходГрн,
    | Пересчет.ПриходШт,
    | Пересчет.РасходГрн,
    | Пересчет.РасходШт,
    | ЕСТЬNULL(Ведомость.ДокументВедомость, Пересчет.Регистратор) КАК Поле1,
    | ЕСТЬNULL(Ведомость.ПометкаУдаления, 0) КАК Поле2
    |ИЗ
    | (ВЫБРАТЬ
    |  ИнвентаризацияТоваровНаСкладе.Дата КАК Дата,
    |  ИнвентаризацияТоваровНаСкладе.Проведен КАК Проведен,
    |  ИнвентаризацияТоваровНаСкладе.Склад КАК Склад,
    |  ИнвентаризацияТоваровНаСкладе.Ссылка КАК ДокументВедомость,
    |  ИнвентаризацияТоваровНаСкладеТовары.Номенклатура.Код КАК НоменклатураКод,
    |  ИнвентаризацияТоваровНаСкладеТовары.Номенклатура КАК Номенклатура,
    |  ИнвентаризацияТоваровНаСкладеТовары.Количество КАК ВедомостьШт,
    |  ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |  ИнвентаризацияТоваровНаСкладеТовары.Цена КАК ВедомостьЦена,
    |  ИнвентаризацияТоваровНаСкладеТовары.Сумма КАК ВедомостьГрн,
    |  ИнвентаризацияТоваровНаСкладе.ПометкаУдаления КАК ПометкаУдаления
    | ИЗ
    |  Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
    |   ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе
    |   ПО ИнвентаризацияТоваровНаСкладеТовары.Ссылка = ИнвентаризацияТоваровНаСкладе.Ссылка) КАК Ведомость
    |  ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |   Излишки.ПриходГрн КАК ПриходГрн,
    |   Излишки.ПриходШт КАК ПриходШт,
    |   Недостачи.РасходШт КАК РасходШт,
    |   Недостачи.РасходГрн КАК РасходГрн,
    |   ЕСТЬNULL(Излишки.Номенклатура, Недостачи.Номенклатура) КАК Номенклатура,
    |   ЕСТЬNULL(Излишки.Склад, Недостачи.Склад) КАК Склад,
    |   ЕСТЬNULL(Недостачи.Регистратор, Излишки.Регистратор) КАК Регистратор
    |  ИЗ
    |   (ВЫБРАТЬ
    |	ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    |	ПартииТоваровНаСкладахОстаткиИОбороты.Склад КАК Склад,
    |	ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход КАК ПриходГрн,
    |	ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход КАК ПриходШт,
    |	ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор
    |   ИЗ
    |	РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, ДвиженияИГраницыПериода, ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
    |   ГДЕ
    |	ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОприходованиеТоваров) КАК Излишки
    |	ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |	 ТоварыВРозницеОстаткиИОбороты.Склад КАК Склад,
    |	 ТоварыВРозницеОстаткиИОбороты.Номенклатура КАК Номенклатура,
    |	 ТоварыВРозницеОстаткиИОбороты.КоличествоРасход КАК РасходШт,
    |	 ТоварыВРозницеОстаткиИОбороты.СуммаПродажнаяРасход КАК РасходГрн,
    |	 ТоварыВРозницеОстаткиИОбороты.Регистратор КАК Регистратор
    |	ИЗ
    |	 РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, ДвиженияИГраницыПериода, ) КАК ТоварыВРозницеОстаткиИОбороты
    |	ГДЕ
    |	 ТоварыВРозницеОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров) КАК Недостачи
    |	ПО Излишки.Склад = Недостачи.Склад
    |	 И Излишки.Регистратор = Недостачи.Регистратор
    |
    |  СГРУППИРОВАТЬ ПО
    |   ЕСТЬNULL(Недостачи.Регистратор, Излишки.Регистратор),
    |   ЕСТЬNULL(Излишки.Номенклатура, Недостачи.Номенклатура),
    |   Излишки.ПриходГрн,
    |   Излишки.ПриходШт,
    |   Недостачи.РасходШт,
    |   Недостачи.РасходГрн,
    |   ЕСТЬNULL(Излишки.Склад, Недостачи.Склад)) КАК Пересчет
    |  ПО Ведомость.Склад = Пересчет.Склад
    |   И Ведомость.ДокументВедомость = Пересчет.Регистратор
    |ГДЕ
    | Ведомость.Дата >= &ДатаНач
    | И Ведомость.Дата <= &ДатаКон
    | И Ведомость.ПометкаУдаления = &Нет";
    Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
    Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
    Запрос.УстановитьПараметр("Нет", Ложь);
    Результат = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    табл= Результат.выгрузить() ;
    ЭлементыФормы.табл.СоздатьКолонки();
    
    
    КонецПроцедуры
  2. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.987
    Симпатии:
    398
    Баллы:
    104
    В таких случаях старайтесь использовать временные таблицы. И делайте все поэтапно. В консоли запросов все отладьте. Старайтесь не использовать полное соединение. Этапы: 1) Сначала соедините РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты (по движению Документа ОприходованиеТоваров) , РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты (по движению Документа СписаниеТоваров)
    2) А уже к этому набору присоедините Документ.ИнвентаризацияТоваровНаСкладе
    Вот только не очень понятно, что означает это
    Что значит отдельно?

Поделиться этой страницей