|
Запрос в динамическом списке | ☑ | ||
---|---|---|---|---|
0
rowflag
21.03.13
✎
19:55
|
Почему не работает? (работает в консоли запросов)
ВЫБРАТЬ картриджи_СвободноеДвижениеТЧСписок.Номенклатура ПОМЕСТИТЬ СодержимоеТабличнойЧастиДокумента ИЗ Документ.картриджи_СвободноеДвижение.ТЧСписок КАК картриджи_СвободноеДвижениеТЧСписок ЛЕВОЕ СОЕДИНЕНИЕ Документ.картриджи_СвободноеДвижение КАК картриджи_СвободноеДвижение ПО картриджи_СвободноеДвижениеТЧСписок.Ссылка = картриджи_СвободноеДвижение.Ссылка ГДЕ картриджи_СвободноеДвижение.Ссылка = &СсылкаНаДокумент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиНаСкладахОстатки.Номенклатура ИЗ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ СодержимоеТабличнойЧастиДокумента КАК СодержимоеТабличнойЧастиДокумента ПО (СодержимоеТабличнойЧастиДокумента.Номенклатура В (ОстаткиНаСкладахОстатки.Номенклатура)) ГДЕ ОстаткиНаСкладахОстатки.Склад.Наименование = &СкладИсточник И ЕстьNULL(СодержимоеТабличнойЧастиДокумента.Номенклатура,0) = 0 |
|||
1
SherifSP
21.03.13
✎
19:58
|
Ошибка какая или ничего не выводит?
|
|||
2
rowflag
21.03.13
✎
20:00
|
Ошибка при выполнении запроса. Ошибка при выполнении запроса.
по причине: {(1, 37)}: Поле не найдено "картриджи_СвободноеДвижениеТЧСписок.Дата" картриджи_СвободноеДвижениеТЧСписок.<<?>>Дата |
|||
3
rowflag
21.03.13
✎
20:00
|
(и ничего не выводит:( )
|
|||
4
mistеr
21.03.13
✎
20:02
|
(0)(2) Показания не сходятся.
|
|||
5
rowflag
21.03.13
✎
20:04
|
(в том то и фиг)
|
|||
6
rowflag
21.03.13
✎
20:04
|
Может потому что пакетный запрос с динамическом списке не
|
|||
7
rowflag
21.03.13
✎
20:05
|
не
|
|||
8
rowflag
21.03.13
✎
20:05
|
не работает?
|
|||
9
palpetrovich
21.03.13
✎
20:05
|
может все-таки
ПО СодержимоеТабличнойЧастиДокумента.Номенклатура =ОстаткиНаСкладахОстатки.Номенклатура |
|||
10
H A D G E H O G s
21.03.13
✎
20:07
|
(8) Работает, но основную таблицу во временную помещать нельзя.
|
|||
11
rowflag
21.03.13
✎
20:09
|
(10) а как надо?
|
|||
12
rowflag
21.03.13
✎
20:09
|
(у меня основная таблица указано "Документ.картриджи_СвободноеДвижение" )
|
|||
13
rowflag
21.03.13
✎
20:10
|
(9) да. Так и надо.
|
|||
14
rowflag
21.03.13
✎
20:12
|
(но результат тот же. Хотя прекрасно работает в КЗ)
|
|||
15
rowflag
21.03.13
✎
20:13
|
Про какую "дата" ругается - не понимаю...
|
|||
16
palpetrovich
21.03.13
✎
20:15
|
(13) а это зачем? И ЕстьNULL(СодержимоеТабличнойЧастиДокумента.Номенклатура,0) = 0
ососбенно если надо как (9) |
|||
17
rowflag
21.03.13
✎
20:15
|
(16) чтобы выбрать только те, которых нет в табличной части.
|
|||
18
palpetrovich
21.03.13
✎
20:16
|
+16 и наверное все-тки обращаться нужно к виртуальной таблице - и эт туда уйдет ОстаткиНаСкладахОстатки.Склад.Наименование = &СкладИсточник
|
|||
19
rowflag
21.03.13
✎
20:17
|
(УФ если что)
|
|||
20
kosts
21.03.13
✎
20:18
|
Странный запрос. Зачем соединение в первом подзапросе. Зачем вообще первая часть?...
По сабжу про Дату возможно система ожидает наличия некоторых обязательных полей в динамическом запросе, типа номер, дата, ссылка. |
|||
21
rowflag
21.03.13
✎
20:21
|
(20) первая часть - получаем содержимое табличной части
вторая часть получаем остатки на складе источнике и выводим те, которых нет в табличной части. |
|||
22
kosts
21.03.13
✎
20:22
|
Предположу: или на форме в списке есть реквизит, в котором в свойстве Данные вписано "Дата".
|
|||
23
kosts
21.03.13
✎
20:24
|
(21) Это ясно из запроса, я про то, что не нужно явное соединение документа и его ТЧ.
По этому можно всё сделать без первой части, подставив ТЧ сразу во второй подзапрос, вроде =) |
|||
24
rowflag
21.03.13
✎
20:24
|
(22) не пойму. Как это влияет на запрос?
|
|||
25
rowflag
21.03.13
✎
20:25
|
(23) сейчас попробую сделать..
|
|||
26
kosts
21.03.13
✎
20:31
|
Не знаю точно, но вроде так, если основная таблица это документ, то запрос должен вернуть список в котором есть "ссылка на документ", которая притом не повторяется, иначе могут наблюдаться глюки при просмотре таких списков. (могу ошибаться).
|
|||
27
rowflag
21.03.13
✎
20:52
|
Вот так выводит только те, что в табличной части..
ВЫБРАТЬ ОстаткиНаСкладахОстатки.Номенклатура ИЗ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.картриджи_СвободноеДвижение КАК картриджи_СвободноеДвижение ПО ОстаткиНаСкладахОстатки.Номенклатура = картриджи_СвободноеДвижение.ТЧСписок.Номенклатура ГДЕ ОстаткиНаСкладахОстатки.Склад.Наименование = &СкладИсточник И картриджи_СвободноеДвижение.Номер = &Номер |
|||
28
rowflag
21.03.13
✎
21:00
|
Удалил динамический список, создал его заново, заполним запросом из (0).
Теперь выводит другую ошибку: Ошибка при выполнении запроса. Ошибка при выполнении запроса. по причине: Поле не найдено "Номенклатура" |
|||
29
rowflag
21.03.13
✎
21:01
|
Указал основную таблицу: "Документ.картриджи_СвободноеДвижение" - стал также ругаться на "дату".
|
|||
30
kosts
21.03.13
✎
21:03
|
(29) Ну попробуй, добавь в запрос Дату документа.
Дальше видно будет. |
|||
31
rowflag
21.03.13
✎
21:06
|
Добавил
ВЫБРАТЬ картриджи_СвободноеДвижениеТЧСписок.Номенклатура, картриджи_СвободноеДвижение.Дата ПОМЕСТИТЬ СодержимоеТабличнойЧастиДокумента ИЗ Документ.картриджи_СвободноеДвижение.ТЧСписок КАК картриджи_СвободноеДвижениеТЧСписок ЛЕВОЕ СОЕДИНЕНИЕ Документ.картриджи_СвободноеДвижение КАК картриджи_СвободноеДвижение ПО картриджи_СвободноеДвижениеТЧСписок.Ссылка = картриджи_СвободноеДвижение.Ссылка ГДЕ картриджи_СвободноеДвижение.Номер = "000000153" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиНаСкладахОстатки.Номенклатура ИЗ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ СодержимоеТабличнойЧастиДокумента КАК СодержимоеТабличнойЧастиДокумента ПО (СодержимоеТабличнойЧастиДокумента.Номенклатура = ОстаткиНаСкладахОстатки.Номенклатура) ГДЕ ОстаткиНаСкладахОстатки.Склад.Наименование = "Для отправки в филиалы" И ЕСТЬNULL(СодержимоеТабличнойЧастиДокумента.Номенклатура, 0) = 0 Другая ошибка: Ошибка при выполнении запроса. Ошибка при выполнении запроса. по причине: Ошибка получения информации набора данных по причине: Ошибка в запросе набора данных по причине: {(5, 38)}: Поле не найдено "картриджи_СвободноеДвижениеТЧСписок.ПометкаУдаления" картриджи_СвободноеДвижениеТЧСписок.<<?>>ПометкаУдаления, |
|||
32
rowflag
21.03.13
✎
21:08
|
Мне кажется я неправильно пользуюсь динамическим списком..
Ибо в КЗ этот запрос выводит все прекрасно. А именно номенклатуру на складе, которой нет в табличной части. |
|||
33
kosts
21.03.13
✎
21:11
|
(31) Скорее всего система ожидает все типичные реквизиты документа, т.к. основная таблица - это документ.
|
|||
34
rowflag
21.03.13
✎
21:12
|
Как быть?
|
|||
35
kosts
21.03.13
✎
21:15
|
(34) По УФ мало подскажу, возможно основную таблицу нужно указать как РегистрНакопления.ОстаткиНаСкладах.Остатки если это возможно...
|
|||
36
rowflag
21.03.13
✎
21:16
|
(35) не возможно. Попробую вместо динамического списка использовать реквизит типа "таблицу значений".
Только плохо что остатки не будут динамически обновляться. |
|||
37
kosts
21.03.13
✎
21:21
|
(36) Плохо проверил, сейчас у себя глянул - вполне возможно указать основную таблицу, например, как РегистрНакопления.МестонахождениеН.Остатки пробуй
|
|||
38
rowflag
21.03.13
✎
21:23
|
С запросом из (0)?
|
|||
39
kosts
21.03.13
✎
21:24
|
(38) Ну примерно.
|
|||
40
rowflag
21.03.13
✎
21:26
|
(нет. Только документ..)
|
|||
41
rowflag
21.03.13
✎
21:26
|
(вот если бы избавиться от первой части....)
|
|||
42
rowflag
21.03.13
✎
21:27
|
(тогда можно было бы, наверное)
|
|||
43
kosts
21.03.13
✎
21:28
|
(41) Динамический список можно добавить в реквизиты формы руками.
|
|||
44
rowflag
21.03.13
✎
21:28
|
Начал пробовать. При этом запросе никаких ошибок нет, основная таблица - РН.Остатки, но он выводит содержимое табличной части.
ВЫБРАТЬ ОстаткиНаСкладахОстатки.Номенклатура ИЗ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.картриджи_СвободноеДвижение КАК картриджи_СвободноеДвижение ПО ОстаткиНаСкладахОстатки.Номенклатура = картриджи_СвободноеДвижение.ТЧСписок.Номенклатура ГДЕ ОстаткиНаСкладахОстатки.Склад = "Склад" И картриджи_СвободноеДвижение.Номер = "000000153" |
|||
45
kosts
21.03.13
✎
21:29
|
Напиши словами, что должен вернуть запрос |
|||
46
rowflag
21.03.13
✎
21:33
|
Выводит остатки на складе и все..
|
|||
47
rowflag
21.03.13
✎
21:42
|
(завтра еще поработаю над этим)
|
|||
48
rowflag
21.03.13
✎
21:43
|
Спасибо за помощь! Понял что дело в основной таблице.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |