Имя: Пароль:
1C
1С v8
Помогите дописать запрос
0 KIraA
 
25.07.17
12:55
Добрый день. Результат нужен такой....Чтобы при открытии формы Сметы, в уже заполненную ранее таблицу Товары(Номенклатура, количество, количество выданного), заполнялись данные из документа перемещения. Если номенклатура в Смете есть, то только количество выданного заполнялось, а если нет то и номенклатура и количество выданного.

Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПеремещениеТоваров.СсылкаНаХранилищеСмет,
    |    ПеремещениеТоваровТовары.Ссылка,
    |    ПеремещениеТоваровТовары.Номенклатура КАК Номенклатура,
    |    СУММА(ПеремещениеТоваровТовары.Количество) КАК Количество
    |ИЗ
    |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
    |        ПО ПеремещениеТоваровТовары.Ссылка = ПеремещениеТоваров.Ссылка
    |ГДЕ
    |    ПеремещениеТоваров.СсылкаНаХранилищеСмет = &СсылкаНаХранилищеСмет
    |
    |СГРУППИРОВАТЬ ПО
    |    ПеремещениеТоваровТовары.Номенклатура,
    |    ПеремещениеТоваров.СсылкаНаХранилищеСмет,
    |    ПеремещениеТоваровТовары.Ссылка
    |ИТОГИ
    |    СУММА(Количество)
    |ПО
    |    Номенклатура";
    
    Запрос.УстановитьПараметр("СсылкаНаХранилищеСмет",Объект.Ссылка);
    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    рез =  Объект.Товары.Выгрузить();
    
    Пока Выборка.Следующий() Цикл
СтрокаТЗ = рез.Найти(Выборка.Номенклатура, "Номенклатура");
    Если СтрокаТЗ = Неопределено Тогда


или совсем не так?
1 Волшебник
 
модератор
25.07.17
13:00
левое соединение с документом не требуется. Из табличной части документ доступен через поле Ссылка.

использование СГРУППИРОВАТЬ ПО и ИТОГИ в одном запросе — это моветон
2 KIraA
 
25.07.17
13:28
Тогда так

ВЫБРАТЬ
              ПеремещениеТоваровТовары.Номенклатура,
                  СУММА(ПеремещениеТоваровТовары.Количество) КАК Количество,
                  ПеремещениеТоваровТовары.Ссылка
              ИЗ
                  Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
              ГДЕ
                  ПеремещениеТоваровТовары.Ссылка.СсылкаНаХранилищеСмет = &СсылкаНаХранилищеСмет
              
              СГРУППИРОВАТЬ ПО
                  ПеремещениеТоваровТовары.Номенклатура,
                  ПеремещениеТоваровТовары.Ссылка
3 Волшебник
 
модератор
25.07.17
13:29
количество может быть в разных единицах измерения
4 KIraA
 
25.07.17
13:32
Ну оно ведь по номенклатуре группирует? Если метры то метры, шт-шт.
5 Ненавижу 1С
 
гуру
25.07.17
13:40
(4) одна и таже номенклатура в разных единицах, 1 штука и 1 упаковка = 20 штук