|
Работа с запросом | ☑ | ||
---|---|---|---|---|
0
skd1980
19.07.11
✎
13:42
|
Добрый день! Только начинаю осваивать 1с8, поэтому сильно не пинайте.
Есть регистр накоплений ОстаткиТоваров из него формируется отчет по товарам. Так вот мне нужно в вывести тот товар из справочника Товары, которого нет в регистре ОстаткиТоваров. Каким образом модернизировать запросик? Вот текст запроса. Подписал там справочник товаров, но как вывести весь товар и из справочника и из регистра в Товар? "ВЫБРАТЬ | ОстаткиТоваровОстаткиИОбороты.Склад КАК Склад, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Склад), | ОстаткиТоваровОстаткиИОбороты.Сектор КАК Сектор, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Сектор), | ОстаткиТоваровОстаткиИОбороты.Товар КАК Товар, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Товар), | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) КАК Цена |{ВЫБРАТЬ | Склад.*, | Сектор.*, | Товар.*, | КоличествоНачальныйОстаток, | КоличествоПриход, | КоличествоРасход, | КоличествоКонечныйОстаток, | Цена} |ИЗ | Справочник.Товары КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты(&НачДата, &КонДата, , , ) КАК ОстаткиТоваровОстаткиИОбороты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних( | &КонДата, | Тип = &ТипЦен | И Регион = &Регион) КАК ЦеныСрезПоследних | ПО ОстаткиТоваровОстаткиИОбороты.Товар.Ссылка = ЦеныСрезПоследних.Номенклатура.Ссылка | ПО (ОстаткиТоваровОстаткиИОбороты.Товар = Товары.Ссылка) |{ГДЕ | ОстаткиТоваровОстаткиИОбороты.Склад.*, | ОстаткиТоваровОстаткиИОбороты.Сектор.*, | ОстаткиТоваровОстаткиИОбороты.Товар.*, | ЦеныСрезПоследних.Регион.*} | |СГРУППИРОВАТЬ ПО | ОстаткиТоваровОстаткиИОбороты.Товар, | ОстаткиТоваровОстаткиИОбороты.Сектор, | ОстаткиТоваровОстаткиИОбороты.Склад, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) | |УПОРЯДОЧИТЬ ПО | Склад, | Сектор, | Товар |ИТОГИ | СУММА(КоличествоНачальныйОстаток), | СУММА(КоличествоПриход), | СУММА(КоличествоРасход), | СУММА(КоличествоКонечныйОстаток), | МАКСИМУМ(Цена) |ПО | Склад, | Сектор, | Товар |{ИТОГИ ПО | Склад.*, | Сектор.*, | Товар.*}" |
|||
1
Fragster
гуру
19.07.11
✎
13:45
|
где ОстаткиТоваровОстаткиИОбороты.Товар есть NULL
Убери идиотские и ненужные .ссылка. соединяй цену к товару, а не к остаткам. |
|||
2
Sereja
19.07.11
✎
13:45
|
(1) Так вот мне нужно в вывести тот товар из справочника Товары, которого нет в регистре ОстаткиТоваров
Исполььзуй ПОЛНОЕСОЕДИНЕНИЕ со справочником Номенклатура |
|||
3
Fragster
гуру
19.07.11
✎
13:45
|
инструкции построителя/СКД пока не рнаучился - тоже убери нафиг
|
|||
4
Fragster
гуру
19.07.11
✎
13:45
|
(2) чо?
|
|||
5
Sereja
19.07.11
✎
13:46
|
(0) Или тебе нужно ТОЛЬКО товары по которым остаток 0 ? Тогда (1)
|
|||
6
Fragster
гуру
19.07.11
✎
13:46
|
(2) все правильно автор сделал, чуть недодумал
|
|||
7
skd1980
19.07.11
✎
14:11
|
(5) Нужно вывести и товары которые есть на остатках и тот товар, который есть в справочнике, но нет в регистрах.
|
|||
8
Fragster
гуру
19.07.11
✎
14:12
|
(7) тогда запрос из (0) это делает
|
|||
9
Fragster
гуру
19.07.11
✎
14:13
|
только в выбираемых полях вместо ОстаткиТоваровОстаткиИОбороты.Товар надо Товары.Ссылка
|
|||
10
skd1980
19.07.11
✎
14:21
|
(9) Ошибка при установке значения атрибута контекста (Текст): {(6, 5)}: Поле не входит в группу "Товары.Ссылка"
<<?>>Товары.Ссылка КАК Товар, "ВЫБРАТЬ | ОстаткиТоваровОстаткиИОбороты.Склад КАК Склад, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Склад), | ОстаткиТоваровОстаткиИОбороты.Сектор КАК Сектор, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Сектор), | Товары.Ссылка КАК Товар, // | ОстаткиТоваровОстаткиИОбороты.Товар КАК Товар, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Товар), | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) КАК Цена |{ВЫБРАТЬ | Склад.*, | Сектор.*, | Товар.*, | КоличествоНачальныйОстаток, | КоличествоПриход, | КоличествоРасход, | КоличествоКонечныйОстаток, | Цена} |ИЗ | Справочник.Товары КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты(&НачДата, &КонДата, , , ) КАК ОстаткиТоваровОстаткиИОбороты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних( | &КонДата, | Тип = &ТипЦен | И Регион = &Регион) КАК ЦеныСрезПоследних | ПО ОстаткиТоваровОстаткиИОбороты.Товар.Ссылка = ЦеныСрезПоследних.Номенклатура.Ссылка | ПО (ОстаткиТоваровОстаткиИОбороты.Товар = Товары.Ссылка) |{ГДЕ | ОстаткиТоваровОстаткиИОбороты.Склад.*, | ОстаткиТоваровОстаткиИОбороты.Сектор.*, | ОстаткиТоваровОстаткиИОбороты.Товар.*, | ЦеныСрезПоследних.Регион.*} | |СГРУППИРОВАТЬ ПО | ОстаткиТоваровОстаткиИОбороты.Товар, | ОстаткиТоваровОстаткиИОбороты.Сектор, | ОстаткиТоваровОстаткиИОбороты.Склад, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) | |УПОРЯДОЧИТЬ ПО | Склад, | Сектор, | Товар |ИТОГИ | СУММА(КоличествоНачальныйОстаток), | СУММА(КоличествоПриход), | СУММА(КоличествоРасход), | СУММА(КоличествоКонечныйОстаток), | МАКСИМУМ(Цена) |ПО | Склад, | Сектор, | Товар |{ИТОГИ ПО | Склад.*, | Сектор.*, | Товар.*}" |
|||
11
Fragster
гуру
19.07.11
✎
14:24
|
(10) в сообщении об ошибке все написано
|
|||
12
Fragster
гуру
19.07.11
✎
14:24
|
в группировках-то тоже поменять надо
|
|||
13
skd1980
19.07.11
✎
14:26
|
(12) Ага, стормозил. Извиняюсь.
|
|||
14
skd1980
19.07.11
✎
14:27
|
(12) Отчет работает, но выводит все по-старому. Т.е. выводит только товар который есть в регистре :(
|
|||
15
Fragster
гуру
19.07.11
✎
14:31
|
ВЫБРАТЬ
Товары.Ссылка КАК Товар, ОстаткиТоваровОстаткиИОбороты.Склад КАК Склад, ОстаткиТоваровОстаткиИОбороты.КоличествоКонечныйОстаток) ИЗ Справочник.Товары КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты(&НачДата, &КонДата, , , ) КАК ОстаткиТоваровОстаткиИОбороты ПО (ОстаткиТоваровОстаткиИОбороты.Товар = Товары.Ссылка) |
|||
16
Fragster
гуру
19.07.11
✎
14:31
|
(14) не верю
|
|||
17
skd1980
19.07.11
✎
14:46
|
Код запроса такой:
"ВЫБРАТЬ | Товары.Ссылка КАК Товар, | ОстаткиТоваровОстаткиИОбороты.Склад КАК Склад, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Склад), | ОстаткиТоваровОстаткиИОбороты.Сектор КАК Сектор, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Сектор), // | ОстаткиТоваровОстаткиИОбороты.Товар КАК Товар, // | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Товар), | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) КАК Цена |{ВЫБРАТЬ | Склад.*, | Сектор.*, | Товар.*, | КоличествоНачальныйОстаток, | КоличествоПриход, | КоличествоРасход, | КоличествоКонечныйОстаток, | Цена} |ИЗ | Справочник.Товары КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты(&НачДата, &КонДата, , , ) КАК ОстаткиТоваровОстаткиИОбороты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних( | &КонДата, | Тип = &ТипЦен | И Регион = &Регион) КАК ЦеныСрезПоследних | ПО ОстаткиТоваровОстаткиИОбороты.Товар.Ссылка = ЦеныСрезПоследних.Номенклатура.Ссылка | ПО (ОстаткиТоваровОстаткиИОбороты.Товар = Товары.Ссылка) |{ГДЕ | ОстаткиТоваровОстаткиИОбороты.Склад.*, | ОстаткиТоваровОстаткиИОбороты.Сектор.*, | ОстаткиТоваровОстаткиИОбороты.Товар.*, | ЦеныСрезПоследних.Регион.*} | |СГРУППИРОВАТЬ ПО | Товары.Ссылка, | ОстаткиТоваровОстаткиИОбороты.Товар, | ОстаткиТоваровОстаткиИОбороты.Сектор, | ОстаткиТоваровОстаткиИОбороты.Склад, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) | |УПОРЯДОЧИТЬ ПО | Склад, | Сектор, | Товар |ИТОГИ | СУММА(КоличествоНачальныйОстаток), | СУММА(КоличествоПриход), | СУММА(КоличествоРасход), | СУММА(КоличествоКонечныйОстаток), | МАКСИМУМ(Цена) |ПО | Склад, | Сектор, | Товар |{ИТОГИ ПО | Склад.*, | Сектор.*, | Товар.*}" |
|||
18
skd1980
19.07.11
✎
14:47
|
(17) товаров с нулевыми остаткакми в отчет не выводит :(
|
|||
19
Fragster
гуру
19.07.11
✎
14:48
|
(18) а (15)?
|
|||
20
73
19.07.11
✎
14:51
|
(17) Соединяй Товары - Остатки, Товары - Цены.
|
|||
21
skd1980
19.07.11
✎
15:28
|
(19) Еще не пробовал, попробую.
(20) вот так соединил "ВЫБРАТЬ | Товары.Ссылка КАК Товар, | ОстаткиТоваровОстаткиИОбороты.Склад КАК Склад, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Склад), | ОстаткиТоваровОстаткиИОбороты.Сектор КАК Сектор, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Сектор), // | ОстаткиТоваровОстаткиИОбороты.Товар КАК Товар, // | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Товар), | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) КАК Цена |{ВЫБРАТЬ | Склад.*, | Сектор.*, | Товар.*, | КоличествоНачальныйОстаток, | КоличествоПриход, | КоличествоРасход, | КоличествоКонечныйОстаток, | Цена} |ИЗ | Справочник.Товары КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты(&НачДата, &КонДата, , , ) КАК ОстаткиТоваровОстаткиИОбороты | ПО ( Товары.Ссылка = ОстаткиТоваровОстаткиИОбороты.Товар) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних( | &КонДата, | Тип = &ТипЦен | И Регион = &Регион) КАК ЦеныСрезПоследних | ПО Товары.Ссылка = ЦеныСрезПоследних.Номенклатура.Ссылка |{ГДЕ | ОстаткиТоваровОстаткиИОбороты.Склад.*, | ОстаткиТоваровОстаткиИОбороты.Сектор.*, | ОстаткиТоваровОстаткиИОбороты.Товар.*, | ЦеныСрезПоследних.Регион.*} | |СГРУППИРОВАТЬ ПО | Товары.Ссылка, | ОстаткиТоваровОстаткиИОбороты.Товар, | ОстаткиТоваровОстаткиИОбороты.Сектор, | ОстаткиТоваровОстаткиИОбороты.Склад, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) | |УПОРЯДОЧИТЬ ПО | Склад, | Сектор, | Товар |ИТОГИ | СУММА(КоличествоНачальныйОстаток), | СУММА(КоличествоПриход), | СУММА(КоличествоРасход), | СУММА(КоличествоКонечныйОстаток), | МАКСИМУМ(Цена) |ПО | Склад, | Сектор, | Товар |{ИТОГИ ПО | Склад.*, | Сектор.*, | Товар.*}" Результат работает по-старому |
|||
22
Fragster
гуру
19.07.11
✎
15:29
|
так у тебя наверное там отбор утановлен п окакой-нить фигне
|
|||
23
skd1980
19.07.11
✎
15:32
|
(22)да, отбор ставлю по группе. Надо поправить еще секцию Где?
|
|||
24
Fragster
гуру
19.07.11
✎
15:41
|
(23) у тебя ж там тоже из регистра товар берется а не из справочника....
|
|||
25
skd1980
20.07.11
✎
11:13
|
Всем большое спасибо! Разобрался. Окончательно код выглядит так:
ВЫБРАТЬ | ОстаткиТоваровОстаткиИОбороты.Склад КАК Склад, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Склад), | ОстаткиТоваровОстаткиИОбороты.Сектор КАК Сектор, | ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Сектор), | Товары.Ссылка КАК Товары, | ПРЕДСТАВЛЕНИЕ(Товары.Ссылка), | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход, | СУММА(ОстаткиТоваровОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) КАК Цена |{ВЫБРАТЬ | Склад.*, | Сектор.*, | Товары.*, | КоличествоНачальныйОстаток, | КоличествоПриход, | КоличествоРасход, | КоличествоКонечныйОстаток, | Цена} |ИЗ | Справочник.Товары КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты(&НачДата, &КонДата, , , ) КАК ОстаткиТоваровОстаткиИОбороты | ПО Товары.Ссылка = ОстаткиТоваровОстаткиИОбороты.Товар | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних( | &КонДата, | Тип = &ТипЦен | И Регион = &Регион) КАК ЦеныСрезПоследних | ПО Товары.Ссылка = ЦеныСрезПоследних.Номенклатура |{ГДЕ | ОстаткиТоваровОстаткиИОбороты.Склад есть NULL, | ОстаткиТоваровОстаткиИОбороты.Сектор.*, | Товары.Ссылка.*, | ЦеныСрезПоследних.Регион.*} | |СГРУППИРОВАТЬ ПО | ОстаткиТоваровОстаткиИОбороты.Сектор, | ОстаткиТоваровОстаткиИОбороты.Склад, | Товары.Ссылка, | ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) | |УПОРЯДОЧИТЬ ПО | Склад, | Сектор, | Товары |ИТОГИ | СУММА(КоличествоНачальныйОстаток), | СУММА(КоличествоПриход), | СУММА(КоличествоРасход), | СУММА(КоличествоКонечныйОстаток), | МАКСИМУМ(Цена) |ПО | Склад, | Сектор, | Товары.Ссылка |{ИТОГИ ПО | Склад.*, | Сектор.*, | Товары.Ссылка.*} |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |