Имя: Пароль:
1C
1С v8
1C падает при выполнении запроса
,
0 rool
 
27.02.14
10:40
День добрый, пытаюсь перенести нетиповой код из УПП 1.2 в УПП 1.3

Есть запрос:
ВЫБРАТЬ
    ЗаказыПокупателейОстатки.ЗаказПокупателя,
    ЗаказыПокупателейОстатки.ЗаказПокупателя.Дата,
    ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток
ИЗ
    РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
ГДЕ
    ЗаказыПокупателейОстатки.ЗаказПокупателя В
            (ВЫБРАТЬ
                ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Сделка
            ИЗ
                РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&КонДата, ДоговорКонтрагента = &ДоговорКонтрагента) КАК ВзаиморасчетыПоДокументамОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                    ПО
                        ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Сделка = ЗаказПокупателя.Ссылка
            ГДЕ
                НЕ ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Сделка ЕСТЬ NULL
            СГРУППИРОВАТЬ ПО
                        ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Сделка)
    И ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток > 0.05

При выполнении которого 1Ска падает с ошибкой SQL:

Невосстановимая ошибка
Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
по причине:
Ошибка СУБД:
Microsoft SQL Native Client: Column 'T5.Fld24684_TYPE' is invalid in the HAVING clause because it is not contained in either an aggregate function or the GROUP BY clause.
HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1
SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=8121, line=1

Причем отдельно куски запроса выполняются.

Может кто-нибудь подсказать причину глюка?
1 Господин ПЖ
 
27.02.14
10:41
запрос кривой в сиську...
2 jsmith82
 
27.02.14
10:42
кэш чистил?
3 Господин ПЖ
 
27.02.14
10:42
и тут: is invalid in the HAVING clause because it is not contained in either an aggregate function or the GROUP BY clause

все написано...
4 rool
 
27.02.14
10:42
(2) ага
5 jsmith82
 
27.02.14
10:44
может выбрать различные сделка ?
6 jsmith82
 
27.02.14
10:48
вложенный лучше так
ВЫБРАТЬ РАЗЛИЧНЫЕ ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Сделка
ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&КонДата, ДоговорКонтрагента = &ДоговорКонтрагента)
ГДЕ ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Сделка ССЫЛКА Документ.ЗаказПокупателя
7 rool
 
27.02.14
10:49
(3) Я извеняюсь, а нельзя по подробнее? Я просто первый раз вижу чтобы запрос полностью ложил эску, обычно исключение отлавливает сама 1С а не SQL :)
8 МойКодУныл
 
27.02.14
10:50
Переписать запрос на пакет.
9 Господин ПЖ
 
27.02.14
10:52
у меня ощущение что кто-то тупит и

ГДЕ
ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток > 0.05

принимает за

кусок условия по полю агрегирования типа:

ИМЕЮЩИЕ
ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток > 0.05
10 Господин ПЖ
 
27.02.14
10:54
а лучше переписать на пакет, переложить сделки во временную и во втором запросе накладывать условия выборкой из нее...

то что 1с падает - может платформа кривая
11 rool
 
27.02.14
10:57
(9) Без этого условия платформа так же улетает
12 Господин ПЖ
 
27.02.14
11:01
релизы платформы и sql какие?

подзапрос переделал как в (6)?
13 Господин ПЖ
 
27.02.14
11:01
состав поля сделка?
14 rool
 
27.02.14
11:07
(6) различные не помогло, то же падение, платформа 8.2.19.76, состав сделки: ДокументСсылка.ЗаказПокупателя
15 Speshuric
 
27.02.14
11:17
Запрос кривой, надо полностью его переписывать. Текущую проблему скорее всего получится залечить изменив так:

ВЫБРАТЬ
    ЗаказыПокупателейОстатки.ЗаказПокупателя,
    ЗаказыПокупателейОстатки.ЗаказПокупателя.Дата,
    ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток
ИЗ
    РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
ГДЕ
    ЗаказыПокупателейОстатки.ЗаказПокупателя В
            (ВЫБРАТЬ
                ЗаказПокупателя.Ссылка
            ИЗ
                РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&КонДата, ДоговорКонтрагента = &ДоговорКонтрагента) КАК ВзаиморасчетыПоДокументамОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                    ПО
                        ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Сделка = ЗаказПокупателя.Ссылка
            ГДЕ
                НЕ ЗаказПокупателя.Ссылка ЕСТЬ NULL
            СГРУППИРОВАТЬ ПО
                        ЗаказПокупателя.Ссылка)
    И ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток > 0.05
16 Speshuric
 
27.02.14
11:20
Я писал на [email protected] о кучке проблем с составными типами в конструкции "Поле В (ВЫБРАТЬ ...)", от них 0 реакции. ну то есть письмо с SW.... пришло, а ответа по существу нет.
17 rool
 
27.02.14
11:24
(15) Так заработало. Но воспользуюсь советом и перепишу запрос)
18 rool
 
27.02.14
11:25
Всем спасибо за консультации)
19 Speshuric
 
27.02.14
11:26
следующая итерация:

ВЫБРАТЬ
    ЗаказыПокупателейОстатки.ЗаказПокупателя,
    ЗаказыПокупателейОстатки.ЗаказПокупателя.Дата,
    ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток
ИЗ
    РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
ГДЕ
    ЗаказыПокупателейОстатки.ЗаказПокупателя В
            (ВЫБРАТЬ
                ЗаказПокупателя.Ссылка
            ИЗ
                РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&КонДата, ДоговорКонтрагента = &ДоговорКонтрагента) КАК ВзаиморасчетыПоДокументамОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                    ПО
                        ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Сделка = ЗаказПокупателя.Ссылка
            СГРУППИРОВАТЬ ПО
                        ЗаказПокупателя.Ссылка)
    И ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток > 0.05
20 Maxus43
 
27.02.14
11:28
(0) это разве падает? падать должна вот так

ВЫБРАТЬ
    ТИПЗНАЧЕНИЯ(ПРЕДСТАВЛЕНИЕССЫЛКИ(Валюты.Ссылка)) КАК Поле2,
    Валюты.Ссылка
ИЗ
    Справочник.Валюты КАК Валюты
21 rool
 
27.02.14
11:32
(20) спасибо конечно, но мне достаточно и моего варианта падения :)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший