|
Исчезающий реквизит в запросе | ☑ | ||
---|---|---|---|---|
0
Ymryn
18.07.18
✎
09:56
|
День добрый.
Есть строчка в запросе Когда ТИПЗНАЧЕНИЯ(ВТ_ТабСообщений_Внешняя.Документ) = ТИП(Документ.ПеремещениеТоваров) Тогда ВТ_ТабСообщений_Внешняя.Документ.СкладОтправитель На одном наборе данных оно прекрасно отрабатывается. На другом наборе данных я получаю ошибку Поле не найдено .СкладОтправитель. Документ точно определяется по типу. Проблем с доступом к документу нет. Т.е. вариант Документ.Ссылка успешно обрабатывается на обоих наборах. Проверки на NULL, Неопределено, ПустоеЗначение по Документу тоже не помогают. Посмотреть оба набора глазами крайне затруднительно. Этот реквизит железно есть в этом дипе документа. Есть ли у вас какие-либо рекомендации, что может вызывать срабатывание по ошибке в подобной конструкции? |
|||
1
FIXXXL
18.07.18
✎
09:58
|
(0) посмотри, может по ходу пьесы в ВТ_ТабСообщений_Внешняя еще какой документ влетает, без такого реквизита...
|
|||
2
Ymryn
18.07.18
✎
09:59
|
(1) документы без этого реквизита есть. Но они должны отлетать по отбору в условии.Т.е. раз мы обращаемся к СкладОтправитель, то это Перемещение, у которого этот реквизит должен быть.
|
|||
3
FIXXXL
18.07.18
✎
10:01
|
(2) я имел ввиду в процессе сбора ВТ
если хочешь избежать, напиши явно ВЫРАЗИТЬ(ВТ_ТабСообщений_Внешняя.Документ КАК Документ.ПеремещениеТоваров).СкладОтправитель и посмотри результат запроса глазами |
|||
4
Скиурус
18.07.18
✎
10:02
|
Сделай запрос по-человечески: явно прилинкуй таблицу документа Перемещения и наложи на нее условие.
|
|||
5
RomanYS
18.07.18
✎
10:03
|
(2) Таблица должна быть (и есть) типизирована, и тип колонки должен содержать тип Документ.ПеремещениеТоваров даже если данных там таких нет
|
|||
6
Ymryn
18.07.18
✎
10:06
|
(3) на второй наборе ловлю - Несовместимые Типы Выразить.
Т.е. похоже есть что-то там левое. Не понимаю как оно проходит тогда условие. |
|||
7
RomanYS
18.07.18
✎
10:07
|
(6) Тип(!) колонки должен содержать необходимые типы
|
|||
8
Ymryn
18.07.18
✎
10:09
|
(7) я не смогу изменить ВТ. Плюс он содержит тип Перемещения. Иначе это бы вообще не работало.
|
|||
9
Малыш Джон
18.07.18
✎
10:10
|
(6) а там точно не Null?
если поставить типо ВЫБОР КОГДА ВТ_ТабСообщений_Внешняя.Документ есть NULL ТОГДА "блаблабла" что даст? да в конце концов вырази как строку и посмотри что там |
|||
10
Ymryn
18.07.18
✎
10:16
|
(9) Там точно не NULL. И там несколько тысяч записей, в которых крайне сложно ориентироваться глазами, особенно если нет осознания, что именно искать.
|
|||
11
RomanYS
18.07.18
✎
10:17
|
(10) Не ищи записи, посмотри тип колонки отладчиком
|
|||
12
hhhh
18.07.18
✎
10:19
|
(10) ну так сделай
ВТ_ТабСообщений_Внешняя.ДокументСкладОтправитель или даже лучше ВТ_ТабСообщений_Внешняя.ДокументСклад |
|||
13
Ymryn
18.07.18
✎
10:21
|
(12) я не могу менять ВТ.
(11) попробую |
|||
14
Малыш Джон
18.07.18
✎
10:22
|
(10) хмммм
ну возьми просто выведи типы значений и сгруппируй, посмотри, какие типы встречаются в ВТшке |
|||
15
VladZ
18.07.18
✎
10:23
|
(0) Сделай запрос по-человечески.
|
|||
16
RomanYS
18.07.18
✎
10:24
|
(13) Сделай явное левое соединение с Документ.ПеремещениеТоваров - ошибка исчезнет. Но данных у тебя не прибавится - типа у тебя такого нет в ВТ )))
|
|||
17
VladZ
18.07.18
✎
10:24
|
ВТ_ТабСообщений_Внешняя.Документ.СкладОтправитель: там, где получаешь ВТ_ТабСообщений_Внешняя сразу получай СкладОтправитель.
|
|||
18
Ymryn
18.07.18
✎
10:26
|
(16) не могу. У меня есть и другие типы документов, которые надо выводить. Мне надо отфильтровать только заполнение этой колонки согласно типу документов.
(17) я не могу менять ВТ. |
|||
19
VladZ
18.07.18
✎
10:27
|
(18) Почему не можешь?
|
|||
20
Малыш Джон
18.07.18
✎
10:28
|
(18)>>не могу.
есть такое слово - "надо"))) тебе ж не запрос сделать, а найти проблемные данные и посмотреть - что там вообще |
|||
21
Ymryn
18.07.18
✎
10:30
|
(18) поправлюсь, не отфильтровать а определить заполнение. Что если такой-то тип брать этот реквизит, если другой - другой и т.д. Там и реализации и поступления еще. На одном наборе, где все 3 типа присутствуют всё хорошо. На другом наборе встречаются видимо какие-то данные, которые почему-то по проверке проходят как перемещение, но им не являются.
(19) ВТ формируется другой обработкой, которая должна легко обновляться сторонней фирмой, т.е. не содержать изменений. Этот запрос - пост обработка результатов той, чтобы настроить вывод данных под себя. (20) я не совсем понимаю как изменение той обработки мне поможет найти проблемные данные. Т.е. да, оно выполнится. Но там так же будет куча строк и нет осознания, что смотреть. |
|||
22
Малыш Джон
18.07.18
✎
10:32
|
(21) выведи куда-нибудь результат запроса
ВЫБРАТЬ ТИПЗНАЧЕНИЯ(ВТ_ТабСообщений_Внешняя.Документ) КАК ТипДока ИЗ откудатотам СГРУППИРОВАТЬ ПО ТИПЗНАЧЕНИЯ(ВТ_ТабСообщений_Внешняя.Документ) какие типы значений встречаются? |
|||
23
RomanYS
18.07.18
✎
10:42
|
(21) "Что если такой-то тип брать этот реквизит, если другой - другой и т.д. Там и реализации и поступления еще"
так сделай три явных левых соединения. Система всё равно тоже самое сделает, только ещё и лишние с теми таблицами где есть такие реквизиты |
|||
24
hhhh
18.07.18
✎
10:43
|
(21) может просто тупо быть битая ссылка вместо документа перемещения. попробуйте прогнать тии на базе
|
|||
25
Ymryn
18.07.18
✎
10:46
|
(23) понял. Спасибо, попробую.
|
|||
26
Ymryn
18.07.18
✎
10:53
|
(23) благодарю. Это решило проблему. И я теперь кажется понимаю, как мне с помощью этой вещи поймать, что же за данные тут попадают, которые мы не ждем.
|
|||
27
RomanYS
18.07.18
✎
10:56
|
(26) "ВТ_ТабСообщений_Внешняя.Документ.СкладОтправитель"
это удобно читать и писать. А по факту это левое соединение и возможно не одно. Например Регистратор.Дата - это туча ЛС, способная озадачить любой сервер. |
|||
28
Ymryn
18.07.18
✎
10:58
|
(27) угу. Самое обидное, что я это знаю, а вот мысль именно через явное левое решить проблему в голову не пришла. Еще раз большое спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |