Имя: Пароль:
1C
 
Запрос Вывод ПоступленияТМЦ по остаткам
0 bsd2008
 
13.05.11
10:13
Пытаюсь сделать отчет - вывод номенклатуры, текущих остатков и последних поступлений на эту номенклатуру, сделал через вложенный запрос-

ЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток,
   ВложенныйЗапрос.Поступление,
   ВложенныйЗапрос.ДатаПоступления,
   ВложенныйЗапрос.Товары.(
       КоличествоПоступления
   ),
   ВложенныйЗапрос.Поставщик
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Начпер, &Конпер, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 3
           ПоступлениеТоваровУслуг.Ссылка КАК Поступление,
           ПоступлениеТоваровУслуг.Дата КАК ДатаПоступления,
           ПоступлениеТоваровУслуг.Товары.(
               Номенклатура КАК НоменклатураПлоступления,
               Количество КАК КоличествоПоступления
           ) КАК Товары,
           ПоступлениеТоваровУслуг.Партнер КАК Поставщик
       ИЗ
           Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
       
       УПОРЯДОЧИТЬ ПО
           ДатаПоступления УБЫВ) КАК ВложенныйЗапрос
       ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ВложенныйЗапрос.Товары.НоменклатураПлоступления

но чтото не правильно, мысли?
1 bsd2008
 
13.05.11
10:28
.
2 bsd2008
 
13.05.11
10:58
...
3 catena
 
13.05.11
11:46
А зачем последнее поступление?
4 bsd2008
 
13.05.11
11:50
закупщики хотят, вроде как удобно будет им
5 FIXXXL
 
13.05.11
11:54
ВЫБРАТЬ ПЕРВЫЕ 3
у тебя товар одинаковый во всех поступлениях
6 FIXXXL
 
13.05.11
11:55
+(5) это вопрос
7 bsd2008
 
13.05.11
12:13
сделал по другому

ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 3
   ПоступлениеТоваровУслуг.Ссылка КАК Поступление,
   ПоступлениеТоваровУслуг.Дата КАК ДатаПоступления,
   ПоступлениеТоваровУслуг.Товары.(
       Номенклатура КАК НоменклатураПоступления,
       Количество КАК КоличествоПоступления
   ),
   ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
   ПоступлениеТоваровУслуг.Партнер КАК Поставщик,
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура1
ИЗ
   РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты КАК ТоварыОрганизацийОстаткиИОбороты,
   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ГДЕ
   ПоступлениеТоваровУслуг.Товары.Номенклатура = &Номенклатура1
   И ТоварыОрганизацийОстаткиИОбороты.Номенклатура = &Номенклатура1

УПОРЯДОЧИТЬ ПО
   ДатаПоступления УБЫВ

все выводится, НО незнаю как сделать шахматку т.е остаток 200 шт сейчас поступл посл на 60шт т.е остаток 240шт след поступл 10шт остаток 230 шт и т.п...
8 bsd2008
 
13.05.11
12:19
.
9 catena
 
13.05.11
12:20
"все выводится, НО незнаю как сделать шахматку т.е остаток 200 шт сейчас поступл посл на 60шт т.е остаток 240шт след поступл 10шт остаток 230 шт и т.п..."

Прикольно, это по какому принципу? А поступления  в ТоварыОрганизаций не пишуться? Или это фетиш такой, из документов их брать?
10 bsd2008
 
13.05.11
12:28
Пишутся но по "видам запасов" а вот вид запасов привязывается к поставщику, и используется если использовать аналитику по поставщикам но это большооой гимор...(
11 bsd2008
 
13.05.11
12:31
брать с документов плохо знаю, но это просто пример, можно создать регистр и при поступлении по нему проводить... принцип очень простой есть 20 шт товара берем посл поступления по дате и последовательно их распределяем т.е послпоступ1 5 шт товара т.е остаток 15 и т.д.. + группировка по партнеру из поступлений, далее по виду цены рассчитываем стоимость * количество и узнаем что от поставщика1 у нас товара на 5 шт и сумму такую то....
12 catena
 
13.05.11
12:32
(10)Ничего не поняла. Проблема в отсутствии поставщика? Так есть же регистратор.

И все-таки, почему
"остаток 200 шт сейчас поступл посл на 60шт т.е остаток 240шт "
И
"остаток 240шт след поступл 10шт остаток 230 шт "

Что надо-то? Остаток после каждого поступления?
13 bsd2008
 
13.05.11
12:32
опечатка (Ценаизвидацены * количество)
14 bsd2008
 
13.05.11
12:33
И все-таки, почему
"остаток 200 шт сейчас поступл посл на 60шт т.е остаток 240шт "
И
"остаток 240шт след поступл 10шт остаток 230 шт "

ошибся остаток 200 шт посл поступ на 60 шт ост 140 шт и т.п..
15 catena
 
13.05.11
12:34
(11)Понятно. Партий нет?
16 bsd2008
 
13.05.11
12:34
нет , УТ11 здесь РАУЗ...
17 bsd2008
 
13.05.11
12:39
и всетаки никто не подскажет как сделать шахматку т.е остаток 200 шт сейчас поступл посл на 60шт т.е остаток 240шт след поступл 10шт остаток 230 шт и т.п...
18 catena
 
13.05.11
14:12
Гыг

ВЫБРАТЬ
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК Приход,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор
ПОМЕСТИТЬ Приходы1
ИЗ
   РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &ДатаКон, Регистратор, , ) КАК ТоварыОрганизацийОстаткиИОбороты

