Имя: Пароль:
1C
1С v8
вопрос по группировкам
0 LivingStar
 
04.10.12
12:44
в запросе задается ВыборкаПоНоменклатуре = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам)

потом можно сделать обход по партии выбрав ВыборкаПоПартии = ВыборкаПоНоменклатуре.Выбрать()

а где в запросе задается эта группировка я не пойму, кто нибудь подскажет?

   Запрос.Текст = "
       |ВЫБРАТЬ
       |    РасходнаяНакладнаяТовары.Номенклатура,
       |    СУММА(РасходнаяНакладнаяТовары.Количество) КАК Количество,
       |    СУММА(РасходнаяНакладнаяТовары.Сумма) КАК Сумма
       |ПОМЕСТИТЬ Док
       |ИЗ
       |    Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
       |ГДЕ
       |    РасходнаяНакладнаяТовары.Ссылка = &Ссылка
       |    И РасходнаяНакладнаяТовары.Номенклатура.Услуга = ЛОЖЬ
       |
       |СГРУППИРОВАТЬ ПО
       |    РасходнаяНакладнаяТовары.Номенклатура
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    Док.Номенклатура КАК Номенклатура,
       |    Док.Количество КАК Количество,
       |    Док.Сумма КАК Сумма,
       |    ОстаткиНоменклатурыОстатки.Партия КАК Партия,
       |    ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
       |    ОстаткиНоменклатурыОстатки.СуммаОстаток,
       |    ВЫБОР
       |        КОГДА ОстаткиНоменклатурыОстатки.Партия = &Партия
       |            ТОГДА 1
       |        ИНАЧЕ 0
       |    КОНЕЦ КАК Приоритет
       |ИЗ
       |    Док КАК Док
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
       |                &МоментВремени,
       |                Номенклатура В
       |                    (ВЫБРАТЬ РАЗЛИЧНЫЕ
       |                        Док.Номенклатура
       |                    ИЗ
       |                        Док)) КАК ОстаткиНоменклатурыОстатки
       |        ПО Док.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
       |
       |УПОРЯДОЧИТЬ ПО
       |    Приоритет УБЫВ,
       |    Партия "+СОРТ+"
       |ИТОГИ
       |    МАКСИМУМ(Количество),
       |    МАКСИМУМ(Сумма),
       |    СУММА(КоличествоОстаток)
       |ПО
       |    Номенклатура";
       Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
       Запрос.УстановитьПараметр("Партия",        Партия);
       Запрос.УстановитьПараметр("Ссылка",        Ссылка);
       ВыборкаПоНоменклатуре = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
       Пока ВыборкаПоНоменклатуре.Следующий() Цикл
           Нехватка = ВыборкаПоНоменклатуре.Количество() - ВыборкаПоНоменклатуре.КоличествоОстаток;    
           Если Нехватка > 0 Тогда
               Сообщение       = Новый СообщениеПользователю;
               Сообщение.Текст = "Нехватает " + Нехватка + " единиц товара " + ВыборкаПоНоменклатуре.Номенклатура;
               Сообщение.Сообщить();
               Отказ = Истина;
               Продолжить;
           КонецЕсли;
       КонецЦикла;
       
       Себестоимость = 0;
       ВыборкаПоПартии = ВыборкаПоНоменклатуре.Выбрать();
       ОсталосьСписать = ВыборкаПоПартии.Количество;
1 LivingStar
 
04.10.12
12:45
как система понимает что первая группировка по номенклатуре а вторая по партии?
2 GLazNik
 
04.10.12
12:46
Понимает по этому:

       |ИТОГИ
       |    МАКСИМУМ(Количество),
       |    МАКСИМУМ(Сумма),
       |    СУММА(КоличествоОстаток)
       |ПО
       |    Номенклатура"

А по партиям, это не по партиям, а детальные записи.
3 DrShad
 
04.10.12
12:47
|ПО
       |    Номенклатура";
4 Жан Пердежон
 
04.10.12
12:47
в СП написано все
5 DrShad
 
04.10.12
12:48
(4) Сп у него ДенисЧ украл