|
Проблемка в запросе | ☑ | ||
---|---|---|---|---|
0
capllary
14.11.14
✎
14:22
|
Помогите найти в чем косяк, вроде все верно, консоль запросов выдает верный результат, а на печатной форме данные формируются неверно:
//Запрос наименование складов ЗапросПоНаименованиюСкладов = Новый Запрос(); ЗапросПоНаименованиюСкладов.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка); ЗапросПоНаименованиюСкладов.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ЕСТЬNULL(АвансовыйОтчетТовары.Склад, 0) КАК Склад |ИЗ | Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары |ГДЕ | АвансовыйОтчетТовары.Ссылка.Ссылка = &ТекущийДокумент"; ЗапросПоНаименованиюСкладов = ЗапросПоНаименованиюСкладов.Выполнить().Выбрать(); ЗапросПоНаименованиюСкладов.Следующий(); Сообщить(ЗапросПоНаименованиюСкладов.Склад); |
|||
1
Looser-1c
14.11.14
✎
14:24
|
ЕСТЬNULL(АвансовыйОтчетТовары.Склад, 0)
Если Склад - это ссылка, то за такое уволить. |
|||
2
18_plus
14.11.14
✎
14:24
|
ЕСТЬNULL(АвансовыйОтчетТовары.Склад, 0)
больше ссылок! АвансовыйОтчетТовары.Ссылка.Ссылка |
|||
3
CashtanePC
14.11.14
✎
14:25
|
(0) А ты упорный.
|
|||
4
18_plus
14.11.14
✎
14:25
|
надо не на null проверять, а сравнивать с пустой ссылкой
|
|||
5
18_plus
14.11.14
✎
14:26
|
это если незаполненные нужно отсеять
|
|||
6
capllary
14.11.14
✎
14:26
|
Т.е. в консоле запросов по определенному документу формируется 3 названия складов, это правильно, их там действительно 3.
А на печатной форме почему выходит только один определенный склад, причем не первый. |
|||
7
capllary
14.11.14
✎
14:27
|
(5) Там все строчки будут заполненные. Мне из них надо только различные выбрать.
|
|||
8
18_plus
14.11.14
✎
14:27
|
ПОКА ЗапросПоНаименованиюСкладов.Следующий() ЦИКЛ
Сообщить(ЗапросПоНаименованиюСкладов.Склад); КОНЕЦЦИКЛА; |
|||
9
piter3
14.11.14
✎
14:27
|
(6) а что в одном документе может быть 3 склада?
|
|||
10
catena
14.11.14
✎
14:27
|
УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка)
АвансовыйОтчетТовары.Ссылка.Ссылка = &ТекущийДокумент Levftim? 1c c gthdjuj hfpf yt gjybvftn& |
|||
11
Looser-1c
14.11.14
✎
14:27
|
вообще не вижу цикла по результату запроса....
|
|||
12
catena
14.11.14
✎
14:28
|
Фу!
Думаешь, 1с с первого раза не понимает? |
|||
13
capllary
14.11.14
✎
14:28
|
(9) У меня да.
|
|||
14
CashtanePC
14.11.14
✎
14:28
|
(9) Ну это ТЧ.
|
|||
15
catena
14.11.14
✎
14:28
|
И да,
ЗапросПоНаименованиюСкладов.Следующий(); Сообщить(ЗапросПоНаименованиюСкладов.Склад); А кто выборку дальше двигать будет? |
|||
16
18_plus
14.11.14
✎
14:28
|
(7) у тебя там null быть не может, поэтому эта конструкция ЕСТЬNULL(АвансовыйОтчетТовары.Склад, 0) смысла не имеет
|
|||
17
capllary
14.11.14
✎
14:29
|
А вот код из консоли:
ВЫБРАТЬ ЕСТЬNULL(ВложенныйЗапрос.Склад, 0) КАК Склад ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ АвансовыйОтчет.Склад КАК Склад ИЗ Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчет ГДЕ АвансовыйОтчет.Ссылка = &ТекущийДокумент) КАК ВложенныйЗапрос |
|||
18
catena
14.11.14
✎
14:29
|
ЗапросПоНаименованиюСкладов.Следующий();
Сообщить(ЗапросПоНаименованиюСкладов.Склад); А кто выборку дальше двигать будет? |
|||
19
catena
14.11.14
✎
14:29
|
Вдруг автор тоже не с первого раза...
|
|||
20
capllary
14.11.14
✎
14:29
|
(16) Там может быть не заполнена вообще табличная часть
|
|||
21
capllary
14.11.14
✎
14:30
|
(18) Подскажи как.
|
|||
22
18_plus
14.11.14
✎
14:30
|
(18) см (8)
|
|||
23
catena
14.11.14
✎
14:30
|
(21)Пока .Следущий() Цикал...
|
|||
24
Looser-1c
14.11.14
✎
14:30
|
(21) пока. Цикл такой есть
|
|||
25
capllary
14.11.14
✎
14:31
|
(22) Спасибо.
|
|||
26
18_plus
14.11.14
✎
14:31
|
(17) фуфуфу, что это за порно?
оставь только ВЫБРАТЬ РАЗЛИЧНЫЕ АвансовыйОтчет.Склад КАК Склад ИЗ Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчет ГДЕ АвансовыйОтчет.Ссылка = &ТекущийДокумент |
|||
27
Timon1405
14.11.14
✎
14:33
|
Автор, в конфигураторе в любом месте(лучше в своей обработке) ткни правой кнопкой мышки=> конструктор запроса с обработкой результата=>на первой вкладке переключатель вывод в табличный документ, на второй вкладке вставь свой запрос, нажми ОК и изучай код, который выдаст система.
|
|||
28
capllary
14.11.14
✎
14:35
|
(26) А если значение "Склад" в документе вообще не заполнено? Вернется результат Null. Как от него избавиться?
|
|||
29
catena
14.11.14
✎
14:36
|
(28)Вернется пустой результат запроса, который в цикл "пока следущий" вообще не войдет.
|
|||
30
18_plus
14.11.14
✎
14:36
|
(28) тогда вернётся пустаяссылка
null ты можешь получить только используя соединения |
|||
31
Йохохо
14.11.14
✎
14:37
|
(28) строки не будет выбрано, не вернется ничего
|
|||
32
18_plus
14.11.14
✎
14:37
|
(31) (29) а если строка в товарах есть, а поле склад не заполнено?
|
|||
33
catena
14.11.14
✎
14:38
|
(32)Да, прав:) Не правильно вопрос прочитала.
|
|||
34
13_Mult
14.11.14
✎
15:04
|
(32) Будет пустой результат (АвансовыйОтчет.Склад)
Пустая ссылка вернется если (АвансовыйОтчет.Склад.Ссылка) |
|||
35
13_Mult
14.11.14
✎
15:12
|
(34) + "Пустая ссылка" или NULL, не помню точно ))
|
|||
36
18_plus
14.11.14
✎
15:25
|
(34) а что есть пустой результат?
пустая ссылка возвращается по АвансовыйОтчет.Склад, и вот в этом случае АвансовыйОтчет.Склад.Ссылка вернёт NULL. |
|||
37
13_Mult
14.11.14
✎
15:41
|
(36) Ничего )
|
|||
38
13_Mult
14.11.14
✎
15:45
|
(36) АвансовыйОтчет.Склад через ТЧ не будет пустой ссылки, вообще ни чего не будет (пустой результат)
|
|||
39
13_Mult
14.11.14
✎
15:50
|
(38) Похоже я переработал )) (36) все верно
|
|||
40
18_plus
14.11.14
✎
15:52
|
(39) а я тут тебе уже два абзаца гадостей написал - отправить не успел :)
|
|||
41
hhhh
14.11.14
✎
17:07
|
еще может быть как у тс в другой ветке
ВЫБРАТЬ КОЛИЧЕСТВО(АвансовыйОтчет.Склад) КАК Склад ИЗ Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчет ГДЕ АвансовыйОтчет.Ссылка = &ТекущийДокумент тогда вернет NULL если нет документов |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |