|
V82.Connection query parameters invalid | ☑ | ||
---|---|---|---|---|
0
cfk
04.04.14
✎
18:24
|
HIYA.
Посоны, памагите, ЧЯДНТ. Есть коннекшн, в нем по его метаданным получаем значения перечисления и кладем в массив который тоже создан в том же коннекшене и указываем как параметр запроса в том же коннекшене. получаем неверные значения параметра для занчения данного параметра (ВидДоговора) q2RemV82 = comV82Conn.NewObject("Query"); q2RemV82.Text = "ВЫБРАТЬ ПЕРВЫЕ 1 | КодыОрганизацииСрезПоследних.Организация |ИЗ | РегистрСведений.КодыОрганизации.СрезПоследних КАК КодыОрганизацииСрезПоследних |ГДЕ | КодыОрганизацииСрезПоследних.КодПоЕДРПОУ = &КодПоЕДРПОУОрганизации | И КодыОрганизацииСрезПоследних.Организация.ПометкаУдаления = ЛОЖЬ"; q2RemV82.SetParameter("КодПоЕДРПОУОрганизации",sOrgVATCode); qrRemV82 = q2RemV82.Execute(); If Not qrRemV82.IsEmpty() Then qRS = qrRemV82.Choose(); While qRS.Next() Do q2RemV82.SetParameter("Организация",qRS.Организация); EndDo; Else Message("Организация с КодПоЕДРПОУ <"+КодПоЕДРПОУ +"> в базе импорта не найдена."); Return Result; EndIf; ttmRemV82 = comV82Conn.NewObject("TempTablesManager"); q2RemV82.TemptablesManager = ttmRemV82; aAccKindsAliases = steFilter["ВидДоговора"]; //это названия перечислений метаданных aRemV82AccKinds = comV82Conn.NewObject("Array"); EnumValues = comV82Conn.Metadata.Enums.ВидыДоговоровКонтрагентов.EnumValues; For Each sAccKindAlias In aAccKindsAliases Do enFound = EnumValues.Find(sAccKindAlias); If enFound <> undefined Then aRemV82AccKinds.Add(enFound); Else Message("<"+sAccKindAlias+"> NF @ rem base"); EndIf; EndDo; aParNames = New Array(); aParNames.Add("Дата"); aParNames.Add("Номер"); aParNames.Add("ИНН"); aParNames.Add("КодПоЕДРПОУ"); vtAccsDetails = steFilter["РеквизитыДоговоров"]; For Each sParName In aParNames Do aCurrParValues = vtAccsDetails.UnloadColumn(sParName); If aCurrParValues.Count() > 0 Then q2RemV82.SetParameter(sParName,aCurrParValues); EndIf; EndDo; //q2RemV82.SetParameter("ВидДоговора",aRemV82AccKinds); q2RemV82.SetParameter("ПустаяДата",Date("00000000000000")); //q2RemV82.SetParameter("Дата",vtAccsDetails.UnloadColumn("Дата")); //q2RemV82.SetParameter("Номер",vtAccsDetails.UnloadColumn("Номер")); //q2RemV82.SetParameter("ИНН",vtAccsDetails.UnloadColumn("ИНН")); //q2RemV82.SetParameter("КодПоЕДРПОУ",vtAccsDetails.UnloadColumn("КодПоЕДРПОУ")); //q2RemV82.SetParameter("ВидДоговора",aRemV82AccKinds); q2RemV82Pars = q2RemV82.FindParameters(); q2RemV82.Text = " |ВЫБРАТЬ | ДоговорыКонтрагентов.Владелец.Код КАК КодКонтрагента, | ДоговорыКонтрагентов.Код КАК КодДоговора, | ДоговорыКонтрагентов.ВидДоговора КАК ВидДоговора, | ДоговорыКонтрагентов.Номер КАК Номер, | ДоговорыКонтрагентов.Дата КАК Дата, | ДоговорыКонтрагентов.Владелец.КодПоЕДРПОУ КАК КодПоЕДРПОУ, | ДоговорыКонтрагентов.Владелец.ИНН КАК ИНН |ПОМЕСТИТЬ ПодходящиеРеквизитыДоговоров |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ //| НЕ ДоговорыКонтрагентов.Владелец.ИНН В (&ИНН) //| И НЕ ДоговорыКонтрагентов.Владелец.КодПоЕДРПОУ В (&КодПоЕДРПОУ) //| И | ДоговорыКонтрагентов.Владелец.ПометкаУдаления = ЛОЖЬ | И ДоговорыКонтрагентов.Владелец.ЭтоГруппа = ЛОЖЬ | И ДоговорыКонтрагентов.ЭтоГруппа = ЛОЖЬ | И ДоговорыКонтрагентов.ПометкаУдаления = ЛОЖЬ" +?(aRemV82AccKinds.Count()>0, ,"")+" //| И ДоговорыКонтрагентов.ВидДоговора В(&ВидДоговора) | И ДоговорыКонтрагентов.Дата <> &ПустаяДата | И ДоговорыКонтрагентов.Организация = &Организация |
|||
1
cfk
04.04.14
✎
18:27
|
(1) +?(aRemV82AccKinds.Count()>0, ,"")+" - это лишнее тут
//| И ДоговорыКонтрагентов.ВидДоговора В(&ВидДоговора) - это то, что было и на что ругается. Просто вставил уже код, который будет подставлять ЗНАЧЕНИЕ(ЗанчениеПеречисления) |
|||
2
zladenuw
04.04.14
✎
18:28
|
так опиши в запросе через значение. а не задавай в параметрах
|
|||
3
cfk
04.04.14
✎
18:31
|
спасибо кеп
|
|||
4
cfk
04.04.14
✎
19:36
|
По существу, кто-то что-то скажет?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |