|
1С 8.2: язык запросов - функция "В" и "В ИЕРАРХИИ", релиз платформы 8.2.16.368 | ☑ | ||
---|---|---|---|---|
0
Kleo
07.01.13
✎
20:09
|
не работает код в языке запросов, где используется функция "В" или "В ИЕРАРХИИ":
|ВЫБРАТЬ | ТоварныеОграничения.Номенклатура, | ТоварныеОграничения.НормативноеКоличествоЗапаса, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) |ИЗ | РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&ДатаДок, Склад В ИЕРАРХИИ(&Склады)) КАК СвободныеОстаткиОстатки | ПО ТоварныеОграничения.Номенклатура = СвободныеОстаткиОстатки.Номенклатура |ГДЕ | ТоварныеОграничения.Склад = &СкладПолучатель"; где Запрос.УстановитьПараметр("Склады", СЗ); СЗ - список значений, реквизит формы внешней обработки, не пустой |
|||
1
Wobland
07.01.13
✎
20:10
|
первый, первый, вас понял
|
|||
2
Kleo
07.01.13
✎
20:11
|
(1) и?
|
|||
3
Александр_
Тверь 07.01.13
✎
20:12
|
(1) а что ты хотел то? после условия
ТоварныеОграничения.Склад = &СкладПолучатель |
|||
4
Kleo
07.01.13
✎
20:12
|
не работает условие виртуальной таблицы:
Склад В ИЕРАРХИИ(&Склады) |
|||
5
Александр_
Тверь 07.01.13
✎
20:13
|
(4) да с чего ты это взял-то? Что не работает?
|
|||
6
Александр_
Тверь 07.01.13
✎
20:14
|
у тебя ПОСЛЕ получения виртуальной таблицы стоит еще один фильтр. Убери:
ТоварныеОграничения.Склад = &СкладПолучатель и посмотри, думаю поймешь |
|||
7
Kleo
07.01.13
✎
20:15
|
(5) в консоли запросов проверяю, если даже в Товарных огрничениях и Свободных остатках разные склады, то все работает. а вот если спсиок значений, так не понимает, и вообщем получается, чтов левом соединении одни 0
|
|||
8
Kleo
07.01.13
✎
20:16
|
(6) вот именно, мне нужно проверять Товарные ограничения на одном складе, а Свободные остатки по списку других складов
|
|||
9
Александр_
Тверь 07.01.13
✎
20:17
|
(7) вот даже не знаю чем тебе помочь.
вот еще раз ТоварныеОграничения.Склад = &СкладПолучатель т.е. у тебя склад РАВЕН списку значений. Не "В" не "В ИЕРАРХИИ" а равен. |
|||
10
Александр_
Тверь 07.01.13
✎
20:18
|
стоп. у тебя же две переменные склад ) не обратил внимание.
|
|||
11
Александр_
Тверь 07.01.13
✎
20:20
|
а номенклатура точно одинаковая?
|
|||
12
Kleo
07.01.13
✎
20:20
|
(9) значит так: первая таблица - это Товарные органичения только по ОДНОМУ складу. это условие ТоварныеОграничения.Склад = &СкладПолучатель - работает.
затем нужно взять Свободные остатки из списка складов. если присваиваю: ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&ДатаДок, Склад = &Склад)) где Склад - это просто элемент спр.Склады, то все работает. а если проверяю по вхождению в список значений, который состоит из того же самого склада, то не работает |
|||
13
Александр_
Тверь 07.01.13
✎
20:21
|
остается только проверять список значений. если все так как ты говоришь
|
|||
14
Kleo
07.01.13
✎
20:22
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&ДатаДок, Склад В ИЕРАРХИИ(&Склады)) - так уже не работате, хотя в список значений "Склады" - находится одна запись с тем же самым складом
|
|||
15
Kleo
07.01.13
✎
20:22
|
(13) вот и я думаю. СЗ - не пустой, является реквизитом формы обработки на УФ.
|
|||
16
Александр_
Тверь 07.01.13
✎
20:24
|
(15) в таком случае надо упрощать.
убери условие ГДЕ, попробуй просто получить данные из СвободныеОстатки без соединения с ТоварныеОграничения |
|||
17
Александр_
Тверь 07.01.13
✎
20:24
|
и ищи в какой момент происходит косяк.
|
|||
18
Александр_
Тверь 07.01.13
✎
20:26
|
т.е.
1. получи отдельно только данные егистрНакопления.СвободныеОстатки.Остатки(&ДатаДок, Склад В ИЕРАРХИИ(&Склады)) - получает? 2. Получить данные ТоварныеОграничения - получает? 3. Соедини данные - выводит? 4. поставь условие ГДЕ - получается? |
|||
19
GROOVY
07.01.13
✎
20:26
|
Покажи как параметр устанавливаешь.
|
|||
20
Kleo
07.01.13
✎
20:27
|
Запрос.УстановитьПараметр("Склады", СЗ);
|
|||
21
Kleo
07.01.13
✎
20:28
|
СЗ - реквизит формы обработки. тип значения - Склады
|
|||
22
Kleo
07.01.13
✎
20:28
|
обработчиком смотрела СЗ - не пустой
|
|||
23
kotletka
07.01.13
✎
20:29
|
(22)в обработчике тип значения какой?
|
|||
24
Kleo
07.01.13
✎
20:31
|
проверяю в консоли запросов с разными складами, где устанавливаю функцию "В", но там указываю в параметрах один склад, то все работает.
а (23) Склады |
|||
25
Kleo
07.01.13
✎
20:32
|
(23) тип значения СЗ - СправочникиСсылка.Склады
|
|||
26
Александр_
Тверь 07.01.13
✎
20:34
|
(25) сделай как сказано в (18) и расскажи результат.
|
|||
27
Kleo
07.01.13
✎
20:34
|
пишу в отладчике СЗ.ТипЗначения = Склад (складская территория)
|
|||
28
nunzio
07.01.13
✎
20:37
|
Народ, а есть какие-нибудь нюансы, когда ко временной таблице
подцепляю через левое/полное соединение "реальную" таблицу ? |
|||
29
боксер
07.01.13
✎
20:38
|
в склады загони все склады из нужной иерархии и убери в Иерархии из запроса и не парься так и быстрее будет работать и правильнее
|
|||
30
Kleo
07.01.13
✎
20:39
|
(26) вхождение в список значений не работает((
|
|||
31
Kleo
07.01.13
✎
20:39
|
(29) не поняла...
|
|||
32
боксер
07.01.13
✎
20:40
|
Склад В (&МассивСкладов)
|
|||
33
Kleo
07.01.13
✎
20:40
|
(29) склады в принципе без иерархии внесены... я проверяю и "В" и "В ИЕРАРХИИ" - не работает((( хотя по книге описания языка запросов должно... вот и думаю... что может чем-то Список значений как реквизит УФ не нравится(((
|
|||
34
боксер
07.01.13
✎
20:41
|
ну или список значений в запросе одинаково отрабатывает
в иерархии не рекомендует 1С делать в запросе |
|||
35
nunzio
07.01.13
✎
20:41
|
(28) А то недавно, в результате даже полного соединения в выборку не попадали данные временной таблицы. После того как загнал вторую таблицу во временную стало все нормально.
|
|||
36
nunzio
07.01.13
✎
20:48
|
(33) Попробуй все во временные загнать, а их уже соединить.
|
|||
37
Kleo
07.01.13
✎
20:48
|
(32) не работает "В"... какая разница как назваать и зачем все в общий массив?
|
|||
38
Kleo
07.01.13
✎
20:49
|
(36) не работает само вхождение в СЗ(((
|
|||
39
nunzio
07.01.13
✎
20:50
|
(38) Даже если просто одиночный запрос ?
|
|||
40
Kleo
07.01.13
✎
21:08
|
(39) да, проверила. если просто только свободные остатки по условию вхождения в список значений
|
|||
41
runoff_runoff
07.01.13
✎
21:26
|
а измерений у регистра сколько?..
|
|||
42
hhhh
08.01.13
✎
01:35
|
(40) а в списке значений что?
|
|||
43
Kleo
08.01.13
✎
04:29
|
(42) список складов
|
|||
44
DexterMorgan
08.01.13
✎
04:50
|
(0) Установи параметром не список значений а массив
|
|||
45
DexterMorgan
08.01.13
✎
04:51
|
уже было такое список значений не всегда отрабатывает
|
|||
46
Kleo
08.01.13
✎
04:58
|
как сделать, чтобы в консоли запросов задать для параметра тип список значений определнного типа?
|
|||
47
Kleo
08.01.13
✎
04:59
|
(44) ок. попробую
|
|||
48
Kleo
08.01.13
✎
05:23
|
(45) попробовала... в массив записала значения из СЗ... и подставила в качестве параметра запроса... не работает
|
|||
49
DexterMorgan
08.01.13
✎
05:31
|
(48) внешнюю обработку пересохранила?)) там есть же глюки что ты меняешь, а изменения не сохраняются)
|
|||
50
DexterMorgan
08.01.13
✎
05:31
|
(48) а так иначе хз(
|
|||
51
Kleo
08.01.13
✎
05:56
|
(49) да, уже поняла про этот глюк.. пересохраняла и проверяла.. вообще мне УФ не нравятся - это какой-то большой и недоделанный глюк
|
|||
52
Kleo
08.01.13
✎
08:58
|
Массив еще раз попробовала. Массив не пустой, есть занчения с типом значений СправочникиСсылка.Склады.
ставлю в запросе условие вхождения Склада для регистра Свободные остатки в Массив со складами - не работает условие... релиз платформы 8.2.17.143 может кто-нибудь еще что-то подскажет? Выполняется обработка НаСервере в модуле формы внешней обработки. и подскажите, как задать параметр в Консоле запросов с типом Список |
|||
53
Kleo
08.01.13
✎
09:04
|
|ВЫБРАТЬ
| ТоварныеОграничения.Номенклатура, | 0, | ТоварныеОграничения.НормативноеКоличествоЗапаса, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) |ИЗ | РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&ДатаДок, Склад В ИЕРАРХИИ(&Склады)) КАК СвободныеОстаткиОстатки | ПО ТоварныеОграничения.Номенклатура = СвободныеОстаткиОстатки.Номенклатура |ГДЕ | ТоварныеОграничения.Склад = &СкладПолучатель"; Запрос.УстановитьПараметр("Склады", МассивЗначений); |
|||
54
Kleo
08.01.13
✎
09:16
|
ничего не понимаю в консоле запросов работает, если список значений тот же самый задать... а если тот же самый запрос, но уже в модуле формы обработки НаСервере, то список значений как будто пустой и по ним не выполняется услови вхождения в регистр Свободные остатки
|
|||
55
Kleo
08.01.13
✎
09:24
|
Неужели никто не сталкивался с проблемой вхождения параметра в запросе в список значений для управялемого приложеия?
|
|||
56
dmpl
08.01.13
✎
09:55
|
(55) Попробуй в ЖР содержимое списка значений на сервере перед исполнением запроса вывести (включая описание типа). Возможно какие-то заморочки с передачей контекста СЗ на сервер.
|
|||
57
Kleo
08.01.13
✎
10:03
|
(56) вообщм беру перед запросом создаю свой Список значений:
СписокЗн = Новый СписокЗначений; СписокЗн.Добавить(Справочники.Склады.НайтиПоНаименованию("Торговый зал")); Запрос.УстановитьПараметр("Склады", СписокЗн); и |ВЫБРАТЬ | ТоварныеОграничения.Номенклатура, | 0, | ТоварныеОграничения.НормативноеКоличествоЗапаса, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) |ИЗ | РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&ДатаДок, Склад В(&Склады)) КАК СвободныеОстаткиОстатки | ПО ТоварныеОграничения.Номенклатура = СвободныеОстаткиОстатки.Номенклатура |ГДЕ | ТоварныеОграничения.Склад = &СкладПолучатель"; то все работает... а если формирую Список значений из формы обарботки, то не выполняется условие... |
|||
58
Kleo
08.01.13
✎
10:04
|
а до этого делала через СЗ, где СЗ - это реквизит формы обработки - список значений, тип значения Склады
|
|||
59
Kleo
08.01.13
✎
10:05
|
(56) не совсем поняла, что нжно сделать
|
|||
60
Kleo
08.01.13
✎
10:16
|
вообщем вся ошибка оказалась не в запросе, а как взять значения в УФ с формы обработки из реквизита Объект.Список (это Таблица значений), или из реквизита формы СЗ - список значений
|
|||
61
Kleo
08.01.13
✎
10:18
|
если есть ревизит УФ Объект.Список - таблица значений, и затем без разницы в какой обработке я буду обращаться к нему: на сервере или на клиенте?
|
|||
62
dmpl
08.01.13
✎
10:21
|
(59) Есть процедура ЗаписьЖурналаРегистрации(). С ее помощью можно в ЖР отладочную информацию выводить для анализа проблем.
|
|||
63
Kleo
08.01.13
✎
10:53
|
и на сервере и на клиенте заполняется список, а затем в процедуре СЗ определяется в парамтерах запроса
|
|||
64
hhhh
08.01.13
✎
14:16
|
(63) ну на клиенте же нет этих складов. Как ты там список умудряешься заполнять? Заполняй на сервере.
|
|||
65
nunzio
08.01.13
✎
14:17
|
(52) щелкаешь на крестик при выборе и выборах типа выбираешь список.
|
|||
66
Команданте
08.01.13
✎
14:18
|
а почему СЗ
может В а если В ИЕРАРХИИ, то указывать один склад у меня как раз так но я делаю более щадяще, несколько ИЛИ по родителям |
|||
67
Kleo
08.01.13
✎
16:36
|
(66) дело не "В" и "В ИЕРАРХИИ" - эти функцмм работают. дело все в Списке значений с УФ обработки, который не видит затем запрос
|
|||
68
dmpl
08.01.13
✎
16:39
|
(67) Надо смотреть, что там в этом списке на сервере - в частности, какого типа там элементы. А то, может, строка - тогда естественно что не будет работать.
|
|||
69
Kleo
08.01.13
✎
16:51
|
(68) не строка, проверяла отладчиком. если свой список создаю, добавляю просто свой список значений в процедуре, куда свои значения добавления... то работает...
|
|||
70
Kleo
08.01.13
✎
16:51
|
уже сил нет никаких - вот всяко мелочь какая-то... по которой не работает...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |