7.7 Запрос

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем sashadeo, 21 мар 2011.

  1. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Не подскажите как сделать в запросе до группировки условие Если тогда
    Например Запрос... и в нем условие
    Код:
    Если КоличествоЗ= 0 тогда
    КоличествоЗ=Количество;
    КонецЕсли;
    
    
    Не подскажите как это условие реализовать в запросе?

    Делал вот так

    |Условие(ЗаявКол=0; ЗаявКол=Количество );

    ошибку выдал
  2. Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    |Условие(?(ЗаявКол=0, ЗаявКол=Количество,ЗаявКол=0));
    где ? это
    ?(<?>,,)
    Синтаксис:
    ?(<Логич_выраж>,<Выраж1>,<Выраж2>)
    Назначение:
    Возвращает значение первого выражения, если условие истинно, иначе - значение второго выражения.
    результат вычисления условного выражения.
    Параметры:
    <Логич_выраж> - логическое выражение,
    <Выраж1> - выражение,
    <Выраж2> - выражение.
  3. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Мего БОльшое вам спасибо!!!!
  4. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Сделал так:
    |Условие(?(ЗаявКол=0, ЗаявКол=Количество,ЗаявКол=ЗаявКол));

    Вылезла ошибка:

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    {D:\ОТЧЕТЫ\НЕДООТГРУЗКА\НЕДООТГРУЗКА.ERT(31)}: Условие(?(ЗаявКол=0, ЗаявКол <<?>> =Количество,ЗаявКол=ЗаявКол));
    Запрос[14] : Ожидается запятая

    Это сам запрос
    Код:
    Процедура Выборка(датан,датак,Тзшка) 
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сф)
    |Период с датан по датаК;  
    |ОбрабатыватьДокументы все;
    |РеализацияПродукции = Документ.РеализацияТоваров.ТекущийДокумент;
    |Датадок = Документ.РеализацияТоваров.ТекущийДокумент.Датадок;
    |Количество = Документ.РеализацияТоваров.Количество;
    |ЗаявКол =  Документ.РеализацияТоваров.ЗаявКол;
    |Сумма = Документ.РеализацияТоваров.Сумма;
    |ТМЦ = Документ.РеализацияТоваров.ТМЦ;
    |Цена = Документ.РеализацияТоваров.Цена;
    |Функция КоличествоСумма = Сумма(Количество);
    |Функция СуммаСумма = Сумма(Сумма);
    |Функция   ЗаявКолСумма = Сумма(ЗаявКол);
    |Условие(?(ЗаявКол=0,ЗаявКол=Количество,ЗаявКол=ЗаявКол));
    |Группировка ТМЦ;
    |"
    ;  
    
    
  5. Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    ошибся, не срабатывает "?" в запросе.
    попробуй
    Код:
    Если Запрос.ЗаявКол = 0 Тогда
    ЗаявКол=Запрос.Количество;
    КонецЕсли;
    
    
    
    и ни какого |Условие в запрос не ставь
  6. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Это не сработает т.к мне надо что бы условие было до группировки в запросе
    Т.е если делать как вы говорите то будет так

    Условие
    Код:
    Если КоличествоЗ=0 Тогда
    КоличествоЗ=Количество
    
    
    Накладная 1

    КоличествоЗ Количество
    Хлеб 0 40
    Хлеб 0 20
    Хлеб 0 10
    Хлеб 10 8
    Хлеб 0 10
    Хлеб 5 2


    Если по вашему условию то это уже будет после группировки в запросе и выдаст

    КоличествоЗ Количество
    Хлеб 15 90

    А мне надо до группировки в запросе что бы условие применялось не к сгруперовоным запесям а к каждой записи отдельно

    КоличествоЗ Количество
    Хлеб 40 40
    Хлеб 20 20
    Хлеб 10 10
    Хлеб 10 8
    Хлеб 10 10
    Хлеб 5 2

    Далее пойдет группировка в запросе и запрос выдаст

    КоличествоЗ Количество
    Хлеб 95 90
  7. Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Тогда уже в цикле ставьте условие и там присваивайте новое значение
    Код:
    Пока Запрос.Группировка(1) = 1 Цикл
    // ваше присвоение 
    КонецЦикла;
    
    
  8. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Он выведет вот так:

    Накладная 1

    КоличествоЗ Количество
    Хлеб 0 40
    Хлеб 0 20
    Хлеб 0 10
    Хлеб 10 8
    Хлеб 0 10
    Хлеб 5 2


    Если по вашему условию то это уже будет после группировки в запросе и выдаст

    КоличествоЗ Количество
    Хлеб 15 90


    Т.е уже к сгрупированным записям....

    А мне надо вот так:

    оличествоЗ Количество
    Хлеб 40 40
    Хлеб 20 20
    Хлеб 10 10
    Хлеб 10 8
    Хлеб 10 10
    Хлеб 5 2

    Далее пойдет группировка в запросе и запрос выдаст

    КоличествоЗ Количество
    Хлеб 95 90

    Что бы до запрос группировка...
  9. Mitay_D
    Offline

    Mitay_D Опытный в 1С

    Регистрация:
    16 фев 2010
    Сообщения:
    314
    Симпатии:
    0
    Баллы:
    26
    Код:
     
    Группировка ТМЦ без групп без упорядочивания;
    
    
    он не будет группировать ТМЦ, а будет выдовать все как в документах
  10. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Дело в том что мне группировка нужна... но мне надо что бы до группировки было такое условие...

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