![]() |
|
Помогите с доработкой запроса (БП 3.0) | ☑ | ||
---|---|---|---|---|
0
BBDragon
18.02.16
✎
13:47
|
Хочу сделать небольшой отчет на СКД, где отбором по номенклатуре выводится дата поступления товара, склад, контрагент, цена, количество, сумма и все дальнейшие перемещения товара по складам.
Первую часть я выполнил с помощью запроса по документам поступления ВЫБРАТЬ ПоступлениеТоваровУслуг.Склад, ПоступлениеТоваровУслуг.Контрагент, ПоступлениеТоваровУслуг.Товары.( Номенклатура, Цена, Количество, Сумма ), ПоступлениеТоваровУслуг.Дата ИЗ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг Здесь путем отбора по номенклатуре я получаю дату ее поступления, склад, имя контрагента, количество и общую сумму. Далее мне необходимо отыскать все перемещения данного товара. Второй запрос по перемещениям товаров: ВЫБРАТЬ ПеремещениеТоваров.СкладОтправитель, ПеремещениеТоваров.СкладПолучатель, ПеремещениеТоваров.Товары.Номенклатура, ПеремещениеТоваров.Товары.Количество, ПеремещениеТоваров.Дата ИЗ Документ.ПеремещениеТоваров КАК ПеремещениеТоваров Вот здесь необходимо использовать полученные уже ранее (из первого запроса) наименование и цену номенклатуры, дабы имея количество, можно было вычислять сумму. Подскажите, пожалуйста, как теперь правильно передать полученные данные из первого запроса во второй и после всего вывести уже все данные в итоговой таблице. |
|||
1
BBDragon
19.02.16
✎
09:21
|
Перепробовал разные варианты, пробовал через связь наборов данных, так ничего путного и не получается. Запросы самое сложное место пока для меня, туго идет дело. Подскажите, пожалуйста, как же все-таки правильно связать эти запросы
|
|||
2
Одинесю
19.02.16
✎
09:31
|
Не знаю, как организовано в БП3, обычно анализируются регистры, а не документы.
|
|||
3
BBDragon
19.02.16
✎
10:08
|
(2) В регистрах смотрел, как Хозрасчетный, так и Хозрасчетный.ОборотыДтКт - то же самое, из одного регистра все не вытянуть, проще из документов. Объем данных там мизерный, на производительности не скажется
|
|||
4
hhhh
19.02.16
✎
10:20
|
используйте запросы к табличной части.
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Ссылка.Склад, ПоступлениеТоваровУслугТовары.Ссылка.Контрагент, ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.Цена, ПоступлениеТоваровУслугТовары.Количество, ПоступлениеТоваровУслугТовары.Сумма ПоступлениеТоваровУслуг.Ссылка.Дата КАК Дата ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |
|||
5
BBDragon
19.02.16
✎
10:25
|
(4) Так не работает:
Поле не найдено "ПоступлениеТоваровУслуг.Ссылка.Склад" Ссылку может только на сам документ |
|||
6
hhhh
19.02.16
✎
10:35
|
(5) ПоступлениеТоваровУслугТовары
|
|||
7
hhhh
19.02.16
✎
10:36
|
(5) "Ссылку может только на сам документ" - бред не пишите
|
|||
8
BBDragon
19.02.16
✎
10:38
|
(7) Пардон, проглядел. Но опять ошибка:
Поле не найдено "ПоступлениеТоваровУслугТовары.Ссылка.Склад" <<?>>ПоступлениеТоваровУслугТовары.Ссылка.Склад КАК Склад, |
|||
9
BBDragon
19.02.16
✎
10:41
|
И без КАК Склад то же самое
|
|||
10
Одинесю
19.02.16
✎
11:08
|
Воспользуйся конструктором запросов, выбирай табличную часть и нужные поля из нее.
|
|||
11
hhhh
19.02.16
✎
11:12
|
(8) давайте целиком сюда, чего вы написали. Копипастить похоже не умеете.
|
|||
12
BBDragon
19.02.16
✎
11:23
|
(10) Я так и делал, но не работало правильно
(11) Хех, сейчас скопировал ваш запрос,теперь новая ошибка: Ошибка в запросе набора данных по причине: {(8, 1)}: Неправильный псевдоним "ПоступлениеТоваровУслуг.Ссылка.Дата" <<?>>ПоступлениеТоваровУслуг.Ссылка.Дата КАК ДатаПоступления ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Ссылка.Склад, ПоступлениеТоваровУслугТовары.Ссылка.Контрагент, ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.Цена, ПоступлениеТоваровУслугТовары.Количество, ПоступлениеТоваровУслугТовары.Сумма ПоступлениеТоваровУслуг.Ссылка.Дата КАК Дата ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |
|||
13
Одинесю
19.02.16
✎
11:36
|
ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК ДатаПоступления
|
|||
14
vip03
19.02.16
✎
11:38
|
ПоступлениеТоваровУслугТОВАРЫ.Ссылка.Дата КАК Дата
ты точно конструктором пользуешься? |
|||
15
BBDragon
19.02.16
✎
11:48
|
(13) Так тоже пробовал, все равно ошибка
(14) Нет, тут я уже просто скопировал запрос из (4) |
|||
16
Одинесю
19.02.16
✎
11:49
|
Давай опять полный запрос сюда, который получился и ошибку.
|
|||
17
BBDragon
19.02.16
✎
11:55
|
(16) Пост (12)
|
|||
18
BBDragon
19.02.16
✎
11:56
|
Вообще мне надо передать данные по номенклатуре из первого запроса во второй, вот не получается грамотно их связать
|
|||
19
vip03
19.02.16
✎
12:30
|
еще бы понять что ты вообще хочешь...
ну вот так например: ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.Цена, ПоступлениеТоваровУслугТовары.Количество, ПоступлениеТоваровУслугТовары.Сумма, ПоступлениеТоваровУслугТовары.Ссылка.Контрагент, ПоступлениеТоваровУслугТовары.Ссылка.СкладОрдер, ПеремещениеТоваровТовары.Количество КАК КоличествоПеремещения, ПеремещениеТоваровТовары.Цена КАК ЦенаПеремещения ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары ПО ПоступлениеТоваровУслугТовары.Номенклатура = ПеремещениеТоваровТовары.Номенклатура |
|||
20
BBDragon
19.02.16
✎
14:55
|
(19) Спасибо, вроде бы все движения товара захватывает, сейчас буду настраивать вывод данных в итоговой табличке.
Получить хочу отчетик по движениям товара (поступление и перемещения), нечто вроде этого: http://i76.fastpic.ru/big/2016/0217/e3/ef29991b0d6360ef182fd24cd1ec6ee3.png |
|||
21
BBDragon
19.02.16
✎
15:31
|
(19) В отчете надо выводить даты перемещений, склад-получатель, склад-отправитель и т.д.
Пытаюсь делать через ПеремещениеТоваровТовары.ДокументОприходования.Дата КАК ДатаПеремещения, ПеремещениеТоваровТовары.ДокументОприходования.СкладОтправитель КАК Отправитель, ПеремещениеТоваровТовары.ДокументОприходования.СкладПолучатель КАК Получатель Но в итоге в отчете выводятся пустые поля. Как их все-таки выдернуть то? |
|||
22
vip03
19.02.16
✎
16:28
|
что такое ДокументОприходования? реквизит ТЧ?
может ПеремещениеТоваровТовары.ССЫЛКА.ДокументОприходования.Дата КАК ДатаПеремещения ? |
|||
23
BBDragon
19.02.16
✎
16:37
|
(22) Да, данные из ТЧ документа перемещения.
Увы, указанный вариант не срабатывает, "Поле ПеремещениеТоваровТовары.ССЫЛКА.ДокументОприходования.Дата не найдено" |
|||
24
salvator
19.02.16
✎
16:41
|
(21) Реквизит "ДокументОприходования" заполнен в перемещении?
|
|||
25
BBDragon
19.02.16
✎
16:50
|
(24) Нет, такого ничего нет. Есть просто документ "Перемещение товаров" и там заполнены поля Номер, Дата, Организация, Отправитель,Получатель и в ТЧ Номенклатура, Количество, Счет отправителя, Счет получателя.
|
|||
26
salvator
19.02.16
✎
17:01
|
(25) Ты сам ответил на свой вопрос.
|
|||
27
BBDragon
19.02.16
✎
17:24
|
(26) Я понимаю, но мне то посоветовали сделать запрос в (19). Теперь его надо доработать
|
|||
28
BBDragon
20.02.16
✎
10:47
|
Все, доработал я запрос! Практически все данные теперь есть, осталось только правильно вывести их)
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.Цена КАК ЦенаПоступления, ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК ДатаПоступления, ПоступлениеТоваровУслугТовары.Количество КАК КоличествоПоступления, ПоступлениеТоваровУслугТовары.Сумма КАК СуммаПоступления, ПоступлениеТоваровУслугТовары.Ссылка.Контрагент как Поставщик, ПоступлениеТоваровУслугТовары.Ссылка.Склад КАК СкладПоступления, ПеремещениеТоваровТовары.Количество КАК КоличествоПеремещения, ПеремещениеТоваровТовары.Ссылка.Дата КАК ДатаПеремещения, ПеремещениеТоваровТовары.Ссылка.СкладОтправитель КАК Отправитель, ПеремещениеТоваровТовары.Ссылка.СкладПолучатель КАК Получатель, ПеремещениеТоваровТовары.Цена КАК ЦенаПеремещения ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары ПО ПоступлениеТоваровУслугТовары.Номенклатура = ПеремещениеТоваровТовары.Номенклатура Необходимо в отчете первой строкой вывести ДатаПоступления, СкладПоступления, КонтрАгент, КоличествоПоступления, СуммаПоступления. Во второй (и всех последующих строках) надо выводить ДатаПеремещения, Получатель, Отправитель, КоличествоПеремещения и СуммаПеремещения. При этом СуммаПеремещения должна вычисляться по формуле: СуммаПеремещения=КоличествоПеремещения*ЦенаПеремещения. Заголовок у колонок пусть будет везде одинаковый, т.е. Дата, Получатель, Отправитель, Количество и Сумма. Вопрос - как оформить вывод этих данных в СКД? Однородный набор данных я умею выводить списком, но тут первая строка должна отличаться по набору данных, ибо содержит сведения о поступлении. |
|||
29
BBDragon
20.02.16
✎
16:27
|
Грубо говоря мне нужно вывести отчет в 2 строки:
Первая строка: дата поступления, количество, сумма Вторая (и все последующие строки): дата перемещения, количество сумма. Бьюсь уже 2 часа с настройками вывода, никак не удается вывести правильно. Как все-таки это сделать? |
|||
30
ВРедная
21.02.16
✎
00:01
|
(28) Твой запрос выдаст в итоге тебе таблицу, в которой будут только строки перемещения с дополнительной информацией о поступлении товара. В ней не будет отдельных строк по поступлению и отдельных строк по перемещению.
Вот так она у тебя будет выглядеть: Товар 1; реквизиты поступления 1; реквизиты перемещения 1; Товар 1; реквизиты поступления 1; реквизиты перемещения 2; Товар 1; реквизиты поступления 1; реквизиты перемещения 3; Первый вопрос: Если бы ты был СКД, то имея такую таблицу на руках, как бы ты из нее сделал четыре строки? Второй вопрос: Что будет, если у тебя не одно, а два поступления? |
|||
31
zak555
21.02.16
✎
01:08
|
на 10/41 счёте есть аналитика партия
начни отсюда |
|||
32
zak555
21.02.16
✎
01:08
|
не связывайся с запросами к документа
|
|||
33
BBDragon
22.02.16
✎
09:11
|
(30) Все верно, в консоли запросов так и выводит. Вот я и спрашиваю, как вывести итоги правильно.
Поступление будет всегда одно, тут проблем нет. (32) Спасибо большое, но уже замучался с этим отчетом, сделать бы так хотя бы. Объем данных мизерный, быстродействие страдать не будет. |
|||
34
ВРедная
22.02.16
✎
11:00
|
(33) Дело не в итогах, а в запросе. Тебе нужно добавить к твоим данным еще одну строку - чисто с поступлением
|
|||
35
BBDragon
24.02.16
✎
10:08
|
(34) Подскажите, пожалуйста, как это сделать?
|
|||
36
BBDragon
24.02.16
✎
13:49
|
Переработанный запрос (режим объединения)
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.Цена КАК ЦенаПоступления, ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК Дата, ПоступлениеТоваровУслугТовары.Количество КАК Количество, ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Отправитель, ПоступлениеТоваровУслугТовары.Ссылка.Склад КАК Получатель ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ОБЪЕДИНИТЬ ВЫБРАТЬ ПеремещениеТоваровТовары.Номенклатура, ПеремещениеТоваровТовары.Цена, ПеремещениеТоваровТовары.Ссылка.Дата, ПеремещениеТоваровТовары.Количество, ПеремещениеТоваровТовары.Ссылка.СкладОтправитель, ПеремещениеТоваровТовары.Ссылка.СкладПолучатель ИЗ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары ГДЕ ПеремещениеТоваровТовары.Ссылка.Проведен=ИСТИНА Все ничего, вот только Сумма выводится только в первой строке (там где поступление), а по перемещениям сумма не выводится. Само поле Сумма - вычисляемое, формула: Сумма = ЦенаПоступления*Количество. Как все-таки вывести сумму во всех строках отчета? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |