|
Добавление второго регистра в запрос | ☑ | ||
---|---|---|---|---|
0
Artyom20
28.10.14
✎
11:29
|
Добрый день, помогите пожалуйста добавить еще один регистр в запрос. Есть отчет, который вытаскивает последние продажи по товарам, мне нужно тащить туда еще себестоимость этих товаров на момент продажи.
вот запросы: Продажи: ВЫБРАТЬ ПродажиОбороты.ДокументПродажи, ПродажиОбороты.ДокументПродажи.Дата, ПродажиОбороты.Номенклатура, ПродажиОбороты.СтоимостьОборот ПОМЕСТИТЬ Продажи ИЗ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Продажи.ДокументПродажи, Продажи.ДокументПродажиДата, Продажи.СтоимостьОборот, Продажи.Номенклатура.Артикул КАК Номенклатура, NULL КАК ДокументДвиженияСсылка, NULL КАК ДокументДвиженияДата, NULL КАК Стоимость ИЗ (ВЫБРАТЬ МАКСИМУМ(Продажи.ДокументПродажиДата) КАК ДокументПродажиДата, Продажи.Номенклатура КАК Номенклатура ИЗ Продажи КАК Продажи СГРУППИРОВАТЬ ПО Продажи.Номенклатура) КАК ПоследняяПродажа ВНУТРЕННЕЕ СОЕДИНЕНИЕ Продажи КАК Продажи ПО ПоследняяПродажа.ДокументПродажиДата = Продажи.ДокументПродажиДата И ПоследняяПродажа.Номенклатура = Продажи.Номенклатура Закупки: ВЫБРАТЬ ПартииТоваровНаСкладах.Номенклатура.Артикул, Максимум(ПартииТоваровНаСкладах.Период) КАК Период ПОМЕСТИТЬ ВТ_Приходы ИЗ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах ГДЕ ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладах.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг) СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладах.Номенклатура.Артикул ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Приходы.НоменклатураАртикул, ВТ_Приходы.Период, Максимум(ПартииТоваровНаСкладах.Стоимость) КАК Стоимость ИЗ ВТ_Приходы КАК ВТ_Приходы ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах ПО ВТ_Приходы.НоменклатураАртикул = ПартииТоваровНаСкладах.Номенклатура.Артикул И ВТ_Приходы.Период = ПартииТоваровНаСкладах.Период СГРУППИРОВАТЬ ПО ВТ_Приходы.НоменклатураАртикул, ВТ_Приходы.Период |
|||
1
Artyom20
28.10.14
✎
11:29
|
(0) не знаю как их соеденить =\\
|
|||
2
Ёпрст
28.10.14
✎
11:32
|
(0) во втором запросе получить номенклатуру, а не артикул, сделать левое соединение с первым запросом по номенклатуре - поиметь свою себестоимость. всё.
|
|||
3
Artyom20
28.10.14
✎
11:49
|
(2) но это же будет последние продажи и последняя себестоимость по товарам, а мне нужно именно ту себестоимость, которая была в продажах последних =\
|
|||
4
Ёпрст
28.10.14
✎
11:51
|
(3) че ?
|
|||
5
Ёпрст
28.10.14
✎
11:51
|
ну получай тогда себестоимость в разрезе номенклатура-период.
|
|||
6
yavasya
28.10.14
✎
12:04
|
ты понимаешь что такое партионный учет? из партии всё тащи
|
|||
7
Enders
28.10.14
✎
12:19
|
(3) Дарю
|
|||
8
Skom
28.10.14
✎
12:28
|
а чего за конфа?
|
|||
9
Skom
28.10.14
✎
12:29
|
каким образом у вас себестоимость считается? может у вас есть регистр ПродажиСебестоимость? как, например, в комплексной?
|
|||
10
Skom
28.10.14
✎
12:43
|
в Комплексной автоматизации
я выбирал продажи с себестоимостью вот таким вот запросом, правда у меня там был известен перечень документов, по которым мне нужно получить такие данные. ВЫБРАТЬ РАЗЛИЧНЫЕ Д.Номенклатура ,Продажи.Регистратор КАК Чек ,Продажи.Регистратор.СуммаДокумента КАК Сумма //,Продажи.Номенклатура КАК Номенклатура ,СУММА(isnull(Продажи.СтоимостьОборот,0)) КАК СуммаСтроки ,СУММА(isnull(ПродажиСебестоимость.СтоимостьОборот,0)) КАК Себестоимость ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Д ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(,,Регистратор,) КАК Продажи ПО Продажи.Регистратор = Д.Ссылка И Продажи.Номенклатура = Д.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты(,,Регистратор,) КАК ПродажиСебестоимость ПО ПродажиСебестоимость.Регистратор = Д.Ссылка И ПродажиСебестоимость.Номенклатура = Д.Номенклатура ГДЕ Д.Ссылка В (&Док) СГРУППИРОВАТЬ ПО Продажи.Регистратор, Д.Номенклатура, Продажи.Регистратор.СуммаДокумента АВТОУПОРЯДОЧИВАНИЕ |
|||
11
Artyom20
28.10.14
✎
12:57
|
Конфигурация УТ 10.3 =\
|
|||
12
Artyom20
28.10.14
✎
13:02
|
(7) спасибо большое, ребята - я еще совсем глупый в этих запросах, подскажите как на примере (7) поставить МАКСИМУМ(ПЕРИОД) правильно, что бы на каждый товар давал по одной строке (в которой будет последняя продажа, относящаяся к тек. периоду)
|
|||
13
КтоКакБог
28.10.14
✎
13:05
|
Почему ты используешь партии, а не ПродажиСебестоимость?
|
|||
14
Kalambur
28.10.14
✎
13:08
|
(13) потому что только что о нем узнал )
|
|||
15
Artyom20
28.10.14
✎
13:17
|
Я честно говоря еще ничего в этом не понимаю =\, сижу капаюсь, просто поставили такую задачу
|
|||
16
Skom
28.10.14
✎
13:28
|
(15) сложно тебе будет!
Подскажу один косяк, который может тебя поджидать. Например, в документе продажи могли одинаковый товар продать 2-мя строками разными. Тогда у тебя в регистре ПРОДАЖИ будет 2 строки из документа, а в регистре ПРОДАЖИСЕБЕСТОИМОСТЬ будет всего одна строка. |
|||
17
Skom
28.10.14
✎
13:30
|
+(16) к слову, в запросе из (10) этот косяк я победил)
собственно этот запрос именно из-за описанной проблемы я и модернизировал, потому как предыдущая его версия не умела обрабатывать такой нюанс. Кстати, думаю в УТ не много различий по сравнению с КА, по которой писал свой запрос. |
|||
18
Artyom20
28.10.14
✎
13:31
|
(16) а РегистрНакопления.ПартииТоваровНаСкладах почему нельзя взять? Можно сделать отбор на Регистратор = РеализацияТоваровУслуг ? или я совсем затупил уже куда то ? ))
|
|||
19
Artyom20
28.10.14
✎
13:32
|
(17) Подскажи пожалуйста, как в (7) с твоим допилом поставить МАКСИМУМ(ПЕРИОД) ?
|
|||
20
Skom
28.10.14
✎
13:34
|
(18) я УТ не знаю совсем.
|
|||
21
Skom
28.10.14
✎
13:35
|
ты посмотри регистр ПродажиСебестоимость
если я верно понял, то ты вообще все только из него можешь взять. |
|||
22
Skom
28.10.14
✎
13:35
|
просто открой
Операции-РегистрНакопления-ПродажиСебестоимость и посмотри, заполнен он у тебя или нет? |
|||
23
Enders
28.10.14
✎
13:51
|
(19) в запросе (7) у меня используется временная таблица "ЧекиПоБроне" куда я отобрал только нужные мне чеки.
Создай свою таблицу с такими чеками. Внимание, тебе нужны именно чеки(регистраторы, а не периоды), так как себестоимость считается по чекам. И в последнем куске, надо сгруппировать по всем полям ЧекТовар, а поля из Себестоимость в сумму, иначе могут быть дубли. |
|||
24
Enders
28.10.14
✎
13:51
|
+(23) ну или используй "ПродажиСебестоимость")
|
|||
25
Artyom20
28.10.14
✎
13:54
|
(21)
я вот что сейчас достаю: ВЫБРАТЬ ПартииТоваровНаСкладах.Номенклатура.Артикул, МАКСИМУМ(ПартииТоваровНаСкладах.Период) КАК Период, ПартииТоваровНаСкладах.Регистратор, ПартииТоваровНаСкладах.Стоимость КАК Стоимость, ПартииТоваровНаСкладах.Количество ПОМЕСТИТЬ ВТ_Приходы ИЗ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах ГДЕ ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладах.Регистратор) = ТИП(Документ.РеализацияТоваровУслуг) СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладах.Номенклатура.Артикул, ПартииТоваровНаСкладах.Регистратор, ПартииТоваровНаСкладах.Стоимость, ПартииТоваровНаСкладах.Количество ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Приходы.НоменклатураАртикул, ВТ_Приходы.Период, ВТ_Приходы.Стоимость, ВТ_Приходы.Количество, ВТ_Приходы.Регистратор ИЗ ВТ_Приходы КАК ВТ_Приходы ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах ПО ВТ_Приходы.НоменклатураАртикул = ПартииТоваровНаСкладах.Номенклатура.Артикул И ВТ_Приходы.Период = ПартииТоваровНаСкладах.Период СГРУППИРОВАТЬ ПО ВТ_Приходы.НоменклатураАртикул, ВТ_Приходы.Период, ВТ_Приходы.Стоимость, ВТ_Приходы.Количество, ВТ_Приходы.Регистратор Мне остаеться только из "Регистратора" брать количество, сумму.. это реально? или я тут не прав ? |
|||
26
Enders
28.10.14
✎
13:58
|
(25) удали и никому не показывай)
ВТ_Приходы ты группируешь по регистратору и период в максимум. Как думаешь, что ты при этом получишь? |
|||
27
Artyom20
28.10.14
✎
14:00
|
1С съедает мои мозги ))
|
|||
28
Enders
28.10.14
✎
14:04
|
Кратко, не проверял:
ВЫБРАТЬ
Вот мои чеки - это в запросе из (7) "ЧекиПоБроне" Только в конце сгруппируй как я написал в (23) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |