Имя: Пароль:
1C
 
написать одним запросом
🠗 (Волшебник 05.05.2017 12:16)
0 skupidom
 
05.05.17
12:15
нужно написать 1 запросом:
выбрать и сгруппировать 1 - даты документов: перемещение и заказы поставщику.
2 группировкой - выбрать сами эти документы.
3 - группировкой выбрать содержание выбранных документов.
как написать этот запрос с указанными группировками с построителем ?
1 Mort
 
05.05.17
12:18
В каком виде хочешь получить ответ?
2 undertaker
 
05.05.17
12:19
через итоги?
3 skupidom
 
05.05.17
12:22
1 группировка отчета - дата поступления
2 группировка - раскрывается 1 группа - ссылки на документы
3 - раскрывается 2 группа - содержание доков
4 Лефмихалыч
 
05.05.17
12:26
выбрать из док.первый.табличнаячасть
объединить все
выбрать из док.второй.таблинаячасть
5 skupidom
 
05.05.17
13:20
получается вот такая ерунда
ЗапросДатаПоступления.Текст =
    // 1 Группировка: дата поступления
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ПеремещениеТоваровТовары.Ссылка.рар_ДатаПоступления КАК ДатаПоступления
    |ПОМЕСТИТЬ ДатаПоступления
    |ИЗ
    |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
    |ГДЕ
    |    (ПеремещениеТоваровТовары.ВнутреннийЗаказ = &заказаНет
    |            ИЛИ ПеремещениеТоваровТовары.ВнутреннийЗаказ.Проведен = ЛОЖЬ)
    |    И ПеремещениеТоваровТовары.Ссылка.рар_ДатаПоступления МЕЖДУ &нач И &кон
    |
    |СГРУППИРОВАТЬ ПО
    |    ПеремещениеТоваровТовары.Ссылка.рар_ДатаПоступления
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    рар_ЗаявкаНаВнутреннееПеремещениеТоваров.рар_ДатаПоступления
    |ИЗ
    |    Документ.рар_ЗаявкаНаВнутреннееПеремещениеТоваров КАК рар_ЗаявкаНаВнутреннееПеремещениеТоваров
    |ГДЕ
    |    рар_ЗаявкаНаВнутреннееПеремещениеТоваров.Проведен = ИСТИНА
    |    И рар_ЗаявкаНаВнутреннееПеремещениеТоваров.рар_ДатаПоступления МЕЖДУ &нач И &кон
    |
    |СГРУППИРОВАТЬ ПО
    |    рар_ЗаявкаНаВнутреннееПеремещениеТоваров.рар_ДатаПоступления
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ЗаказПоставщику.ДатаПоступления
    |ИЗ
    |    Документ.ЗаказПоставщику КАК ЗаказПоставщику
    |ГДЕ
    |    ЗаказПоставщику.Проведен = ИСТИНА
    |    И ЗаказПоставщику.ДатаПоступления МЕЖДУ &нач И &кон
    |
    |СГРУППИРОВАТЬ ПО
    |    ЗаказПоставщику.ДатаПоступления";
    ЗапросДатаПоступления.УстановитьПараметр("нач",ДатаНачалаПланПоступления);
    ЗапросДатаПоступления.УстановитьПараметр("кон",ДатаОкончанияПланПоступления);
    РезДатыПоступленияВыборка = ЗапросДатаПоступления.выполнить().выбрать();
    пока РезДатыПоступленияВыборка.следующий() цикл           
        // 2 Группировка: Вид документа:
        // ПЕРЕМЕЩЕНИЯ  
        // 3 Группировка: Перемещения
        ЗапросПеремещения = новый запрос;
        ЗапросПеремещения.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ПеремещениеТоваровТовары.Ссылка КАК Перемещения
        |ИЗ
        |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
        |ГДЕ
        |    (ПеремещениеТоваровТовары.ВнутреннийЗаказ = &заказаНет
        |            ИЛИ ПеремещениеТоваровТовары.ВнутреннийЗаказ.Проведен = ЛОЖЬ)
        |    И ПеремещениеТоваровТовары.Ссылка.рар_ДатаПоступления = &ВыборкаДатаПоступления
        |
        |СГРУППИРОВАТЬ ПО
        |    ПеремещениеТоваровТовары.Ссылка
        |
        |УПОРЯДОЧИТЬ ПО
        |    ПеремещениеТоваровТовары.Ссылка.Дата";
        ЗапросПеремещения.УстановитьПараметр("ВыборкаДатаПоступления",РезДатыПоступленияВыборка.ДатаПоступления);
        ВыборкаПеремещения = ЗапросПеремещения.Выполнить().Выбрать();
        пока ВыборкаПеремещения.Следующий() цикл
            // 4 Группировка: Содержание документа
            ЗапросСодержаниеПеремещения = новый запрос;
            ЗапросСодержаниеПеремещения.Текст =
            "ВЫБРАТЬ РАЗРЕШЕННЫЕ
            |    ПеремещениеТоваровТовары.Номенклатура,
            |    ПеремещениеТоваровТовары.Количество,
            |    ПеремещениеТоваровТовары.СерияНоменклатуры,
            |    ПеремещениеТоваровТовары.Цена,
            |    ПеремещениеТоваровТовары.СчетУчетаБУ,
            |    ПеремещениеТоваровТовары.СчетУчетаНУ,
            |    ПеремещениеТоваровТовары.рар_ВидРаботОтправителя,
            |    ПеремещениеТоваровТовары.рар_ВидРаботПолучателя,
            |    ПеремещениеТоваровТовары.рар_ДокументПартии
            |ИЗ
            |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
            |ГДЕ
            |    ПеремещениеТоваровТовары.Ссылка = &ВыбПеремещение";
            ЗапросСодержаниеПеремещения.УстановитьПараметр("ВыбПеремещение",ВыборкаПеремещения.Перемещения);
            ВыборкаСодержаниеПеремещения = ЗапросСодержаниеПеремещения.Выполнить().Выбрать();              
            
        конеццикла;
        
        // 2 Группировка: Вид документа:
        // ЗаявкаНаВнутреннееПеремещениеТоваров  
        // 3 Группировка: ЗаявкаНаВнутреннееПеремещениеТоваров
        ЗапросЗаявка = новый запрос;
        ЗапросЗаявка.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    рар_ЗаявкаНаВнутреннееПеремещениеТоваров.Ссылка как Заявка
        |ИЗ
        |    Документ.рар_ЗаявкаНаВнутреннееПеремещениеТоваров КАК рар_ЗаявкаНаВнутреннееПеремещениеТоваров
        |ГДЕ
        |    рар_ЗаявкаНаВнутреннееПеремещениеТоваров.Проведен = ИСТИНА
        |    И рар_ЗаявкаНаВнутреннееПеремещениеТоваров.рар_ДатаПоступления = &ВыборкаДатаПоступления
        |
        |СГРУППИРОВАТЬ ПО
        |    рар_ЗаявкаНаВнутреннееПеремещениеТоваров.Ссылка
        |
        |УПОРЯДОЧИТЬ ПО
        |    рар_ЗаявкаНаВнутреннееПеремещениеТоваров.Дата";
        ЗапросЗаявка.УстановитьПараметр("ВыборкаДатаПоступления",РезДатыПоступленияВыборка.ДатаПоступления);
        РезЗаявкаВыборка = ЗапросЗаявка.Выполнить().Выбрать();
        пока РезЗаявкаВыборка.Следующий() цикл
            // 4 Группировка: Содержание документа
            ЗапросСодержаниеЗаявка = новый запрос;
            ЗапросСодержаниеЗаявка.Текст =
            "ВЫБРАТЬ РАЗРЕШЕННЫЕ
            |    рар_ЗаявкаНаВнутреннееПеремещениеТоваровТовары.Номенклатура,
            |    рар_ЗаявкаНаВнутреннееПеремещениеТоваровТовары.Количество,
            |    рар_ЗаявкаНаВнутреннееПеремещениеТоваровТовары.СерияНоменклатуры,
            |    рар_ЗаявкаНаВнутреннееПеремещениеТоваровТовары.рар_ВидРаботОтправителя,
            |    рар_ЗаявкаНаВнутреннееПеремещениеТоваровТовары.рар_ВидРаботПолучателя,
            |    рар_ЗаявкаНаВнутреннееПеремещениеТоваровТовары.рар_ДокументПартии
            |ИЗ
            |    Документ.рар_ЗаявкаНаВнутреннееПеремещениеТоваров.Товары КАК рар_ЗаявкаНаВнутреннееПеремещениеТоваровТовары
            |ГДЕ
            |    рар_ЗаявкаНаВнутреннееПеремещениеТоваровТовары.Ссылка = &ВыбЗаявка";
            ЗапросСодержаниеЗаявка.УстановитьПараметр("ВыбЗаявка",РезЗаявкаВыборка.Заявка);
            ВыборкаСодержаниеЗаявка = ЗапросСодержаниеЗаявка.Выполнить().Выбрать();            
            
        конеццикла;         
    Конеццикла;
6 skupidom
 
05.05.17
13:21
как еее поместить в 1 запрос?
7 skupidom
 
05.05.17
15:37
соединять нужно через пакет запроса или через вложенный запрос?
8 Волшебник
 
модератор
05.05.17
20:02
(0) Вам надо, Вы и пишите.
AdBlock убивает бесплатный контент. 1Сергей