Имя: Пароль:
1C
1C 7.7
v7: Проблема с прямым запросом
0 DCKiller
 
26.08.11
07:14
Бухгалтерия (SQL), 21 релиз. Используется AccountsRecordset. Когда в прямом запросе используются GROUPING и WITH ROLLUP, выходит сообщение "Получаемая строка превысит допустимые размеры", и запрос не выполняется. Без этих двух команд всё выполняется нормально. Текст запроса:

SELECT
   ОстаткиИОбороты.Счет As [Счет $Счет.Основной],
   GROUPING(ОстаткиИОбороты.Счет) As ИтогПоСчету,
   ОстаткиИОбороты.Субконто1 As [Субконто1 $Субконто],
   ОстаткиИОбороты.Субконто1_вид As [Субконто1_вид],
   ОстаткиИОбороты.СуммаНачальныйОстатокДт As СНД,
   ОстаткиИОбороты.СуммаНачальныйОстатокКт As СНК,
   ОстаткиИОбороты.СуммаОборотДт As ДО,
   ОстаткиИОбороты.СуммаОборотКт As КО,
   ОстаткиИОбороты.СуммаКонечныйОстатокДт As СКД,
   ОстаткиИОбороты.СуммаКонечныйОстатокКт As СКК,
   СпрВалюты.Descr As Валюта,
   ОстаткиИОбороты.ВалютнаяСуммаНачальныйОстатокДт As СНД2,
   ОстаткиИОбороты.ВалютнаяСуммаНачальныйОстатокКт As СНК2,
   ОстаткиИОбороты.ВалютнаяСуммаОборотДт As ДО2,
   ОстаткиИОбороты.ВалютнаяСуммаОборотКт As КО2,
   ОстаткиИОбороты.ВалютнаяСуммаКонечныйОстатокДт As СКД2,
   ОстаткиИОбороты.ВалютнаяСуммаКонечныйОстатокКт As СКК2,
   ОстаткиИОбороты.КоличествоНачальныйОстатокДт As СНД3,
   ОстаткиИОбороты.КоличествоНачальныйОстатокКт As СНК3,
   ОстаткиИОбороты.КоличествоОборотДт As ДО3,
   ОстаткиИОбороты.КоличествоОборотКт As КО3,
   ОстаткиИОбороты.КоличествоКонечныйОстатокДт As СКД3,
   ОстаткиИОбороты.КоличествоКонечныйОстатокКт As СКК3
FROM
   $БИОстаткиОбороты.Основной(:НачДата, :КонДата~, , , , Счет = :ВыбСчет, ,
   Субконто1_вид = $ВидСубконто.Номенклатура ) As ОстаткиИОбороты
LEFT JOIN
   $Справочник.Валюты As СпрВалюты
ON
   СпрВалюты.ID = ОстаткиИОбороты.Валюта

LEFT JOIN
   _1SACCS As СчетОсновной (NOLOCK)
ON
   СчетОсновной.ID = ОстаткиИОбороты.Счет
LEFT JOIN
   $Справочник.Номенклатура As обНоменклатура
ON
   обНоменклатура.ID = ОстаткиИОбороты.Субконто1
GROUP BY
   ОстаткиИОбороты.Счет,
   ОстаткиИОбороты.Субконто1 WITH ROLLUP

ORDER BY
   СчетОсновной.SCHKOD,
   обНоменклатура.Descr

В чем проблема, как решить?
1 nicxxx
 
26.08.11
07:21
метод Сообщить() наверно используешь?
2 DCKiller
 
26.08.11
07:23
Использую. Но если убрать, все то же самое. Кстати, сообщается все нормально, в несколкьо строк.
3 DCKiller
 
26.08.11
07:25
Тьфу, блин, релиз платформы не 21, а 27!
4 Mikeware
 
26.08.11
07:32
Ну все-таки вопрос, наверное, а автору AccountsRecordset.
5 DCKiller
 
26.08.11
07:35
(4) Проблема в самом классе? Я б задал, только никак не могу зарегиться на форуме 1cpp :( Не пускаютъ...
6 Chai Nic
 
26.08.11
07:41
Нефиг пользоваться быдловозможностями от микрософта, которые внаглую нарушают принципы реляционных баз данных :) Итоги в одной выборке с данными - это маразм..
7 DCKiller
 
26.08.11
07:44
(6) Альтернатива?
8 DCKiller
 
26.08.11
08:09
Так что? Решения нет? :(
9 Leeloo
 
26.08.11
08:21
(0)А это точно v7?
10 DCKiller
 
26.08.11
08:26
(9) Абсолютно. А что не так?
11 Chai Nic
 
26.08.11
09:37
(7) Никто не отлаживал 1с++ под возможности sql2005, ибо официально 1с его не поддерживает. И вряд ли будут. Альтернатива - считать итоги другим способом.
12 Дык ё
 
26.08.11
10:20
(0) group by без агрегирующих функций по остальным полям - ошибка в t-sql. это же не снеговик - здесь все должно быть однозначно ;-)
13 DCKiller
 
26.08.11
11:45
(11) Мне не столько итоги важны здесь, сколько группировка по счету в иерархии. Пробовал юзать ИТЗ, но она тоже почему-то не группирует (вероятно, из-за отсутствия поля ParentID в таблице плана счетов)