Имя: Пароль:
1C
1С v8
Баг платформы или чего-то не знаю
↓ (Волшебник 20.09.2013 11:05)
0 Archy1C
 
20.09.13
10:42
Всем привет.

Допустим УТ 10.3. Допустим в базе есть документ РТУ с номером "00000015698". Этот документ не проведен.

Вот есть такой запрос:

ВЫБРАТЬ
    0 КАК А,
    "00000015698" КАК Н
ПОМЕСТИТЬ ТЗРТУ
;
ВЫБРАТЬ
    РеализацияТоваровУСлуг.Проведен,
    РеализацияТоваровУСлуг.Ссылка
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУСлуг
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЗРТУ КАК ТЗРТУ
        ПО (РеализацияТоваровУСлуг.Проведен)
            И РеализацияТоваровУСлуг.Номер = ТЗРТУ.Н

В релизах платформы "8.2.17.157" и "8.2.18.61" в результате запроса выводится этот непроведенный документ.
Смотрел профайлер, в запросе в скульном виде нет условия "РеализацияТоваровУСлуг.Проведен". Почему 1с сервер его не включил?

Причем если добавить в условие "РеализацияТоваровУСлуг.Проведен = Истина", запрос начинает отрабатывать правильно и в профайлере посмотрел это условие включает в скульный вид.

Попробывал на файловом варианте и на PostgreSQL - результат тотже.
Попробывал на платформе "8.1.15.14" - результат пустой, то есть все верно отработало. В 8.3 - то же пусто в результате.

У кого какие мысли по этому поводу?

p.s: на смысл запроса прошу не обращать внимание, я привел его в такой вид в качестве простого примера,чтобы было наглядно видно и практически каждый смог его воспроизвести.
1 zladenuw
 
20.09.13
10:49
а ты уверен что твое условие не пропадает ? у меня в консоле первый раз пропало хз как. и чего делать условие на проверку при соединение. если логичней делать в условие
2 Archy1C
 
20.09.13
10:54
Всмысле пропало? в 8.3 не пропало, а в 8.2 пропало? Я проверил на одной и тойже конфигурации и базе, под разными платформами. Оно не пропадает.
Да логичней делать в условии. Но при внутреннем соединении, не вижу препятсвий так не делать)) ну видимо кроме платформы 8.2, если конечно это так.
Кстати попробывал на релизе "8.2.19.68", то же выдает документ.
3 zladenuw
 
20.09.13
10:58
(2) на 1С:Предприятие 8.2 (8.2.18.109) полет нормальный
4 Archy1C
 
20.09.13
11:05
(3) Сейчас у себя проверю на этом релизе.

Кстати, если закомментить "0 КАК А," то происходит чудо, запрос выдает пусто...
5 NickKuz
 
20.09.13
11:05
Попробовал на 8.1.15.14 - документ, который не проведен - попал в результат.
Что разится с вашим результатом на 8.1.15.14
6 NickKuz
 
20.09.13
11:06
Да, при комменте 0 КАК А - документ пропадает.
7 NickKuz
 
20.09.13
11:10
8.2.18.61 - документа непроведенного нет
8 Archy1C
 
20.09.13
11:10
(5) да, поправочка, на 8.1 я проверял на Астор ТД 6.0...ну подставил другой документ, но логика запроса была та же...и у меня отработал правильно.
9 NickKuz
 
20.09.13
11:11
Если в связи поставить
ПО (РеализацияТоваровУСлуг.Проведен = Истина)
Документ пропадает
10 NickKuz
 
20.09.13
11:12
(9) это на 8.1.15.14
11 NickKuz
 
20.09.13
11:12
Получается косяк платформы))
12 Archy1C
 
20.09.13
11:12
(7) И как такое может быть? ))
я созадл пустую файловую базу, создал там один документ, выполняю в консоле запрос...непроведенный документ выдает.

(9) Да, так как платформа начинает видимо обрабатывать это выражение.
13 catena
 
20.09.13
11:20
8.1.15.14, sql, отрабатывает правильно.
14 NickKuz
 
20.09.13
11:20
(12) Не знаю как может быть на одной платформе разные результаты) Может в БД дело.
15 Archy1C
 
20.09.13
11:23
(3) у меня этом релизе(8.2.18.109) в консоле запросов выдает непроведенный документ. Попробывал создать отчет внешний, компановкой данных, результат выдает непроведенный документ.
База пустая, файловая с одним документом.
16 zladenuw
 
20.09.13
11:23
(12) еще раз говорю. условие пропадает. в консоле. поэтому и есть этот документ. потому что не логично делать такое условие
17 NickKuz
 
20.09.13
11:24
(13) Вот это интересно) Может в настройках sql дело.. у нас тоже sql.
18 Archy1C
 
20.09.13
11:25
(16) вопрос нелогичности неуместен, так писать можно в внутреннем соединении так и не воспрещается, я же написал что сделал внешний отчет и результат тотже.
19 Archy1C
 
20.09.13
11:28
(17) Я делал на файловой пустой на 8.2 и ту же базу на 8.3, результаты разные. Как так?
20 Бледно Золотистый
 
20.09.13
11:29
(18) Если запрос выполнять в построителе или СКД, то док. выводиться, если просто запрос, то нет. (8.2.18.82)
21 Бледно Золотистый
 
20.09.13
11:30
(20) С РеализацияТоваровУСлуг.Проведен = Истина везде пусто.
22 Archy1C
 
20.09.13
11:43
(20) Да, кодом отрабатывает верно на 8.2.
на 8.3 отрабатывает верно даже в СКД
23 Archy1C
 
20.09.13
12:32
Ну видимо, всем спасибо, что поучаствовали в обсуждении.

Поскольку это вопроизвелось не только у меня одного, делаю вывод, что в 8.2 в "таких случаях", неправильно отрабатывает механизм трансляции запросов в СКД и в построителе отчетов.
А в 8.3, было завялено куча оптимизаций, в том числе и с преобразованием запросов. Видимо, поправили. А уж специально или нет...
ещё раз всем спасибо.
24 NickKuz
 
20.09.13
13:00
Только вот у меня в 8.2.18.61 все ок)
Отрабатывает верно)
25 NickKuz
 
20.09.13
13:00
Только вот у меня в 8.2.18.61 отрабатывает верно))
26 Archy1C
 
20.09.13
13:49
(25) В СКД на твоем релизе на чистой файловой базе у меня отрабатывает неверно.

сообщение (20) - написал так как и есть на самом деле.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн