0
Scandsv
05.01.16
✎
20:55
|
Добрый день дорогие форумчане.
Если кому не трудно, подскажите.
Решаю задачки по 1с специалист и сравниваю их с теми решениями, что предлагают на сайтах.
Вот возник вопрос.
Есть запрос который отбирает партии товаров для списания по ФИФО/ЛИФО
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Услуга КАК Услуга,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
|ПОМЕСТИТЬ РасходнаяНакладная
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Услуга
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РасходнаяНакладная.Номенклатура КАК Номенклатура,
| РасходнаяНакладная.Услуга КАК Усуга,
| РасходнаяНакладная.Количество КАК Количество,
| РасходнаяНакладная.Сумма КАК Сумма,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СтоимостьОстаток, 0) КАК СтоимостьОстаток
|ИЗ
| РасходнаяНакладная КАК РасходнаяНакладная
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| РасходнаяНакладная.Номенклатура
| ИЗ
| РасходнаяНакладная)) КАК ОстаткиНоменклатурыОстатки
| ПО РасходнаяНакладная.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| ОстаткиНоменклатурыОстатки.Партии.МоментВремени" + СортировкаПартий + "
|ИТОГИ
| МАКСИМУМ(Услуга),
| МАКСИМУМ(Количество),
| МАКСИМУМ(Сумма),
| СУММА(КоличествоОстаток)
|ПО
| Номенклатура";
Почему в итогах используем функцию МАКСИМУМ????
|
|
1
Builder
05.01.16
✎
21:37
|
Насколько помню, можно использовать любую функцию, хоть СРЕДНЕЕ, результат будет одинаковый.
|
|
2
RomanYS
05.01.16
✎
21:57
|
В данном случае логичнее поместить эти поля в раздел "По" итогов чтобы сгруппировать по ним. Но тогда последующая выборка будет содержать четыре вложенных цикла, что очччень не удобно. Поэтому идут на хитрость: итоги берут по одному заведомо уникальному полю (номенклатура), а по остальным полям берут минимум или максимум (от заведомо одинаковых значений). Если поля не помещать в итоги, то выборке по номенклатуре(итог первого уровня) эти поля будут NULL, а значения будут только в выборке детальных записей.
(1)СРЕДНЕЕ не применимо к типам булево и строка.
|
|