СГРУППИРОВАТЬ ПО
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК Приход,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор,
   СУММА(Приходы1.Приход) КАК УжеРаспределилиНаЭтотМомент,
   ТоварыОрганизацийОстатки.КоличествоОстаток,
   ВЫБОР
       КОГДА ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход > ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(СУММА(Приходы1.Приход), 0)
           ТОГДА ТоварыОрганизацийОстатки.КоличествоОстаток - ЕСТЬNULL(СУММА(Приходы1.Приход), 0)
       ИНАЧЕ ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход
   КОНЕЦ КАК ПринадлежитЭтомуПоставщику
ИЗ
   РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаКон, ) КАК ТоварыОрганизацийОстатки
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &ДатаКон, Регистратор, , ) КАК ТоварыОрганизацийОстаткиИОбороты
           ЛЕВОЕ СОЕДИНЕНИЕ Приходы1 КАК Приходы1
           ПО ТоварыОрганизацийОстаткиИОбороты.Номенклатура = Приходы1.Номенклатура
               И ТоварыОрганизацийОстаткиИОбороты.Регистратор.Дата < Приходы1.Регистратор.Дата
       ПО (ТоварыОрганизацийОстаткиИОбороты.Номенклатура = ТоварыОрганизацийОстатки.Номенклатура)
ГДЕ
   ТоварыОрганизацийОстатки.Номенклатура = &Номенклатура

СГРУППИРОВАТЬ ПО
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
   ТоварыОрганизацийОстатки.КоличествоОстаток

ИМЕЮЩИЕ
   (СУММА(Приходы1.Приход) <= ТоварыОрганизацийОстатки.КоличествоОстаток
       ИЛИ СУММА(Приходы1.Приход) ЕСТЬ NULL )

УПОРЯДОЧИТЬ ПО
   Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор.Дата УБЫВ
19 bsd2008
 
16.05.11
07:18
СПАСИБО!
20 bsd2008
 
16.05.11
07:19
Пытаюсь добавить отбор по виду документа "ПоступлениеТоваровУслуг"

ГДЕ
ТоварыОрганизацийОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

вылазиет ошибка неправильный синтаксис..
21 bsd2008
 
16.05.11
15:37
прицепил цены,

ВЫБРАТЬ
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК Приход,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор
ПОМЕСТИТЬ Приходы1
ИЗ
   РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &ДатаКон, Регистратор, , ) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
   ТоварыОрганизацийОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

СГРУППИРОВАТЬ ПО
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК Приход,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор,
   СУММА(Приходы1.Приход) КАК УжеРаспределилиНаЭтотМомент,
   ТоварыОрганизацийОстатки.КоличествоОстаток,
   ВЫБОР
       КОГДА ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход > ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(СУММА(Приходы1.Приход), 0)
           ТОГДА ТоварыОрганизацийОстатки.КоличествоОстаток - ЕСТЬNULL(СУММА(Приходы1.Приход), 0)
       ИНАЧЕ ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход
   КОНЕЦ КАК ПринадлежитЭтомуПоставщику,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор.Партнер,
   ЦеныНоменклатурыСрезПоследних.ВидЦены,
   ЦеныНоменклатурыСрезПоследних.Цена,
   ЦеныНоменклатурыСрезПоследних.Упаковка,
   ВЫБОР
       КОГДА ЦеныНоменклатурыСрезПоследних.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
               ИЛИ ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Упаковка.Коэффициент, 0) = 0
           ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
       ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена / ЦеныНоменклатурыСрезПоследних.Упаковка.Коэффициент
   КОНЕЦ КАК ЦенаЗаЕд
ИЗ
   РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаКон, ) КАК ТоварыОрганизацийОстатки
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &ДатаКон, Регистратор, , ) КАК ТоварыОрганизацийОстаткиИОбороты
           ЛЕВОЕ СОЕДИНЕНИЕ Приходы1 КАК Приходы1
           ПО ТоварыОрганизацийОстаткиИОбороты.Номенклатура = Приходы1.Номенклатура
               И ТоварыОрганизацийОстаткиИОбороты.Регистратор.Дата < Приходы1.Регистратор.Дата
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
           ПО ТоварыОрганизацийОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
       ПО (ТоварыОрганизацийОстаткиИОбороты.Номенклатура = ТоварыОрганизацийОстатки.Номенклатура)
ГДЕ
   ТоварыОрганизацийОстатки.Номенклатура = &Номенклатура
   И Приходы1.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
   И ТоварыОрганизацийОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

СГРУППИРОВАТЬ ПО
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
   ТоварыОрганизацийОстатки.КоличествоОстаток,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор.Партнер,
   ЦеныНоменклатурыСрезПоследних.ВидЦены,
   ЦеныНоменклатурыСрезПоследних.Цена,
   ЦеныНоменклатурыСрезПоследних.Упаковка,
   ВЫБОР
       КОГДА ЦеныНоменклатурыСрезПоследних.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
               ИЛИ ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Упаковка.Коэффициент, 0) = 0
           ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
       ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена / ЦеныНоменклатурыСрезПоследних.Упаковка.Коэффициент
   КОНЕЦ

ИМЕЮЩИЕ
   (СУММА(Приходы1.Приход) <= ТоварыОрганизацийОстатки.КоличествоОстаток
       ИЛИ СУММА(Приходы1.Приход) ЕСТЬ NULL )

УПОРЯДОЧИТЬ ПО
   Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор.Дата УБЫВ

но в отчете теперь номенклатура невыбирается(