Имя: Пароль:
1C
 
Ошибка: "выход за пределы размерности результата"
0 lucky_
 
16.04.25
14:59
в 1с писать лень. ибо скажут, мол, обновитесь до 8.5.***

есть запрос, который возвращает скулёвую ошибку, после которой работать дальше не получится, только перезапускать.
текст ошибки: "выход за пределы размерности результата".
в профайлере этот запрос выполняется без проблем (включая создание временной таблицы)
текст запроса:

ВЫБРАТЬ ПЕРВЫЕ 10
    Номенклатура.Код КАК код,
    Номенклатура.Наименование КАК Наименование
ПОМЕСТИТЬ ВТ_1
ИЗ
    Справочник.Номенклатура КАК Номенклатура

УПОРЯДОЧИТЬ ПО
    Наименование ИЕРАРХИЯ
;

хотелось бы объяснить данное поведение).
(упорядочивание во временных таблицах и бла-бла-бла, но скуль то спокойно выполняет этот запрос.)
1 H A D G E H O G s
 
16.04.25
15:07
Зацикливание иерархии
2 mikecool
 
16.04.25
15:08
(0) а запрос ты руками набирал? емнип, конструктор не пропустил бы
3 lucky_
 
16.04.25
15:09
(2) емнип = ип
4 shuhard
 
16.04.25
15:13
(0)[хотелось бы объяснить данное поведение]
запасся попкорном =)
5 lucky_
 
16.04.25
15:22
(4) умеешь же похоронить интригу(.
6 СвинТуз
 
16.04.25
15:34
УПОРЯДОЧИТЬ ПО
    Наименование ИЕРАРХИЯ

Без этой штуки работает?
7 СвинТуз
 
16.04.25
15:38
Свисток ...
....
ПОМЕСТИТЬ ВТ_1
......
УПОРЯДОЧИТЬ ПО
8 RomanYS
 
16.04.25
15:40
(7) с ПЕРВЫЕ можно
(6) проблема именно в ИЕРАРХИЯ
9 lucky_
 
16.04.25
15:50
(8) в том то и беда, что проблем С ЗАПРОСОМ вообще нет (если прочитать (0) чуть внимательнее, то там это сказано.)
10 Ёпрст
 
16.04.25
15:55
(0)
вот это дает сей эффект

ПОМЕСТИТЬ ВТ_1 //если это заремить, ошибки не будет
11 lucky_
 
16.04.25
15:56
вот запрос. скрины прикладывать что-то не получается.

DROP TABLE #tt3

CREATE TABLE #tt3 (_Q_000_F_000 NVARCHAR(6) COLLATE DATABASE_DEFAULT, _Q_000_F_001 NCHAR(11) COLLATE DATABASE_DEFAULT, _Q_000_F_002 NVARCHAR(100) COLLATE DATABASE_DEFAULT, _Q_000_F_003RRef BINARY(16), _Q_000_F_004RRef BINARY(16))

exec sp_executesql N'INSERT INTO #tt3 WITH(TABLOCK) (_Q_000_F_000, _Q_000_F_001, _Q_000_F_002, _Q_000_F_003RRef, _Q_000_F_004RRef) SELECT TOP 10
P1,
T1._Code,
T1._Description,
T1._IDRRef,
T1._ParentIDRRef
FROM dbo._Reference62 T1
ORDER BY (T1._ParentIDRRef), (T1._IDRRef)',N'P1 nvarchar(4000)',N'111222'

select * from #tt3
12 lucky_
 
16.04.25
15:56
(10) в (11) есть ПОМЕСТИТЬ ВТ_1
13 Ёпрст
 
16.04.25
15:57
И ошибку дает не скуль..
14 Ёпрст
 
16.04.25
15:58
(11) правильна, у тя тут нет иерархии, которая делается потом
15 lucky_
 
16.04.25
15:59
(14) "у тя тут нет иерархии".ORDER BY (T1._ParentIDRRef)
поясни? я не понимаю.
16 Ёпрст
 
16.04.25
16:07
(15) попутал с В..иерархии
Один хрен, вся ошибка в (10)  - заремь создание временной и 1с это прожуёт
17 maxab72
 
16.04.25
16:07
(15) ORDER BY (T1._ParentIDRRef) это просто по родителю. Не по иерархии.
18 lucky_
 
16.04.25
16:09
(16) а зачем тогда (0)?
19 Мультук
 
гуру
16.04.25
16:22
(0)

Топикпстер:
-- Пацаны, смотрите! Прыгает в лужу -- летят брызги в виде слона.

Весь форум:
-- Угу.Угу. Не прыгай в лужу, а то будут брызги.
А еще лучше - вообще лужу обойди
20 lucky_
 
16.04.25
16:18
(19) очень похоже.
21 maxab72
 
16.04.25
16:39
Пишут что это старая ошибка и уже разок исправлялась https://forum-baza.ru/index.php?topic=64620.0
22 lucky_
 
16.04.25
17:07
(21) в 10й пофиксили, в 25й вернули. всё по плану.
23 Ёпрст
 
16.04.25
17:16
(22) не только, в 18 тоже падает.
24 lucky_
 
16.04.25
17:20
(1) почему тогда без временной таблицы его нет?
(13) да. что-то я ошибку SDBL со скулёвой попутал. пардон.
зы:
не нашёл вменяемого объяснения, что делает платформа, когда иерархия во временной таблице.
25 lucky_
 
16.04.25
17:21
+(24) запрос то уже выполнен. она работает с результатом (если я правильно понимаю).
26 mikecool
 
16.04.25
17:25
(25) а если обернуть запрос в подзапрос?
27 lucky_
 
16.04.25
17:30
(26) ага, робит.
ВЫБРАТЬ *
ПОМЕСТИТЬ ВТ_1
ИЗ
    (ВЫБРАТЬ ПЕРВЫЕ 10
        Номенклатура.Код КАК код,
        Номенклатура.Наименование КАК Наименование
    ИЗ
        Справочник.Подразделения КАК Номенклатура
    
    УПОРЯДОЧИТЬ ПО
        Наименование ИЕРАРХИЯ) КАК ВЛОЖ

но мне понятнее не стало.
28 lucky_
 
16.04.25
17:31
(26) во вложенном нельзя ВТ.
это плохой пример, вопчим.
29 maxab72
 
16.04.25
19:25
(22) А чё вы хотели? Количество возможных ошибок - величина не бесконечная. В какой-то момент приходится возвращать старые...
30 mikecool
 
16.04.25
19:50
(28) а зачем во вложенном ВТ?
31 timurhv
 
17.04.25
10:11
Все ошибки в платформе в общем исправили. Остались вопросики к запросам, которые за 15 лет так и ни разу не писал.