![]() |
![]() |
![]() |
|
Запрос - левое соединение... | ☑ | ||
---|---|---|---|---|
0
ДенисЧ
12.07.12
✎
15:15
|
Вроде простой запрос...
ВЫБРАТЬ (УчетЗатратОбороты.КоличествоПриход) КАК Количество, АУЗ.Затрата КАК Материал, АВУ.Подразделение КАК Подразделение, АРЗ.Продукция КАК Продукция, ЕСТЬNULL(ПоследнийПриход.Цена, -1) ИЗ РегистрНакопления.УчетЗатрат.Обороты(НАЧАЛОПЕРИОДА(&НачДата, ДЕНЬ), КОНЕЦПЕРИОДА(&КонДата, ДЕНЬ), Регистратор, ) КАК УчетЗатратОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК АВУ ПО УчетЗатратОбороты.АналитикаВидаУчета = АВУ.Ссылка ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаЗатрат КАК АУЗ ПО УчетЗатратОбороты.АналитикаУчетаЗатрат = АУЗ.Ссылка ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаРаспределенияЗатрат КАК АРЗ ПО УчетЗатратОбороты.АналитикаРаспределенияЗатрат = АРЗ.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ ПЕРВЫЕ 1 Приход.Цена, Приход.Номенклатура КАК Номенклатура, КОНЕЦПЕРИОДА(Приход.Ссылка.Дата, ДЕНЬ) КАК ДатаПрихода ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК Приход ГДЕ Приход.ССылка.Проведен ) КАК ПоследнийПриход ПО ПоследнийПриход.ДатаПрихода <= КОНЕЦПЕРИОДА(УчетЗатратОбороты.Регистратор.Дата, ДЕНЬ) И ПоследнийПриход.Номенклатура = АУЗ.Затрата ГДЕ АВУ.РазделУчета = &ВыбРазделУчета Цену не показывает :-( Смысл запроса - получить материалы, пошедшие на продукцию за период, с ценами последнего прихода на дату выпуска... Где я не прав? |
|||
1
х86
12.07.12
✎
15:18
|
вот это мне не нравится
ВЫБРАТЬ ПЕРВЫЕ 1 Приход.Цена, Приход.Номенклатура КАК Номенклатура, КОНЕЦПЕРИОДА(Приход.Ссылка.Дата, ДЕНЬ) КАК ДатаПрихода ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК Приход |
|||
2
ДенисЧ
12.07.12
✎
15:18
|
(1) ну, порядок-то я добавлю... Неважно, в этом случае первый приход :-)
Или предлагаешь в Закупки лезть? |
|||
3
х86
12.07.12
✎
15:20
|
(2)точно не могу сказать, но что-то меня напрягает )
|
|||
4
ДенисЧ
12.07.12
✎
15:20
|
(3) наверное, запрос к документу? :-)
|
|||
5
andrewks
12.07.12
✎
15:21
|
а цену прихода больше неоткуда брать, что-ли? из регистра какого-нибудь?
|
|||
6
dachnik
12.07.12
✎
15:21
|
а зачем из документа берешь, а не из регистра?
|
|||
7
ДенисЧ
12.07.12
✎
15:24
|
(5) РС типы цен вести? Так на каждую хотелку регистров не позаводишь. А хотелок много, это только первая прикидка... Хотят видеть по разному
(6) а пофиг. |
|||
8
ДенисЧ
12.07.12
✎
15:30
|
+7 вопрос не в том, откуда брать цену, а в том, почему оно не соединяет...
|
|||
9
ЧашкаЧая
12.07.12
✎
15:32
|
(8) Никак не могу понять зачем там ПЕРВЫЕ, когда нужен максимум по периоду.
|
|||
10
andrewks
12.07.12
✎
15:32
|
(8)то, что нулл пришёл - это должно наводить на мысли. например, типы разные АУЗ.Затрата и ПоследнийПриход.Номенклатура
|
|||
11
ssh2006
12.07.12
✎
15:34
|
(8) в подзапросе ПоследнийПриход всего одна произвольная запись
|
|||
12
andrewks
12.07.12
✎
15:36
|
я думаю, сначала надо получить виртуалку с ценами последних приходов, а потом уже с ней соединять
|
|||
13
andrewks
12.07.12
✎
15:36
|
(11) +1
|
|||
14
ДенисЧ
12.07.12
✎
15:37
|
(10) должно. Но не наводит, ибо они оба - СправочникСсылка.Номенклатура...
|
|||
15
ДенисЧ
12.07.12
✎
15:38
|
(11) логично...
(12) Вируталку? Ну ка расскажи, как? Только не говори про ПОМЕСТИТЬ :-) |
|||
16
Жан Пердежон
12.07.12
✎
15:39
|
первые 1 Без сортировки?
и по какому принципу поступления выбираются? |
|||
17
Жан Пердежон
12.07.12
✎
15:40
|
и кстати, что за конфа?
там нет регистра типа "ЦеныНоменклатурыПоставщиков"? |
|||
18
andrewks
12.07.12
✎
15:42
|
(15) а что, у тебя фобия к ПОМЕСТИТЬ? :-)
|
|||
19
ДенисЧ
12.07.12
✎
15:43
|
(17) УПП. Регистр есть. Но см (7)
(18) Не люблю лишних сущностей :-) |
|||
20
AlexNew
12.07.12
✎
15:45
|
А почему ты решил, что в первом попавшемся документе есть вся номенкалтура?
|
|||
21
Reset
12.07.12
✎
15:46
|
(0) Выбирается одна произвольная цена на одну произвольную номенклатуру из одного произвольного проведенного документа и с ней происходит соединение. Легко может быть, что условие соединения не выполнится
|
|||
22
Reset
12.07.12
✎
15:47
|
(21) то, что это бессмысленное соединение - по умолчанию
|
|||
23
andrewks
12.07.12
✎
15:47
|
(19) 1. регистр есть, а данных в нём нет?
|
|||
24
ДенисЧ
12.07.12
✎
15:50
|
(23) по-вто-ря-ю. Цена последнего прихода - это только один из минимум 10 вариантов расчёта суммы. На каждый чих не напляшешься.
(20) (21) уже понял. |
|||
25
Ёпрст
гуру
12.07.12
✎
15:51
|
Блин.. Дениску укусил снеговик
|
|||
26
Жан Пердежон
12.07.12
✎
15:55
|
(24) тут плясать не надо, всё уже сделано, осталось брать цену из этого регистра (и настроить его заполнение)
(25) ...да, а вроде хорошим человеком был) |
|||
27
х86
12.07.12
✎
15:58
|
(23)а это, флаг в ПТУ есть "Регестрировать цены ..."?
|
|||
28
ДенисЧ
12.07.12
✎
15:58
|
(26) Да какая разница, откуда брать цену? Из подзапроса (выбрать цена, дата) или из виртуальной таблицы РегистрЦен.СрезПоследних(, дата), если у меня этих дат куча?
|
|||
29
ДенисЧ
12.07.12
✎
16:00
|
(27) Всё там есть. А вот понадобилась им недавно цена как ОстатокПоМарт + ПриходыПоСегодня. А завтра = ОстатокПоМай + ПриходыНаСегодня - РасходыНаСегодня.
И что, на каждый чих создавать новый тип цены и заполнять регистр? |
|||
30
andrewks
12.07.12
✎
16:03
|
хммм... агрегаты?
|
|||
31
viktor_vv
12.07.12
✎
16:08
|
По мотивам вот этого
Книга знаний: Срез последних на каждую дату в запросе; по приходам получилось вот так ВЫБРАТЬ ПоступлениеТоваровУслугТовары3.Номенклатура, ПоступлениеТоваровУслугТовары3.Цена ИЗ (ВЫБРАТЬ ТаблицаПоДате.Номенклатура КАК Номенклатура, МАКСИМУМ(ПоступлениеТоваровУслугТовары2.Ссылка) КАК СсылкаПоступление ИЗ (ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК Период ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Номенклатура) КАК ТаблицаПоДате ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары2 ПО (ПоступлениеТоваровУслугТовары2.Ссылка.Дата = ТаблицаПоДате.Период) И ТаблицаПоДате.Номенклатура = ПоступлениеТоваровУслугТовары2.Номенклатура СГРУППИРОВАТЬ ПО ТаблицаПоДате.Номенклатура) КАК НоменклатураИПриход ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары3 ПО (ПоступлениеТоваровУслугТовары3.Номенклатура = НоменклатураИПриход.Номенклатура) И (ПоступлениеТоваровУслугТовары3.Ссылка = НоменклатураИПриход.СсылкаПоступление) ее уже можно цеплять куда надо будет. Правда тут без учета характеристик. |
|||
32
viktor_vv
12.07.12
✎
16:10
|
(31)+ Но таки может через поместить пошустрее будет.
|
|||
33
Ёпрст
гуру
12.07.12
✎
16:12
|
(28) коррелированный подзапрос юзай для получения цены
ЗЫ: вот только не помню, есть ли он в селект листе в снеговике? |
|||
34
ssh2006
12.07.12
✎
16:13
|
Пример - продажи с последней на момент отгрузки ценой прихода из поступления (корелированный подзапрос)
ВЫБРАТЬ Продажи.Регистратор, Продажи.Номенклатура, Продажи.КоличествоОборот, МАКСИМУМ(ПоступлениеТоваровУслугТовары.Цена) КАК Цена ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК Продажи ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ПО Продажи.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура И (ПоступлениеТоваровУслугТовары.Ссылка В (ВЫБРАТЬ ПЕРВЫЕ 1 ТЧТовары.Ссылка ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ТЧТовары ГДЕ ТЧТовары.Номенклатура = Продажи.Номенклатура И ТЧТовары.Ссылка.Дата <= Продажи.Период УПОРЯДОЧИТЬ ПО ТЧТовары.Ссылка.Дата УБЫВ)) СГРУППИРОВАТЬ ПО Продажи.Регистратор, Продажи.Номенклатура, Продажи.КоличествоОборот |
|||
35
viktor_vv
12.07.12
✎
16:19
|
(33) В селекте нету, можно в Где.
|
|||
36
ДенисЧ
12.07.12
✎
16:21
|
(33) Это первое, что я попытался сделать :-)
|
|||
37
Ёпрст
гуру
12.07.12
✎
16:31
|
(36) И.. болт ?
Мот в 8.3 уже можно, кто знает ? |
|||
38
ssh2006
12.07.12
✎
16:33
|
(37) (34) и в 8.1 работает
|
|||
39
viktor_vv
12.07.12
✎
16:36
|
(38) Он про тоже самое в поле Выбрать спрашивает.
В СКД двумя наборами данных можно изобразить некое подобие. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |