8.х Объединение 2х запросов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем RuslanKhanow, 15 дек 2015.

  1. TopicStarter Overlay
    RuslanKhanow
    Offline

    RuslanKhanow Опытный в 1С

    Регистрация:
    18 фев 2015
    Сообщения:
    145
    Симпатии:
    0
    Баллы:
    26
    УПП
    Надо в обработку вывести в табличное поле,значения из регистра накопления
    Написал запрос для вывода
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство,
                   |    ЗаказыНаПроизводство.ВидДвижения,
                   |    ЗаказыНаПроизводство.Номенклатура,
                   |    ЗаказыНаПроизводство.Количество
                   |ИЗ
                   |    РегистрНакопления.ЗаказыНаПроизводство КАК ЗаказыНаПроизводство
                   |ГДЕ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство = &ЗаказНаПроизводство
                   |    И ЗаказыНаПроизводство.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)" ;
    Запрос.УстановитьПараметр("ЗаказНаПроизводство",ЗаказНаПроизводство);
        Таблица = Запрос.Выполнить().Выбрать();
        Если Таблица.Количество()> 0 Тогда
            Пока Таблица.Следующий() Цикл
                НоваяСтрока = ТабличноеПоле1.Добавить();
                НоваяСтрока.Номенклатура = Таблица.Номенклатура;
                НоваяСтрока.ВЗаказе = Таблица.Количество; 
        КонецЦикла;
    КонецЕсли;
    
    
    Код:
        Запрос = Новый Запрос;
        Запрос.текст = "ВЫБРАТЬ
                      |    ЗаказыНаПроизводство.ВидДвижения,
                      |    СУММА(ЗаказыНаПроизводство.Количество) КАК Количество,
                      |    ЗаказыНаПроизводство.Номенклатура,
                      |    ЗаказыНаПроизводство.ЗаказНаПроизводство
                      |ИЗ
                      |    РегистрНакопления.ЗаказыНаПроизводство КАК ЗаказыНаПроизводство
                      |ГДЕ
                      |    ЗаказыНаПроизводство.ЗаказНаПроизводство = &ЗаказНаПроизводство
                      |    И ЗаказыНаПроизводство.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
                      |
                      |СГРУППИРОВАТЬ ПО
                      |    ЗаказыНаПроизводство.Номенклатура,
                      |    ЗаказыНаПроизводство.ВидДвижения,
                      |    ЗаказыНаПроизводство.ЗаказНаПроизводство";
        Запрос.УстановитьПараметр("ЗаказНаПроизводство",ЗаказНаПроизводство);
        Таблица = Запрос.Выполнить().Выбрать();
        Если Таблица.Количество()> 0 Тогда
            Пока Таблица.Следующий() Цикл
                НоваяСтрока = ТабличноеПоле1.Добавить();
                НоваяСтрока.Номенклатура = Таблица.Номенклатура;
                НоваяСтрока.ВыпущеноЦехом = Таблица.Количество; 
        КонецЦикла;
    КонецЕсли;
    
    
    
    а вот запрос для объединения,но он не работает
    Код:
       
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство,
                   |    ЗаказыНаПроизводство.ВидДвижения,
                   |    ЗаказыНаПроизводство.Номенклатура,
                   |    ЗаказыНаПроизводство.Количество КАК КоличествоПриход
                   |ИЗ
                   |    РегистрНакопления.ЗаказыНаПроизводство КАК ЗаказыНаПроизводство
                   |ГДЕ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство = &Регистратор
                   |    И ЗаказыНаПроизводство.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
                   |
                   |ОБЪЕДИНИТЬ
                   |
                   |ВЫБРАТЬ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство,
                   |    ЗаказыНаПроизводство.ВидДвижения,
                   |    ЗаказыНаПроизводство.Номенклатура,
                   |    СУММА(ЗаказыНаПроизводство.Количество)
                   |ИЗ
                   |    РегистрНакопления.ЗаказыНаПроизводство КАК ЗаказыНаПроизводство
                   |ГДЕ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство = &Регистратор
                   |    И ЗаказыНаПроизводство.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ЗаказыНаПроизводство.Номенклатура,
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство,
                   |    ЗаказыНаПроизводство.ВидДвижения";
       
    Запрос.УстановитьПараметр("Регистратор",ЗаказНаПроизводство);
        Таблица = Запрос.Выполнить().Выбрать();
        Если Таблица.Количество()> 0 Тогда
            Пока Таблица.Следующий() Цикл
                НоваяСтрока = ТабличноеПоле1.Добавить();
                НоваяСтрока.Номенклатура = Таблица.Номенклатура;
                НоваяСтрока.ВЗаказе = Таблица.КоличествоПриход; 
                НоваяСтрока.ВыпущеноЦехом = Таблица.КоличествоПриход; 
    
        КонецЦикла;
    КонецЕсли;
    
    
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    /vanga mode on/
    необходимо сделать подзапрос
    /vanga mode off/

    Что-то вроде такого:
    Код:
    Выбрать ВложенныйЗапрос.Поле1, ВложенныйЗапрос.Поле2, Сумма(ВложенныйЗапрос.Поле3) ИЗ(Выбрать Поле1, Поле2, Поле3 Из Таблица1 ОБЪЕДИНИТЬ ВСЕ Выбрать Поле1, Поле2, Поле3 Из Таблица2) КАК ВложенныйЗапрос Сгруппировать ПО Поле1, Поле2
  3. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    А что вы хотите в результате объединения получить у Вас же в выбборке присутствует поле | ЗаказыНаПроизводство.ВидДвижения,
    А у Вас в первом случае приход во втором расход
  4. TopicStarter Overlay
    RuslanKhanow
    Offline

    RuslanKhanow Опытный в 1С

    Регистрация:
    18 фев 2015
    Сообщения:
    145
    Симпатии:
    0
    Баллы:
    26
    вот смотрите какая задача,есть документа Заказ на производство,поступает заказа на изготовление изделий,первым запросом я вытаскиваю из регистра приход,это заносится в колонку "в заказе", колонка "Выпущена цехом " должна отображать какое количество продукции уже выпущено по данному заказу в настоящий момент,для этого я использовал вид движения расход
    Не знаю правильно ли вообще делаю
  5. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну вообще у вас это два разных поля зачем в запросе когда объеденяете это все в одно поле пихать.
    я тк предполагаю что должно быть что то типа того
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство,
                   |    ЗаказыНаПроизводство.Номенклатура,
                   |    ЗаказыНаПроизводство.Количество КАК КоличествоПриход,
                   |    0   КАК ВЗаказе
                   |ИЗ
                   |    РегистрНакопления.ЗаказыНаПроизводство КАК ЗаказыНаПроизводство
                   |ГДЕ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство = &Регистратор
                   |    И ЗаказыНаПроизводство.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
                   |
                   |ОБЪЕДИНИТЬ
                   |
                   |ВЫБРАТЬ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство,
                   |    ЗаказыНаПроизводство.Номенклатура,
                   |    0,
                   |    СУММА(ЗаказыНаПроизводство.Количество)
                   |ИЗ
                   |    РегистрНакопления.ЗаказыНаПроизводство КАК ЗаказыНаПроизводство
                   |ГДЕ
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство = &Регистратор
                   |    И ЗаказыНаПроизводство.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ЗаказыНаПроизводство.Номенклатура,
                   |    ЗаказыНаПроизводство.ЗаказНаПроизводство,
                   |    ЗаказыНаПроизводство.ВидДвижения";

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