|
запрос с выводом количества в заказепокупателю по заданной номенклатуре | ☑ | ||
---|---|---|---|---|
0
MrZLO
17.10.12
✎
12:09
|
Здрасте! Сделал запрос, чтобы по заданной номенклатуре можно было вывести все нужные заказы покупателей... Теперь хочу, чтобы среди этих данных было количество в этом же документе по выбранной номенклатуры... он мне выводит общее кол-во, помогите!!!
ВЫБРАТЬ | ЗаказПокупателя.Номер, | ЗаказПокупателя.Ссылка, | ЗаказПокупателя.Дата, | ЗаказПокупателя.Контрагент.Наименование КАК Контрагент, | СУММА(ЗаказПокупателяТовары.Количество) КАК Количество |ИЗ | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя | ПО ЗаказПокупателяТовары.Ссылка = ЗаказПокупателя.Ссылка |ГДЕ | ЗаказПокупателя.Товары.Номенклатура.Ссылка = &Номенклатура | И ЗаказПокупателя.Проведен = ИСТИНА | |СГРУППИРОВАТЬ ПО | ЗаказПокупателя.Номер, | ЗаказПокупателя.Ссылка, | ЗаказПокупателя.Дата, | ЗаказПокупателя.Контрагент.Наименование |
|||
1
Heckfy
17.10.12
✎
12:11
|
КАК КоличествоРазличных - если я правильно понял...
|
|||
2
MrZLO
17.10.12
✎
12:12
|
ну как бы да, но мне надо только у того товара, который ЗаказПокупателя.Товары.Номенклатура.Ссылка = &Номенклатура
|
|||
3
Zmich
17.10.12
✎
12:12
|
(0). А где у тебя в тексте запроса Номенклатура?
|
|||
4
kimarle
17.10.12
✎
12:12
|
Добавь в выборку и сгруппируй по номенклатуре
|
|||
5
GLazNik
17.10.12
✎
12:13
|
Мдя ну и запрос....
условие ЗаказПокупателя.Товары.Номенклатура.Ссылка = &Номенклатура порадовало замени на ЗаказПокупателяТовары.Номенклатура = &Номенклатура и будет тебе счастье |
|||
6
1Страх
17.10.12
✎
12:14
|
соединение тут нах не впало
|
|||
7
GLazNik
17.10.12
✎
12:14
|
+(5) и запрос по документам как-то не по феншую
|
|||
8
MrZLO
17.10.12
✎
12:17
|
(3) вот такая штука странно, но работает
Запрос.Текст = "ВЫБРАТЬ | ЗаказПокупателя.Номер, | ЗаказПокупателя.Ссылка, | ЗаказПокупателя.Дата, | ЗаказПокупателя.Контрагент.Наименование КАК Контрагент, | ЗаказПокупателяТовары.Количество |ИЗ | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя | ПО ЗаказПокупателяТовары.Ссылка = ЗаказПокупателя.Ссылка |ГДЕ | ЗаказПокупателя.Товары.Номенклатура.Ссылка = &Номенклатура | И ЗаказПокупателя.Проведен = ИСТИНА | И ЗаказПокупателяТовары.Номенклатура.Ссылка = &Номенклатура | |СГРУППИРОВАТЬ ПО | ЗаказПокупателя.Номер, | ЗаказПокупателя.Ссылка, | ЗаказПокупателя.Дата, | ЗаказПокупателя.Контрагент.Наименование, | ЗаказПокупателяТовары.Количество"; |
|||
9
GLazNik
17.10.12
✎
12:19
|
(8) ничего странного, но запрос - УГ... лучше его никому не показывай
|
|||
10
MrZLO
17.10.12
✎
12:23
|
(9) а не УГ это что-то вроде такого?
"ВЫБРАТЬ | ЗаказПокупателя.Номер, | ЗаказПокупателя.Ссылка, | ЗаказПокупателя.Дата, | ЗаказПокупателя.Контрагент.Наименование КАК Контрагент, | NULL КАК Количество |ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя |ГДЕ | ЗаказПокупателя.Проведен = ИСТИНА | И ЗаказПокупателяТовары.Номенклатура = &Номенклатура | |ОБЪЕДИНИТЬ ВСЕ |... |
|||
11
hhhh
17.10.12
✎
12:25
|
(10) ну еще заказы надо как-то ограничить. А то допустим, за пару лет в базе накопится 10000 заказов с твоей номенклатурой и твой запрос их все выведет на 150 листов. Там одним фингалом под глазом ты не отделаешься.
|
|||
12
GLazNik
17.10.12
✎
12:26
|
+(9) очень много лишнего. можно без сгруппировать, если в документах номенклатура встречается только раз. можно действительно без соединений, но я бы лучше оставил
(10) это тож УГ Вот так оно лучше будет: ВЫБРАТЬ ЗаказПокупателя.Номер, ЗаказПокупателя.Ссылка, ЗаказПокупателя.Дата, ЗаказПокупателя.Контрагент.Наименование КАК Контрагент, ЗаказПокупателяТовары.Количество ИЗ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя ПО ЗаказПокупателяТовары.Ссылка = ЗаказПокупателя.Ссылка ГДЕ ЗаказПокупателяТовары.Номенклатура = &Номенклатура И ЗаказПокупателя.Проведен = ИСТИНА но при условии что номенклатура в документе в единственным экземпляре, иначе нужно добавить группировку. |
|||
13
GLazNik
17.10.12
✎
12:27
|
(11) если на то пошло, то запрос надо делать не по документам, а по регистрам.
|
|||
14
1Страх
17.10.12
✎
12:27
|
(12) это тоже УГ
|
|||
15
Zmich
17.10.12
✎
12:28
|
Запрос.Текст =
"ВЫБРАТЬ | ЗаказПокупателяТовары.Ссылка.Номер, | ЗаказПокупателяТовары.Ссылка, | ЗаказПокупателяТовары.Ссылка.Дата, | ЗаказПокупателяТовары.Ссылка.Контрагент.Наименование КАК Контрагент, | ЗаказПокупателяТовары.Количество |ИЗ | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары | |ГДЕ | ЗаказПокупателяТовары.Номенклатура = &Номенклатура | И ЗаказПокупателя.Ссылка.Проведен = ИСТИНА"; |
|||
16
GLazNik
17.10.12
✎
12:29
|
(15) копипаст подвел тебя:) ошибка в последней строке.
|
|||
17
Эльфийка
17.10.12
✎
12:29
|
А вообще, как меня учили опытные программисты, данные лучше брать не из Документов, а из Регистров (политика 1с), например можно получить данные из РегистрНакопления ЗаказыПокупателей. Тогда и на проведение не надо проверять
|
|||
18
Zmich
17.10.12
✎
12:30
|
(16) Угу)
|
|||
19
GLazNik
17.10.12
✎
12:30
|
(14) любой запрос по документу будет УГ, но интересен твой вариант
|
|||
20
1Страх
17.10.12
✎
12:33
|
(19) УГ тут по случаю явного соединения
|
|||
21
MrZLO
17.10.12
✎
12:34
|
(15) шустрее работает явно, но по ссылке к свойству Проведен вроде не работает такое
|
|||
22
MrZLO
17.10.12
✎
12:34
|
ЗаказПокупателяТовары.Ссылка.Проведен = ИСТИНА
вроде так надо |
|||
23
Zmich
17.10.12
✎
12:37
|
(21), (22). Да, см. (16) и (18).
|
|||
24
GLazNik
17.10.12
✎
12:37
|
(19) а с каких это пор соединение стало УГ? Я как-то приучен работать непосредственно с таблицами. а то ж оно иллюзия как бы создается. вроде указана одна таблица, а запрос таки дергает 3.
|
|||
25
Эльфийка
17.10.12
✎
12:38
|
а такой вариант не нравится?
ВЫБРАТЬ ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя.Номер, ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя.Ссылка, ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя.Дата, ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя.Контрагент, ЗаказыПокупателейОстаткиИОбороты.КоличествоПриход КАК Количество ИЗ РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(, , Регистратор, , ) КАК ЗаказыПокупателейОстаткиИОбороты ГДЕ ЗаказыПокупателейОстаткиИОбороты.Номенклатура = &Номенклатура |
|||
26
GLazNik
17.10.12
✎
12:38
|
(24) к (20)
|
|||
27
GLazNik
17.10.12
✎
12:39
|
(25) а зачем тут остатки?
|
|||
28
GLazNik
17.10.12
✎
12:40
|
+(27) ну и условие по номенклатуре таки лучше сунуть в условие виртуальной таблицы. да и кто сказал, что в (0) есть регистр ЗаказыПокупателей?
|
|||
29
kimarle
17.10.12
✎
12:42
|
(28) В типовых у Заказов регистр есть.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |