Включил проверку несуществующих констант.
'Контроль модуля на неверные "Форма.<Реквизит>
Sub SyntaxCheckModule()
Doc = "" : WorkBook = ""
If Not VerifyTextWindowInWorkBook(Doc,WorkBook) Then
Exit Sub
End IF
' Проверка валидности выражений Форма.\
if WorkBook Then
'Массив методов объекта "Форма". Их надо исключить из проверки...
ArrOFMethods = бновить","Refresh","ИспользоватьЗакладки","TabCtrlState",_
r","КнопкаПоУмолчанию","DefButton",_
Выбора","ChoiceMode",_
ия")
Patern = "(\s|^|;)+(форма|Form)+\s*\.+[" & cnstRExWORD & "]+"
'Найдем вхождения в текст "Форма.Реквизит
ttext = FindInStrEx(Patern, Doc.text)
ArrFR = Split(ttext,vbCrLf)
ttextROF = GetTableRecvFromForms(0,FALSE)
ArrROF = Split(ttextROF,vbCrLf)
if (UBound(ArrFR)<>-1) And (UBound(ArrROF)<>-1) Then
For qq=0 To UBound(ArrFR)
ArrFR(qq) = ReplaceEX(ArrFR(qq), Array(" ","",";","", vbcr,"",vbTab,""))
if Len(ArrFR(qq))>0 Then
Arr = Split(ArrFR(qq),".")
if UBound(Arr)=1 Then
IsFind = False
if Not FindInArray(Arr(1),ArrOFMethods) Then
For qq2=0 To UBound(ArrROF)
if UCase(Arr(1)) = UCase(ArrROF(qq2)) Then
IsFind = True
Exit For
End IF
Next
If Not IsFind Then
Message "Некоректное выражение: """ & ArrFR(qq)&"""", 2
End IF
End IF
End IF
End IF
Next
End IF
' { trdm [201503251718]
'stop
Patern = "(\s|^|;)+(Константа|Const)+\s*\.+[" & cnstRExWORD & "]+"
'Найдем вхождения в текст "Константа.Идентификатор и проверим каких нет в конфе
ttext = FindInStrEx(Patern, Doc.text)
ArrFR = Split(ttext,vbCrLf)
if (UBound(ArrFR)<>-1) Then
Set Childs = MetaData.TaskDef.Childs(CStr("Константа"))
StrConstAllLC = ""
For i = 0 To Childs.Count - 1
Set mdo = Childs(i)
AddToString StrConstAllLC, LCase(mdo.Name), vbCrLf
next
ConstOtherCheck = ""
ArrCnst = Split(StrConstAllLC,vbCrLf)
For qq=0 To UBound(ArrFR)
ConstStr = ArrFR(qq)
Arr = Split(ConstStr,".")
IDConst = LCase(Arr(1))
if Not FindInArray(IDConst, ArrCnst) Then
UgeEst = split(ConstOtherCheck,vbCrLf)
if Not FindInArray(IDConst, UgeEst) Then
Message "Некоректное выражение: """ + ConstStr + """", 2
End IF
End IF
AddToStringUni ConstOtherCheck,IDConst,vbCrLf
Next
End IF
' } trdm [201503251718]
End IF
End Sub