|
Подсчитать сумму документа | ☑ | ||
---|---|---|---|---|
0
bomster
05.07.12
✎
10:18
|
Есть документ, в него вводится несколько позиций номенклатуры без цен. Нужно подсчитать сумму всей введенной номенклатуры. Цены каждой номенклатуры можно взять в регистре где отображается вся номенклатура и ее цена взятая из документов поступления, но одна номенклатура присутствует в нескольких документах поступление, мне нужно использовать только первый документ где присутствует эта номенклатура. Как это можно сделать?
|
|||
1
ssh2006
05.07.12
✎
10:23
|
СрезПервых
|
|||
2
bomster
05.07.12
✎
10:27
|
Регистр накопления оборотный
|
|||
3
Wobland
05.07.12
✎
10:29
|
(2) это ты про цену?
|
|||
4
LAAry
05.07.12
✎
10:30
|
по минимуму даты регистратора.
|
|||
5
bomster
05.07.12
✎
10:36
|
Да цена в регистре накопления находится, туда вся номенклатура записывается из документов поступление. Пробовал писать в запросе минимум(ЗакупкиОбороты.Период), все равно берет цену из всех документов где встречается номенклатура.
|
|||
6
ParinovS
05.07.12
✎
10:38
|
Как вариант ВЫБРАТЬ ПЕРВЫЕ 1
А упорядочить по дате :) |
|||
7
bomster
05.07.12
✎
10:46
|
Тоже так пытался делать,не получалось, но не знаю как сделать чтоб из документа в котором надо сумму посчитать брались все строчки,т.е. каждая номенклатура, а из регистра, если в нем найдена данная номенклатура и она несколько раз встречается то брать цену только из первой строчки.
|
|||
8
LAAry
05.07.12
✎
10:46
|
Текст запроса
|
|||
9
bomster
05.07.12
✎
11:02
|
"ВЫБРАТЬ
| ВложенныйЗапрос.СтоимостьОборот КАК Стоимость, | ВложенныйЗапрос.НДСОборот КАК НДС, | ВложенныйЗапрос.КоличествоОборот КАК Количество1, | ВложенныйЗапрос.Количество |ИЗ | (ВЫБРАТЬ | ЗакупкиОбороты.Номенклатура КАК Номенклатура1, | ЗакупкиОбороты.СтоимостьОборот КАК СтоимостьОборот, | ЗакупкиОбороты.НДСОборот КАК НДСОборот, | ЗакупкиОбороты.КоличествоОборот КАК КоличествоОборот, | ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура, | ТребованиеНакладнаяМатериалы.Количество КАК Количество, | ЗакупкиОбороты.Период КАК Период | ИЗ | РегистрНакопления.Закупки.Обороты(, , Регистратор, ) КАК ЗакупкиОбороты | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ПО ЗакупкиОбороты.Номенклатура = ТребованиеНакладнаяМатериалы.Номенклатура | ГДЕ | (ЗакупкиОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг | ИЛИ ЗакупкиОбороты.Регистратор ССЫЛКА Документ.АвансовыйОтчет) | И ТребованиеНакладнаяМатериалы.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | ЗакупкиОбороты.Номенклатура, | ЗакупкиОбороты.СтоимостьОборот, | ЗакупкиОбороты.НДСОборот, | ЗакупкиОбороты.КоличествоОборот, | ТребованиеНакладнаяМатериалы.Номенклатура, | ТребованиеНакладнаяМатериалы.Количество, | ЗакупкиОбороты.Период | | ИМЕЮЩИЕ | ЗакупкиОбороты.Период = МИНИМУМ(ЗакупкиОбороты.Период)) КАК ВложенныйЗапрос" СуммаДокумента = 0; СуммаНДС=0; Рез = Запрос.Выполнить().Выбрать(); Пока Рез.Следующий() цикл СуммаДокумента = СуммаДокумента+Рез.количество*Рез.Стоимость/Рез.Количество1; СуммаНДС = СуммаНДС+Рез.НДС/Рез.Количество1*Рез.Количество; конеццикла; Вот так последняя версия, я и сам понимаю что это неправильно и что он по такому запросу и выберет все документы но как переделать я хз, уже как только не пробовал.Я правда в запросах еще пока не совсем силен может чего то не знаю в составлении запросов что решит проблему |
|||
10
bomster
05.07.12
✎
11:12
|
Вот так пробовал
"ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.КоличествоОборот КАК Количество1, | ВложенныйЗапрос.СтоимостьОборот КАК Стоимость, | ВложенныйЗапрос.НДСОборот КАК НДС, | ВложенныйЗапрос1.Номенклатура КАК Номенклатура1, | ВложенныйЗапрос1.Количество |ИЗ | (ВЫБРАТЬ ПЕРВЫЕ 1 | ЗакупкиОбороты.Номенклатура КАК Номенклатура, | ЗакупкиОбороты.КоличествоОборот КАК КоличествоОборот, | ЗакупкиОбороты.СтоимостьОборот КАК СтоимостьОборот, | ЗакупкиОбороты.НДСОборот КАК НДСОборот, | ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура1 | ИЗ | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Закупки.Обороты(, , Регистратор, ) КАК ЗакупкиОбороты | ПО ТребованиеНакладнаяМатериалы.Номенклатура = ЗакупкиОбороты.Номенклатура | ГДЕ | (ЗакупкиОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг | ИЛИ ЗакупкиОбороты.Регистратор ССЫЛКА Документ.АвансовыйОтчет) | И ТребованиеНакладнаяМатериалы.Ссылка = &ТекущийДокумент) КАК ВложенныйЗапрос | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура, | ТребованиеНакладнаяМатериалы.Количество КАК Количество | ИЗ | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ГДЕ | ТребованиеНакладнаяМатериалы.Ссылка = &ТекущийДокумент) КАК ВложенныйЗапрос1 | ПО ВложенныйЗапрос.Номенклатура = ВложенныйЗапрос1.Номенклатура"; |
|||
11
bomster
05.07.12
✎
11:12
|
так берет только первую номенклатуру из документа и первую строчку из регистра
|
|||
12
LAAry
05.07.12
✎
11:24
|
Отталкивайся от этого.соединять придется 2 раза: для поиска периода и для выбора данных по этому периоду. В таком виде использовать нельзя, лучше выбрать во временные данные регистра.
ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.Количество, | ЗакупкиОбороты.СтоимостьОборот КАК Стоимость, | ЗакупкиОбороты.НДСОборот КАК НДС, | ЗакупкиОбороты.КоличествоОборот КАК Количество1, |ИЗ | (ВЫБРАТЬ | | ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура, | ТребованиеНакладнаяМатериалы.Количество КАК Количество, | Минимум(ЗакупкиОбороты.Период) КАК Период | ИЗ | РегистрНакопления.Закупки.Обороты(, , Регистратор, Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг ИЛИ Регистратор ССЫЛКА Документ.АвансовыйОтчет) КАК ЗакупкиОбороты | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ПО ЗакупкиОбороты.Номенклатура = ТребованиеНакладнаяМатериалы.Номенклатура | ГДЕ | ТребованиеНакладнаяМатериалы.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | ТребованиеНакладнаяМатериалы.Номенклатура, | ТребованиеНакладнаяМатериалы.Количество) КАК ВложенныйЗапрос | Левое Соединение РегистрНакопления.Закупки.Обороты(, , Регистратор, Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг ИЛИ Регистратор ССЫЛКА Документ.АвансовыйОтчет) КАК ЗакупкиОбороты | По ВложенныйЗапрос.Номенклатура = ЗакупкиОбороты.Номенклатура и ВложенныйЗапрос.Период = ЗакупкиОбороты.Период |
|||
13
bomster
05.07.12
✎
11:30
|
спасибо большое, сейчас буду пробовать!
|
|||
14
bomster
05.07.12
✎
11:46
|
все правильно считает! LAAry, спасибо огромнейшее!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |