Ошибка СУБД: Внутренняя ошибка, был достигнут предел служб выражений #806892


#0 by Benevalete
Бухгалтерия 1.6.8.3 сконвертированная под платформой 8.3.5.1231, SQL После доработки ОСВ по счету при формировании по счетам 62(9 субсчетов), 76(более 15 субсчетов) и еще некоторым счетам возникает следующая ошибка: "Ошибка СУБД: Внутренняя ошибка, был достигнут предел служб выражений". Полный текст ошибки - В файловой копии базы такой ошибки нет, запрос на ней выполняется около 4х секунд Доработка следующая: в тексте основного запроса поля субконто1, субконто2 и т.д. сделаны опциональными, то есть для каждого субсчета выбирается свое субконто, подходящее по типу значения. Тест запроса стандартный, до изменения: Субконто2 " ------------------------------------------------------- Текст запроса после доработки: "ВЫБРАТЬ РАЗРЕШЕННЫЕ     ОстаткиИОбороты.Счет КАК Счет,     СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт, ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто1) = &ТипИзмерения1 ТОГДА ОстаткиИОбороты.Субконто1        КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто2) = &ТипИзмерения1 ТОГДА ОстаткиИОбороты.Субконто2        КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто3) = &ТипИзмерения1 ТОГДА ОстаткиИОбороты.Субконто3 КОНЕЦ КАК Субконто1, ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто1) = &ТипИзмерения2 ТОГДА ОстаткиИОбороты.Субконто1        КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто2) = &ТипИзмерения2 ТОГДА ОстаткиИОбороты.Субконто2        КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто3) = &ТипИзмерения2 ТОГДА ОстаткиИОбороты.Субконто3 КОНЕЦ КАК Субконто2 ИЗ Субконто2 " ТипИзмерения - тип детализации в настройке отчета Без этой доработки осв по счету формируется с некорректной детализацией, к примеру у всех субсчетов субконто1 имеет вид "Подразделения",  а у одного субсчета "подразделения" это субконто2, то при задании в настройках детализации по "подразделениям", последний субсчет детализируется в пустом поле. Исправлена эта ошибка только в бухгалтерии редакции 3.0, мне нужно доработать бухгалтерию 1.6 своими силами. По остальным счетам ОСВ формируется корректно(счет 91.08 - 11 субсчетов). Гугл выдает информацию о том, что данная ошибка проявляется на SQL, для файловой версии и Postgre такой проблемы нет. Пожалуйста, подскажите, как можно ее устранить или хотя бы обойти? Более подробно причины доработок указаны в предыдущей теме:
#1 by Benevalete
Совсем никаких идей?(
#2 by PCcomCat
Уже забыли, как она выглядет эта Бухгалтерия 1.6.
#3 by PCcomCat
А если кинуть во временную таблицу результат без итогов и группировки, а уж потом группировать и собирать итоги?
#4 by Benevalete
Да, была такая идея, но не совсем понимаю как получить тот же результат по итогам, если указан итог по "Счет ИЕРАРХИЯ", то есть оператором "выбор когда" я получаю субконто уже по тому, что получилось в результате иерархических итогов (счет = 91, у него субконто1 всегда одинаковое, а у его субсчетов может быть разное)
#5 by Benevalete
Конкретно для осв по счету: берется выбранный счет, к примеру 10, анализируются его субконто(субконто1 - номенклатура, субконто2 - склады), на основании этого заполняется настройка детализации: "По номенклатуре, по складам", если убираем детализацию по складам, в запрос выше попадает только субконто1 - номенклатура, по умолчанию там оба субконто(поля запроса формируются циклом).
#6 by rphosts
Тии? Разумеется после бэкапа
#7 by Benevalete
попробуем, но это надолго, база очень большая
#8 by assasu
отчеты надо делать такими что бы их можно было поддерживать.
#9 by Benevalete
Это вы обращаете к разработчику бухгалтерии 1.6? У меня нет возможности перейти на новую редакцию, где детализация по субконто реализована должным образом, поэтому приходится изощряться и править стандартный отчет. Если видите в методе доработки ошибку, то укажите на нее, к чему эта обобщенная фраза о том, что все надо делать правильно?
#10 by Benevalete
Люди, знающие толк в SQL, пожалуйста скажите: почему данный запрос безо всяких сложностей и не за столь большое время выполняемый в файловой базе, не может быть обработан в SQL?
#11 by bodri
попробуй переделать вот это: ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто1) = &ТипИзмерения1 ТОГДА ОстаткиИОбороты.Субконто1        КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто2) = &ТипИзмерения1 ТОГДА ОстаткиИОбороты.Субконто2        КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто3) = &ТипИзмерения1 ТОГДА ОстаткиИОбороты.Субконто3 КОНЕЦ КАК Субконто1, ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто1) = &ТипИзмерения2 ТОГДА ОстаткиИОбороты.Субконто1        КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто2) = &ТипИзмерения2 ТОГДА ОстаткиИОбороты.Субконто2        КОГДА ТИПЗНАЧЕНИЯ(ОстаткиИОбороты.Субконто3) = &ТипИзмерения2 ТОГДА ОстаткиИОбороты.Субконто3 КОНЕЦ КАК Субконто2 у MS SQL какой-то трабл с такими условиями, лет 8 назад было что-то подобное, после этого такие конструкции избегаю
#12 by Benevalete
ура ура! Я разобралась как перенести проблемные поля во временную таблицу и ошибка больше не проявляется, даже на внушительном объеме данных. Всем спасибо за помощь! чуть позже скину пример запроса, вдруг кому пригодится
#13 by Benevalete
Примерный текст запроса:
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С