romix: Множественный отбор в журналах и справочниках 7.7 заменой запросов SQL #365022


#0 by Ashtray
Копаюсь с ВК romix . Множественный отбор контрагентов. Открывает список хорошо. Захожу в группу, все нормально. Отбор присутствует. Когда выхожу из группы в корень 1С-ка вылетает с ошибкой "[Microsoft][ODBC SQL Server Driver]Неправильное поле COUNT или ошибка синтаксиса". Но если вхожу и выхожу из группы которая самая верхняя в списке, то ни каких ошибок. Делаю следующим образом. В форме списка справочника процедура Процедура ОбработкаВнешнегоСобытия(прм_Источник,прм_Событие,прм_Данные) Открываю форму списка. Получаю следующие запросы. Select * from SC488(NOLOCK INDEX=VIP5019) where PARENTID=? and ((SP5019>='     2   ' and substring(SP5019,1,9)='     2   ') or ISFOLDER=1) order by PARENTID,ISFOLDER, SP5019, DESCR, ROW_ID Select * from SC488(NOLOCK INDEX=VIP5019) where PARENTID=? and (((SP5019>='     2   ' and substring(SP5019,1,9)='     2   ') or ISFOLDER=1) or ((SP3876>='     8   ' and substring(SP3876,1,9)='     8   ') or ISFOLDER=1)) order by PARENTID,ISFOLDER, SP5019, DESCR, ROW_ID ---- Select COUNT(*) from SC488(NOLOCK) where PARENTID=? and (SP5019=? or ISFOLDER=1) and (ISFOLDER<? or (ISFOLDER=? and ((DESCR=? and ROW_ID<=?) or (DESCR<?)))) Select COUNT(*) from SC488(NOLOCK) where PARENTID=? and ((SP5019=? or ISFOLDER=1) or (SP3876=? or ISFOLDER=1))and (ISFOLDER<? or (ISFOLDER=? and ((DESCR=? and ROW_ID<=?) or (DESCR<?)))) ---- Select COUNT(*) from SC488(NOLOCK) where PARENTID=? and ISFOLDER=? and (CODE<? or (CODE=? and ROW_ID<=?)) Select COUNT(*) from SC488(NOLOCK) where PARENTID=? and ISFOLDER=? and (CODE<? or (CODE=? and ROW_ID<=?)) ---- Select * from SC488(NOLOCK INDEX=PCODE) where PARENTID=? and ISFOLDER=? order by PARENTID,ISFOLDER, CODE, ROW_ID Select * from SC488(NOLOCK INDEX=PCODE) where PARENTID=? and ISFOLDER=? order by PARENTID,ISFOLDER, CODE, ROW_ID ---- Захожу в группу Select * from SC488(NOLOCK INDEX=VIP5019) where PARENTID=? and ((SP5019>='     2   ' and substring(SP5019,1,9)='     2   ') or ISFOLDER=1) order by PARENTID,ISFOLDER, SP5019, DESCR, ROW_ID Select * from SC488(NOLOCK INDEX=VIP5019) where PARENTID=? and (((SP5019>='     2   ' and substring(SP5019,1,9)='     2   ') or ISFOLDER=1) or ((SP3876>='     8   ' and substring(SP3876,1,9)='     8   ') or ISFOLDER=1)) order by PARENTID,ISFOLDER, SP5019, DESCR, ROW_ID ---- Select * from SC488(NOLOCK INDEX=VIP5019) where PARENTID=? and ((SP5019>='     2   ' and substring(SP5019,1,9)='     2   ') or ISFOLDER=1) order by PARENTID,ISFOLDER, SP5019, DESCR, ROW_ID Select * from SC488(NOLOCK INDEX=VIP5019) where PARENTID=? and (((SP5019>='     2   ' and substring(SP5019,1,9)='     2   ') or ISFOLDER=1) or ((SP3876>='     8   ' and substring(SP3876,1,9)='     8   ') or ISFOLDER=1)) order by PARENTID,ISFOLDER, SP5019, DESCR, ROW_ID ---- Select COUNT(*) from SC488(NOLOCK) where PARENTID=? and (SP5019=? or ISFOLDER=1) and (ISFOLDER<? or (ISFOLDER=? and ((DESCR=? and ROW_ID<=?) or (DESCR<?)))) Select COUNT(*) from SC488(NOLOCK) where PARENTID=? and ((SP5019=? or ISFOLDER=1) or (SP3876=? or ISFOLDER=1))and (ISFOLDER<? or (ISFOLDER=? and ((DESCR=? and ROW_ID<=?) or (DESCR<?)))) ---- Select COUNT(*) from SC488(NOLOCK) where PARENTID=? and (SP5019=? or ISFOLDER=1) and (ISFOLDER<? or (ISFOLDER=? and ((DESCR=? and ROW_ID<=?) or (DESCR<?)))) Select COUNT(*) from SC488(NOLOCK) where PARENTID=? and ((SP5019=? or ISFOLDER=1) or (SP3876=? or ISFOLDER=1))and (ISFOLDER<? or (ISFOLDER=? and ((DESCR=? and ROW_ID<=?) or (DESCR<?)))) При выходе в корень вылет. Повторюсь, если заходить в самую верхнюю группу, то ни каких ошибок. Может есть другие варианты множественного отбора?
#1 by ТелепатБот
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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