0
Fixed
ГИС (4.0.6.241) ActiveX 1c8.2 (ошибка выполнения запроса к семантическим данным)
СтрокаЗапроса = "SELECT Nomer_Stroka, Yliza_Stroka, ID FROM Zdaniya WHERE Yliza_Stroka LIKE '%" + СокрЛП(ЭлементыФормы.Улица.Значение)+ "%' and "+ "Nomer_Stroka LIKE '%" +СокрЛП(ЭлементыФормы.Дом.Значение) +"%' ";
ПоискУлицы = ЭлементыФормы.ЭлементУправления1.ingeo.ActiveDB.SemDbTables;
НаборАдресов = ПоискУлицы.ExecSQL(СтрокаЗапроса,,);
Выдает: "Range check error"
Customer support service by UserEcho
Проверил скрипт:
option explicit
function SokrLP(s)
SokrLP = s
end function
sub test
dim StrokaZaprosa, PoiskUlitsy, NaborAdresov
dim ElementyFormyUlitsaZnachenie, ElementyFormyDomZnachenie
ElementyFormyUlitsaZnachenie = "u"
ElementyFormyDomZnachenie = "d"
StrokaZaprosa = "SELECT Nomer_Stroka, Yliza_Stroka, ID FROM testZdaniya WHERE " + _
"Yliza_Stroka LIKE '%" + SokrLP(ElementyFormyUlitsaZnachenie) + "%' "+ _
"and Nomer_Stroka LIKE '%" + SokrLP(ElementyFormyDomZnachenie) +"%'"
set PoiskUlitsy = Application.ActiveDB.SemDbTables
set NaborAdresov = PoiskUlitsy.ExecSQL(StrokaZaprosa,Null,Null)
MsgBox NaborAdresov.EOF
end sub
Работает без ошибок.
У меня ошибка возникла при использовании в 1с8.2, используя компаненту ОСХ, а не в скрипте... . Может быть это это связано с ОСХ ?
У OCX та же кодовая база, что и у EXE. Скорее всего связано с вызовом ExecSQL("",,) - видимо, два последних пустых параметра 1С передает по другому, чем VBScript.
Попробуйте в качестве последних параметров передать Null (или как оно там в 1С называется).