|
Гуру запросов 1С, помогите, пожалуйста! | ☑ | ||
---|---|---|---|---|
0
bird_777
30.09.13
✎
11:26
|
Цель: вывести остатки по ВСЕМ позициям номенклатуры, даже нулевым.
следующий запрос выводит только ненулевки. Текст запроса: ВЫБРАТЬ ПартииТоваровНаСкладахОстатки.КоличествоОстаток, ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, ПартииТоваровНаСкладахОстатки.Номенклатура, Номенклатура1.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(, ) КАК ПартииТоваровНаСкладахОстатки ПО Номенклатура1.Ссылка = ПартииТоваровНаСкладахОстатки.Номенклатура ГДЕ ПартииТоваровНаСкладахОстатки.Склад В(&склад) И Номенклатура1.Ссылка В ИЕРАРХИИ(&Номенклатура) |
|||
1
Холодильник
30.09.13
✎
11:27
|
ГДЕ
ПартииТоваровНаСкладахОстатки.Склад В(&склад) ИЛИ ПартииТоваровНаСкладахОстатки.Склад ЕСТЬ NULL |
|||
2
Холодильник
30.09.13
✎
11:28
|
+ а лучше писать:
ГДЕ ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.Склад,&склад) В(&склад) |
|||
3
FormatC
30.09.13
✎
11:30
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(,Склад В(&склад) ) КАК ПартииТоваровНаСкладахОстатки
и будет счастье |
|||
4
plastinin
30.09.13
✎
11:30
|
(2) лучше использовать параметры виртуальной таблицы
|
|||
5
FormatC
30.09.13
✎
11:30
|
а из ГДЕ условие по складу убрать
|
|||
6
Холодильник
30.09.13
✎
11:30
|
(3) (4) ДА!
|
|||
7
Crush
30.09.13
✎
11:49
|
(0) Строки "ГДЕ" и "И" поменяй местами
|
|||
8
mzelensky
30.09.13
✎
12:00
|
(0) можно еще немного усложнить:
1) Выбираешь спева нужную тебе номенклатуру. Помещаешь во временную таблицу, индексируешь. 2) Выбираешь остатки по этой номенклатуре из регистра. Помещаешь во вторую временную таблицу ,индексируешь 3) Делаешь соединение двух временных таблиц по индексированным полям |
|||
9
bird_777
30.09.13
✎
12:17
|
Сделала (3) плюс убрала из ГДЕ условие по складам.
Результат тот же. Есть NULL не могу приспособить пока что. Но еще подумаю, сейчас просто убегать нужно. В любом случае спасибо, натолкнули на мысль, я даже не ожидала такого быстрого ответа! |
|||
10
mzelensky
30.09.13
✎
12:30
|
(9) эт ты зря спалилась, теперь без фото ты тут явно ни одного вразумительного ответа не получишь.
|
|||
11
bird_777
30.09.13
✎
14:11
|
(10) я вроде не на форуме знакомств...
|
|||
12
viktor_vv
30.09.13
✎
14:20
|
(11) Это такая местная традиция, насчет фотки у спрашивающих женского пола :).
А по теме покажи текст запоса после изменений (9). |
|||
13
bird_777
30.09.13
✎
14:29
|
понятно, если страшная отвечать не будут :D
|
|||
14
Холодильник
30.09.13
✎
14:30
|
так, мужики, расходимся. фото нет
|
|||
15
Feunoir
30.09.13
✎
14:39
|
(13) Не бывает страшных женщин, ага.
|
|||
16
viktor_vv
30.09.13
✎
14:44
|
(13) Тут вопрос не в том, страшная не страшная, а сам факт наличия фотки :).
И таки по (9) если все так и сделано, то должно выбирать все нормально, с нулевыми позициями. И одинакового результата с (0) быть не должно. |
|||
17
bird_777
30.09.13
✎
14:44
|
я подумаю насчет функции есть нулл и в зависимости от этого фото. их в интернете много :-)
|
|||
18
bird_777
30.09.13
✎
14:45
|
последний текст запроса не могу выложить-не на том компе
|
|||
19
bird_777
30.09.13
✎
14:46
|
хотя...
ВЫБРАТЬ ПартииТоваровНаСкладахОстатки.КоличествоОстаток, ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, ПартииТоваровНаСкладахОстатки.Номенклатура, Номенклатура1.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(,Склад В(&склад) ) КАК ПартииТоваровНаСкладахОстатки ПО Номенклатура1.Ссылка = ПартииТоваровНаСкладахОстатки.Номенклатура ГДЕ Номенклатура1.Ссылка В ИЕРАРХИИ(&Номенклатура) |
|||
20
bird_777
30.09.13
✎
14:47
|
результат тот же к сожалению
|
|||
21
Юрий Юрьевич
30.09.13
✎
14:58
|
Номенклатура в выборке нужна только из справочника, уберите ту, которую получаете из регистра
|
|||
22
bird_777
30.09.13
✎
15:01
|
спасибо попробую
|
|||
23
Простенький вопросик
30.09.13
✎
15:01
|
Можно сделать отчет по остаткам, сохранить в екселе. Потом список всей номенклатуры, тоже в ексель сохранить. Ну а там рядом поставить и отсортировать.
|
|||
24
bird_777
30.09.13
✎
15:08
|
этот запрос мне нужен для компановки данных. там дальше целая тема со связанными запросами... поэтому эксель не вариант.
|
|||
25
bird_777
30.09.13
✎
15:08
|
это раз к тому же пользователи так делать не будут
|
|||
26
Feunoir
30.09.13
✎
15:09
|
(24) Так может проблема не в этом запросе, а в дальнейшей компоновке? Выполни запрос просто в консоли запросов.
|
|||
27
Злобный Фей
30.09.13
✎
15:11
|
(23) >>рядом поставить и отсортировать
Что за каменный век? В екселе для этих случаев есть ВПР |
|||
28
viktor_vv
30.09.13
✎
15:13
|
(26)+1. Может там отбор стоит по полю из запроса
ПартииТоваровНаСкладахОстатки.Номенклатура, |
|||
29
CrazyBear
30.09.13
✎
15:15
|
Номенклатура1.Ссылка В ИЕРАРХИИ(&Номенклатура)
"Где" отрабатывает после связи, может в параметрах указана номенклатура по которой есть остатки? |
|||
30
пыхтачокк
30.09.13
✎
15:16
|
(14) это вообще мужик, читай анкету )))
|
|||
31
viktor_vv
30.09.13
✎
15:29
|
(30) Читай (9) внимательно, окончания глаголов.
|
|||
32
bird_777
30.09.13
✎
15:36
|
слушайте что вы все озабоченные. Оторвитесь от компа, поверните голову на 90 градусов. Встаньте, пройдитесь по улице! Вы найдете ДЕВУШКУ! не виртуальную хрен знает где и хрен знает какую а РЕАЛЬНУЮ!!! А может она рядом с вами сидит и ЖДЕТ что вы дадите ей знак внимания!
|
|||
33
Холодильник
30.09.13
✎
15:38
|
встал, посмотрел по сторонам - знаков внимания от бородатых одимнов не увидел. снова сел за комп..
|
|||
34
bird_777
30.09.13
✎
15:39
|
значит пойдешь домой - внимательно смотри по сторонам!
|
|||
35
Холодильник
30.09.13
✎
15:42
|
пошел домой.. внимательно смотрел по сторонам - девочек-истеричек не увидел. Что я делаю не так?
|
|||
36
bird_777
30.09.13
✎
15:47
|
(29) НЕТ, Я ОСТАВИЛА ОДИН ЗАПРОС В КОМПАНОВКЕ И ОН НЕ ОТРАБАТЫВАЕТ
(35)А ПОЧЕМУ У ТЕБЯ ЗАДАЧА УВИДЕТЬ ИСТЕРИЧЕК? |
|||
37
пыхтачокк
30.09.13
✎
15:48
|
(31) я-то заметил, однако анкета упорно настаивает на поле М.
|
|||
38
пыхтачокк
30.09.13
✎
15:49
|
(36) боже, я оглох (((
|
|||
39
bird_777
30.09.13
✎
15:49
|
а мне пофиг что у меня там М или Ж
|
|||
40
Feunoir
30.09.13
✎
15:49
|
(37) А поведение упорно настаивает что это всё-таки Ж
|
|||
41
bird_777
30.09.13
✎
15:50
|
значит М читай как Ж
|
|||
42
viktor_vv
30.09.13
✎
15:53
|
(36) В консоли выполни запрос, дабы исключить влияние самой компоновки.
На 100% в консоли будет необходимый тебе результат. Запрос из (19). |
|||
43
azernot
30.09.13
✎
15:53
|
(24) Сними галку "Автозаполнение" в настройках набора данных СКД.
|
|||
44
CrazyBear
30.09.13
✎
15:54
|
(36) добавил твой запрос в консоль СКД, и убрал все параметры, работает, значит дело в параметре &Номенклатура, по всем номенклатурным позиция в ходящим в группу указанную в параметре есть остатки
|
|||
45
azernot
30.09.13
✎
15:58
|
(44) Нет. Всё дело в том, что есть поле запроса:
ПартииТоваровНаСкладахОстатки.Номенклатура, и есть условие по полю "Номенклатура". При включенном автозаполнении, СКД достраивает условие и получается аналог "ГДЕ", который и отсекает все отсутсвующие остатки. Я бы ещё посоветовал использовать конструкцию Естьnull(ПартииТоваровНаСкладахОстатки.КоличествоОстаток,0) для полей с ресурсами, чтобы итоги нормально считались. |
|||
46
CrazyBear
30.09.13
✎
16:07
|
(45) Оставил условие и параметры вирт таблицы, все работает
|
|||
47
CrazyBear
30.09.13
✎
16:08
|
+(45) а как то можно посмотреть как преобразуется запрос в СКД?
|
|||
48
bird_777
30.09.13
✎
16:09
|
45, конструкция есть нулл используется в ГДЕ?
|
|||
49
ИсчадиеADO
30.09.13
✎
16:13
|
(47) спец.обработка на ИТС КонсольСистемыКомпоновкиДанных
|
|||
50
Холодильник
30.09.13
✎
16:17
|
фото так и нет. значит, все-таки страшная
|
|||
51
CrazyBear
30.09.13
✎
16:23
|
(49) Спасибо
|
|||
52
azernot
30.09.13
✎
16:46
|
(48) Вставь вот такой запрос в свою СКД и сними галку "Автозаполнение"
ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Номенклатура, ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, 0) КАК СтоимостьОстаток {ВЫБРАТЬ Номенклатура.*, КоличествоОстаток, СтоимостьОстаток} ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(, {(Номенклатура).*, (Склад).*}) КАК ПартииТоваровНаСкладахОстатки ПО СпрНоменклатура.Ссылка = ПартииТоваровНаСкладахОстатки.Номенклатура {ГДЕ СпрНоменклатура.Ссылка.* КАК Номенклатура, (ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0)) КАК КоличествоОстаток, (ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, 0)) КАК СтоимостьОстаток} |
|||
53
bird_777
02.10.13
✎
07:28
|
(21) попробовла, получилась. Сейчас добавлю все остальные запросы посмотрим что выйдет.
Спасибо всем! |
|||
54
bird_777
02.10.13
✎
13:49
|
Да, СКД отработала! УРА!
|
|||
55
GANR
02.10.13
✎
13:54
|
(0) Вот это условие
ПартииТоваровНаСкладахОстатки.Склад В(&склад) из секции ГДЕ следует перенести в параметры виртуальной таблицы остатков, приблизительно вот так ВЫБРАТЬ ПартииТоваровНаСкладахОстатки.КоличествоОстаток, ПартииТоваровНаСкладахОстатки.СтоимостьОстаток, ПартииТоваровНаСкладахОстатки.Номенклатура, Номенклатура1.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(, Склад В(&склад)) КАК ПартииТоваровНаСкладахОстатки ПО Номенклатура1.Ссылка = ПартииТоваровНаСкладахОстатки.Номенклатура Язык уже отсох повторять, что условие на правую таблицу при левом соединении превращает это левое соединение во внутреннее, так как автоматически рубит записи левой таблицы, для которых не найдена запись в правой. |
|||
56
Sabbath
02.10.13
✎
13:59
|
(32) Головой повертел, по улице походил, не помогает. Жду дальнейших инструкций
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |