Оновлення 11.00.023

Інформація щодо випуску оновлень
Owl
Повідомлень: 55
З нами з: 03 жовтня 2013, 09:27
Звідки: Луцьк

Re: Оновлення 11.00.023

Повідомлення Owl » 02 січня 2019, 18:50

traderQ_4 писав:
02 січня 2019, 18:44
вот так, ПКМ по таблице и будет выбор
Дякую!

shershen
Повідомлень: 286
З нами з: 12 грудня 2011, 18:15

Re: Оновлення 11.00.023

Повідомлення shershen » 03 січня 2019, 14:45

в версии 023 выдается ошибка при нажатии "Зберегти"/"Перевірити документ":
Єдиний внесок, Додаток 4, табл. 5, если професия/должность содержит символ Апостраф " ' " (например, 4112):
| Показать
ХХХХХХХХХХХХХХХХХХХХХХХХХХ
M.E.DOC 11.00.023
Локальна версія
J3040512 ОС: Microsoft Windows NT 6.1.7601 Service Pack 1

Помилка виконання програми обробки:
Set Spr = App.OpenQuery(zapros,1)
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 55
ю

at FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteReader(CommandBehavior behavior)
at ZvitServerDataFB.RepDataMgr.OpenQuery(String TextQuery, Int32 NumRecordSet)
at ZvitPublishedObjects.Server.ZApplicationVBImpl.OpenQuery(String TextQuery, Int32 NumRecordSet)
at DMF.Document.Script.VB.ZApplication.OpenQuery(String TextQuery, Int32 NumRecordSet)

Line: 851 Pos: 10
Error: 0x80020101
Script sub: CHECK

'VERSION=1;STYLE=NEW;
SUB CREATE()'Програма створення
rsMain.Edit
With rsMain

.FldVal("PK") = "X"
.FldVal("FORM_TYPE")=1

End With

If Doc.GblVal("imp_xml") <> 1 Then ' если не импорт

Set rsTab1 = Doc.DataSets("TAB1")
rsTab1.First
While Not (rsTab1.BOF and rsTab1.EOF)
rsTab1.delete
Wend


Y = YEAR(CalcLastPeriodDate(Doc.NPerDate, Doc.PerType))
mm = Month(CalcLastPeriodDate(Doc.NPerDate, Doc.PerType))
dd = Day(CalcLastPeriodDate(Doc.NPerDate, Doc.PerType))

'' при создании документа происходит:
''1) заполнение таблицы списком идентификационных кодов из карточки предприятия

Set PhisPerson = App.PhisPers

i = 0

PhisPerson.First
While Not PhisPerson.Eof

If Trim(CStr(PhisPerson.FldVal("Name")))<>"" and Trim(CStr(PhisPerson.FldVal("Num")))<>"" Then ''если не пустые ФИО и ИНН
If PhisPerson.FldVal("NotUsed") <> 1 and PhisPerson.FldVal("SPD")<>1 Then '''если нет галочки Використовується і не СПД
If (IsDate(PhisPerson.FldVal("DateAdd")) and YEAR(PhisPerson.FldVal("DateAdd")) = Y and Month(PhisPerson.FldVal("DateAdd")) = mm) or _
(IsDate(PhisPerson.FldVal("DateEnd")) and YEAR(PhisPerson.FldVal("DateEnd")) = Y and Month(PhisPerson.FldVal("DateEnd")) = mm) Then

Doc.GblVal("LN") = UCase(Trim(PhisPerson.FldVal("LASTNAME")))
Doc.GblVal("NM") = UCase(Trim(PhisPerson.FldVal("FIRSTNAME")))
Doc.GblVal("FTN")= UCase(Trim(PhisPerson.FldVal("MIDDLENAME")))
Doc.GblVal("UKR_GROMAD") = 0

' FirstName = ""
' SecondName = ""
' LastName = ""
Doc.GblVal("UKR_GROMAD")= PhisPerson.FldVal("UKR_GROMAD")
' FullName = CStr(PhisPerson.FldVal("Name"))
' FullName = LTrim(FullName)
' FullName = RTrim(FullName)
' FullName = UCase(FullName)
' pos = InStr(FullName," ")
' If pos <> 0 Then
' LastName = Left(FullName,pos)
' Doc.GblVal("LN") = LastName
' ElseIf pos = 0 and len(FullName) <> 0 Then
' Doc.GblVal("LN") = FullName
' Doc.GblVal("NM") = ""
' Doc.GblVal("FTN") = ""
' End If
' If Trim(FullName)<>"" and pos <> 0 Then
' SecondAndMidName = Mid(FullName, pos)
' SecondAndMidName = LTrim(SecondAndMidName)
' SecondAndMidName = RTrim(SecondAndMidName)
'
' pos = InStr(SecondAndMidName," ")
'
' If pos = 0 and len(SecondAndMidName) <> 0 Then _
' FirstName = SecondAndMidName
'
' If pos <> 0 Then
' FirstName = Left(SecondAndMidName, pos)
' SecondName = Mid(SecondAndMidName, pos)
' End If
'
' SecondName = LTrim(SecondName)
' SecondName = RTrim(SecondName)
'
' Doc.GblVal("NM") = FirstName
' Doc.GblVal("FTN") = SecondName
' End If

If Doc.GblVal("NM") = "" and Doc.GblVal("FTN") = "" Then _
Call Trace_AddMessage("Заповніть ім'я співробітника ІНН <"+CStr(PhisPerson.FldVal("Num")) & _
"> у реєстрі співробітників", "")

TAB1_A2 = ""
TAB1_A22 = ""

If Doc.GblVal("NM") <> "" Then '''and Doc.GblVal("FTN") <> ""

TAB1_A22 = CStr(PhisPerson.FldVal("Num"))
'''Если формат NNXXXXXX , то сначала добавлем "БК":
If Len(Trim(CStr(PhisPerson.FldVal("Num")))) = 8 and _
ConvStrToDbl(Left(TAB1_A22,1)) = 0 and ConvStrToDbl(Mid(TAB1_A22,1,1)) = 0 and _
IsNumeric(Right(TAB1_A22,6)) Then

TAB1_A2 = "БК" + TAB1_A22

End If

'''Если формат NNNXXXXXX , то сначала между буквами и цифрами вставляем ПРОБЕЛ:
If Len(Trim(CStr(PhisPerson.FldVal("Num")))) = 9 and _
ConvStrToDbl(Left(TAB1_A22,1)) = 0 and ConvStrToDbl(Mid(TAB1_A22,1,1)) = 0 and ConvStrToDbl(Mid(TAB1_A22,2,1)) = 0 and _
IsNumeric(Right(TAB1_A22,6)) Then

TAB1_A2 = Left(TAB1_A22,3)+" "+ Right(TAB1_A22,6)

End If

'''Если формат XXXXXXXXX , то сначала добавлем "П":
If Len(Trim(CStr(PhisPerson.FldVal("Num")))) = 9 and IsNumeric(TAB1_A22) Then

TAB1_A2 = "П" + TAB1_A22

End If

If TAB1_A2 = "" Then TAB1_A2 = TAB1_A22

i = i + 1
rsTab1.Append
rsTab1.FldVal("ROWNUM") = i
rsTab1.FldVal("NUMIDENT") = UCase(TAB1_A2)
' rsTab1.FldVal("NUMIDENT") = UCase(CStr(PhisPerson.FldVal("Num")))

rsTab1.FldVal("LN") = Doc.GblVal("LN")
rsTab1.FldVal("NM") = Doc.GblVal("NM")
rsTab1.FldVal("FTN") = Doc.GblVal("FTN")
rsTab1.FldVal("UKR_GROMAD")=Doc.GblVal("UKR_GROMAD")

If YEAR(PhisPerson.FldVal("DateAdd")) = Y Then
If IsDate(PhisPerson.FldVal("DateAdd")) and Month(PhisPerson.FldVal("DateAdd")) = mm Then _
rsTab1.FldVal("START_DT") = Day(PhisPerson.FldVal("DateAdd"))
End If

If YEAR(PhisPerson.FldVal("DateEnd")) = Y Then
If IsDate(PhisPerson.FldVal("DateEnd")) and Month(PhisPerson.FldVal("DateEnd")) = mm Then _
rsTab1.FldVal("END_DT") = Day(PhisPerson.FldVal("DateEnd"))
End If
rsTab1.Post
End If '''если есть фамилия и имя

End If
End If '''если нет галочки Використовується і не СПД
End If '''''если не пустые ФИО и ИНН
PhisPerson.Next
' rsMain.FldVal("ROWS") = rsTab1.RecordCount
Wend

End If 'Doc.GblVal("imp_xml") <> 1

rsMain.Post
END SUB
SUB AFTER_SPR() 'Програма вибору з справочника (після)
Set rsTab1 = Doc.DataSets("TAB1")
rsTab1.Edit

If DocEditedFieldName = "NUMIDENT" Or DocEditedFieldName = "LN" Or _
DocEditedFieldName = "NM" Or DocEditedFieldName = "FTN" Then

'rsTab1.FldVal("START_DT") = Day(CurrSprDS.FldVal("DateAdd"))
'rsTab1.FldVal("END_DT") = Day(CurrSprDS.FldVal("DateEnd"))

' FullName = CStr(CurrSprDS.FldVal("Name"))
' FullName = LTrim(FullName)
' FullName = RTrim(FullName)
' FullName = UCase(FullName)
' pos = InStr(FullName," ")
' If pos <> 0 Then
' LastName = Left(FullName,pos)
' rsTab1.FldVal("LN") = LastName
' ElseIf pos = 0 and len(FullName) <> 0 Then
' rsTab1.FldVal("LN") = FullName
' rsTab1.FldVal("NM") = ""
' rsTab1.FldVal("FTN") = ""
' rsTab1.FldVal("NUMIDENT") = UCase(CStr(CurrSprDS.FldVal("Num")))
' End If
' If Trim(FullName)<>"" and pos <> 0 Then
' SecondAndMidName = Mid(FullName, pos)
' SecondAndMidName = LTrim(SecondAndMidName)
' SecondAndMidName = RTrim(SecondAndMidName)
'
' pos = InStr(SecondAndMidName," ")
'
' If pos = 0 and len(SecondAndMidName) <> 0 Then _
' FirstName = SecondAndMidName
'
' If pos = 0 Then pos = InStr(SecondAndMidName,".")
'
' If pos <> 0 Then
' FirstName = Left(SecondAndMidName, pos)
' SecondName = Mid(SecondAndMidName, pos)
' if "." = left(SecondName,1) Then SecondName = Mid(SecondAndMidName, pos+1)
' End If
'
' SecondName = LTrim(SecondName)
' SecondName = RTrim(SecondName)

'-----заповнення NUMIDENT
TAB1_A2 = ""
TAB1_A22 = ""

TAB1_A22 = CStr(CurrSprDS.FldVal("Num"))
'''Если формат NNXXXXXX , то сначала добавлем "БК":
If Len(Trim(CStr(CurrSprDS.FldVal("Num")))) = 8 and _
ConvStrToDbl(Left(TAB1_A22,1)) = 0 and ConvStrToDbl(Mid(TAB1_A22,1,1)) = 0 and IsNumeric(Right(TAB1_A22,6)) Then
TAB1_A2 = "БК" + TAB1_A22
End If

'''Если формат NNNXXXXXX , то сначала между буквами и цифрами вставляем ПРОБЕЛ:
If Len(Trim(CStr(CurrSprDS.FldVal("Num")))) = 9 and _
ConvStrToDbl(Left(TAB1_A22,1)) = 0 and ConvStrToDbl(Mid(TAB1_A22,1,1)) = 0 and ConvStrToDbl(Mid(TAB1_A22,2,1)) = 0 and IsNumeric(Right(TAB1_A22,6)) Then
TAB1_A2 = Left(TAB1_A22,3)+" "+ Right(TAB1_A22,6)
End If

'''Если формат XXXXXXXXX , то сначала добавлем "П":
If Len(Trim(CStr(CurrSprDS.FldVal("Num")))) = 9 and IsNumeric(TAB1_A22) Then
TAB1_A2 = "П" + TAB1_A22
End If

If TAB1_A2 = "" Then TAB1_A2 = TAB1_A22
'-----
' rsTab1.FldVal("NM") = FirstName
' rsTab1.FldVal("FTN") = SecondName
rsTab1.FldVal("NUMIDENT") = UCase(TAB1_A2)
rsTab1.FldVal("LN") = UCase(Trim(CurrSprDS.FldVal("LASTNAME")))
rsTab1.FldVal("NM") = UCase(Trim(CurrSprDS.FldVal("FIRSTNAME")))
rsTab1.FldVal("FTN") = UCase(Trim(CurrSprDS.FldVal("MIDDLENAME")))
' rsTab1.FldVal("NUMIDENT") = CStr(CurrSprDS.FldVal("Num"))
rsTab1.FldVal("UKR_GROMAD")=CurrSprDS.FldVal("UKR_GROMAD")
' End If ' If Trim(FullName)<>"" and pos <> 0

End If

rsTab1.Post
Set rsTab1 = Nothing
END SUB
SUB CHECK() 'Програма перевiрки
dd = Day(CalcLastPeriodDate(Doc.NPerDate, Doc.PerType))

Set regEx = New RegExp
' regEx.Pattern = "^\d{10}|БК[А-ЯІЇЄ]{2}\d{6}|[А-ЯІЇЄ]{3}\s\d{6}|F[0-9А-ЯA-ZІЇЄ]{9}|П[0-9]{9}$"
regEx.Pattern = "^\d{10}|БК[А-ЯІЇЄ]{2}\d{6}|[А-ЯІЇЄ]{3}\s\d{6}|П[0-9]{9}$"

With rsMain

If Trim(.FldVal("FIRM_RUKINN")) = "" Then _
Call Trace_AddMessage("Заповніть поле 'Податковий номер або серія та номер паспорта' страхувальника", "FIRM_RUKINN")
If Trim(.FldVal("FIRM_RUK")) = "" Then _
Call Trace_AddMessage("Заповніть 'Ініціали та прізвище' страхувальника", "FIRM_RUK")
If Trim(.FldVal("FIRM_BUHINN")) = "" Then _
Call Trace_InfoMessage("Попередження: Заповніть поле 'Податковий номер або серія та номер паспорта' головного бухгалтера", "FIRM_BUHINN")
If Trim(.FldVal("FIRM_BUH")) = "" Then _
Call Trace_InfoMessage("Попередження: Заповніть 'Ініціали та прізвище' головного бухгалтера", "FIRM_BUH")

' If not regEx.Test(TRIM(.FldVal("FIRM_RUKINN"))) Then
' Call Trace_AddMessage("Введено невірний формат ідентифікаційного номеру керівника " + CStr(.FldVal("FIRM_RUKINN")) & _
' ". Допустимі формати : ХХХХХХХХХХ - цифри, або ", "FIRM_RUKINN")
' Call Trace_AddMessage("NNN ХХХХХХ - три УКР. літери, пробіл, шість цифр (свідоцтво соц. страхування), або БКNNXXXXXX – "+ _
' "(БК, серія та № паспорта)(УКР. літери ), або ", "")
' Call Trace_AddMessage("FNNNNNNNNN, де F- латинська літера(константа), далі NNNNNNNNN - довільний набір латинських та " & _
' "українських літер, а також цифр ", "")
' End If
' If TRIM(.FldVal("FIRM_BUHINN")) <> "" and not regEx.Test(TRIM(.FldVal("FIRM_BUHINN"))) Then
' Call Trace_AddMessage("Введено невірний формат ідентифікаційного номеру головного бухгалтера " + CStr(.FldVal("FIRM_BUHINN")) & _
' ". Допустимі формати : ХХХХХХХХХХ - цифри, або ", "FIRM_BUHINN")
' Call Trace_AddMessage("NNN ХХХХХХ - три УКР. літери, пробіл, шість цифр (свідоцтво соц. страхування), або БКNNXXXXXX – "+ _
' "(БК, серія та № паспорта)(УКР. літери ), або ", "")
' Call Trace_AddMessage("FNNNNNNNNN, де F- латинська літера(константа), далі NNNNNNNNN - довільний набір латинських та " & _
' "українських літер, а також цифр ", "")
' End If

Set rsTab1 = Doc.DataSets("TAB1")
Set rsTab1Clone = rsTab1.Clone
rsTab1.First

If (rsTab1.RecordCount <=1000 and Doc.GblVal("ProgramType")<>"BUDJET") or Doc.GblVal("ProgramType")="BUDJET" Then ''Сделают на функционале для большего количества записей, потому что долго проверяется документ

While Not rsTab1.EOF
If rsTab1.FldVal("START_DT")= 0 Or rsTab1.FldVal("END_DT")= 0 Then
rsTab1Clone.Filter = "NUMIDENT = '"+ CStr(rsTab1.FldVal("NUMIDENT"))+ "' AND ZO = " + CStr(rsTab1.FldVal("ZO"))+" AND (START_DT IS NULL OR END_DT IS NULL OR START_DT = 0 OR END_DT = 0)"
' i=0
' rsTab1Clone.First
' While Not rsTab1Clone.EOF
' If rsTab1Clone.FldVal("START_DT")<>0 and rsTab1Clone.FldVal("END_DT")<>0 Then
' i=i+1
' End If
' rsTab1Clone.Next
' Wend
' If rsTab1Clone.RecordCount - i >1 then

'''FORM-2085
FLAG = 0
If rsTab1Clone.RecordCount = 2 then
flag1 = 0
flag2 = 0
FLAG = 0
rsTab1Clone.First ''первая запись
If rsTab1Clone.FldVal("START_DT") = 0 and rsTab1Clone.FldVal("END_DT") <> 0 Then
flag1 = 1
End If

rsTab1Clone.Last ''вторая запись
If rsTab1Clone.FldVal("START_DT") <> 0 and rsTab1Clone.FldVal("END_DT") = 0 Then
flag2 = 1
End If

IF (flag1 = 1 and flag2 = 1) Then
FLAG = 0 ''присваиваем 0 если надо пропустить
ELSE
FLAG = 1 ''присваиваем 1 если это ошибочная комбинация и надо выводыть ошибку
END IF

End If ''If rsTab1Clone.RecordCount = 2 then


If rsTab1Clone.RecordCount >2 or FLAG = 1 then
Call Trace_InfoMessage("Попередження: Для ЗО ІПН '"&CSTR(rsTab1.FldVal("NUMIDENT"))&"' " &CStr(rsTab1.FldVal("LN"))&" з кодом ЗО <" &CStr(rsTab1.FldVal("ZO"))& _
"> створено дублюючі записи. Перевірте правильність заповнення інформації та об'єднайте у один рядок записи, що стосуються" & _
" одного періоду трудових відносин",CSTR("NUMIDENT:"+ CSTR(rsTab1.RecNo)))
End If
rsTab1Clone.Filter = ""
End if ' If rsTab1.FldVal("START_DT")= 0 Or rsTab1.FldVal("END_DT")= 0
rsTab1.Next
Wend

End If ' IIf (rsTab1.RecordCount <=1000 and Doc.GblVal("ProgramType")<>"BUDJET") or Doc.GblVal("ProgramType")="BUDJET"
Set rsTab1Clone = Nothing
Set rsTab1 = Nothing

'----С4176, С4176_1
'=====================
Set rsTab1 = Doc.DataSets("TAB1")
Set rsTab1Clone = rsTab1.Clone
rsTab1Clone.Sort = "NUMIDENT;ZO;START_DT"
rsTab1Clone.First

NUMIDENT = rsTab1Clone.FldVal("NUMIDENT")
LN = rsTab1Clone.FldVal("LN")
ZO = rsTab1Clone.FldVal("ZO")
START_DT = rsTab1Clone.FldVal("START_DT")
DOUBL = 1
RECNUM = rsTab1Clone.FldVal("CODE")

Dim mass1()
Dim mass2()
Dim mass3()
Dim mass4()
ReDim Preserve mass1(0) ' NUMIDENT
ReDim Preserve mass2(0) ' LN
ReDim Preserve mass3(0) ' ZO
ReDim Preserve mass4(0) ' CODE
i = 0

rsTab1Clone.Next
While Not rsTab1Clone.EOF

If rsTab1Clone.FldVal("START_DT")<>0 Then
If Not(rsTab1Clone.FldVal("NUMIDENT") = NUMIDENT and rsTab1Clone.FldVal("ZO") = ZO and rsTab1Clone.FldVal("START_DT") = START_DT) Then
If DOUBL >= 2 Then
ReDim Preserve mass1(i)
ReDim Preserve mass2(i)
ReDim Preserve mass3(i)
ReDim Preserve mass4(i)
mass1(i) = CStr(NUMIDENT)
mass2(i) = CStr(LN)
mass3(i) = CStr(ZO)
mass4(i) = RECNUM
i = i + 1
End if

NUMIDENT = rsTab1Clone.FldVal("NUMIDENT")
LN = rsTab1Clone.FldVal("LN")
ZO = rsTab1Clone.FldVal("ZO")
START_DT = rsTab1Clone.FldVal("START_DT")
DOUBL = 1
RECNUM = rsTab1Clone.FldVal("CODE")

Else
DOUBL = DOUBL + 1
End if

End If ' If rsTab1Clone.FldVal("START_DT")<>0

rsTab1Clone.Next
Wend
'-----проверяем последнюю строку
If DOUBL >= 2 Then
ReDim Preserve mass1(i)
ReDim Preserve mass2(i)
ReDim Preserve mass3(i)
ReDim Preserve mass4(i)
mass1(i) = CStr(NUMIDENT)
mass2(i) = CStr(LN)
mass3(i) = CStr(ZO)
mass4(i) = RECNUM
End if

'------------------ищем номера по порядку строк для позиционирования при проверке (через поле "CODE")
Dim mass5()
ReDim Preserve mass5(UBound(mass4))

rsTab1.First
While Not rsTab1.EOF
n = rsTab1.FldVal("CODE")

For i = LBound(mass4) to UBound(mass4)
If mass4(i) <> "" Then
If n = mass4(i) Then
mass5(i) = rsTab1.RecNo
End If
End If
Next

rsTab1.Next
Wend

'------------------
For i = LBound(mass1) to UBound(mass1)
If mass1(i) <> "" Then
If mass3(i) <> "3" Then
Call Trace_AddMessage( "Для ЗО ІПН '" _
& mass1(i) _
& "' " & mass2(i) & " з категорією особи '" & mass3(i) _
& "' в полі 'Дата початку трудових відносин, відносин за договорами ЦПХ та відпусток' дублюються записи " _
& "про дату початку таких відносин, крім ЗО з категорією 3", CStr("NUMIDENT:" & mass5(i)))
Else
Call Trace_InfoMessage( "Попередження: Для ЗО ІПН '" _
& mass1(i) _
& "' " & mass2(i) & " з категорією особи '" & mass3(i) _
& "' в полі 'Дата початку трудових відносин, відносин за договорами ЦПХ та відпусток' дублюються записи " _
& "про дату початку таких відносин", CStr("NUMIDENT:" & mass5(i)))
End If
End If
Next

Set rsTab1Clone = Nothing
Set rsTab1 = Nothing
'=====================

'----С4177, С4177_1
'=====================
Set rsTab1 = Doc.DataSets("TAB1")
Set rsTab1Clone = rsTab1.Clone
rsTab1Clone.Sort = "NUMIDENT;ZO;END_DT"
rsTab1Clone.First

NUMIDENT = rsTab1Clone.FldVal("NUMIDENT")
LN = rsTab1Clone.FldVal("LN")
ZO = rsTab1Clone.FldVal("ZO")
END_DT = rsTab1Clone.FldVal("END_DT")
DOUBL = 1
RECNUM = rsTab1Clone.FldVal("CODE")

Dim mass6()
Dim mass7()
Dim mass8()
Dim mass9()
ReDim Preserve mass6(0) ' NUMIDENT
ReDim Preserve mass7(0) ' LN
ReDim Preserve mass8(0) ' ZO
ReDim Preserve mass9(0) ' CODE
i = 0

rsTab1Clone.Next
While Not rsTab1Clone.EOF

If rsTab1Clone.FldVal("END_DT")<>0 Then
If Not(rsTab1Clone.FldVal("NUMIDENT") = NUMIDENT and rsTab1Clone.FldVal("ZO") = ZO and rsTab1Clone.FldVal("END_DT") = END_DT) Then
If DOUBL >= 2 Then
ReDim Preserve mass6(i)
ReDim Preserve mass7(i)
ReDim Preserve mass8(i)
ReDim Preserve mass9(i)
mass6(i) = CStr(NUMIDENT)
mass7(i) = CStr(LN)
mass8(i) = CStr(ZO)
mass9(i) = RECNUM
i = i + 1
End if

NUMIDENT = rsTab1Clone.FldVal("NUMIDENT")
LN = rsTab1Clone.FldVal("LN")
ZO = rsTab1Clone.FldVal("ZO")
END_DT = rsTab1Clone.FldVal("END_DT")
DOUBL = 1
RECNUM = rsTab1Clone.FldVal("CODE")

Else
DOUBL = DOUBL + 1
End if

End If ' If rsTab1Clone.FldVal("END_DT")<>0

rsTab1Clone.Next
Wend
'-----проверяем последнюю строку
If DOUBL >= 2 Then
ReDim Preserve mass6(i)
ReDim Preserve mass7(i)
ReDim Preserve mass8(i)
ReDim Preserve mass9(i)
mass6(i) = CStr(NUMIDENT)
mass7(i) = CStr(LN)
mass8(i) = CStr(ZO)
mass9(i) = RECNUM
End if

'------------------ищем номера по порядку строк для позиционирования при проверке (через поле "CODE")
Dim mass10()
ReDim Preserve mass10(UBound(mass9))

rsTab1.First
While Not rsTab1.EOF
n = rsTab1.FldVal("CODE")

For i = LBound(mass9) to UBound(mass9)
If mass9(i) <> "" Then
If n = mass9(i) Then
mass10(i) = rsTab1.RecNo
End If
End If
Next

rsTab1.Next
Wend

'------------------
For i = LBound(mass6) to UBound(mass6)
If mass6(i) <> "" Then
If mass8(i) <> "3" Then
Call Trace_AddMessage( "Для ЗО ІПН '" _
& mass6(i) _
& "' " & mass7(i) & " з категорією особи '" & mass8(i) _
& "' в полі 'Дата закінчення трудових відносин, відносин за договорами ЦПХ та відпусток' дублюються записи " _
& "про дату закінчення таких відносин, крім ЗО з категорією 3", CStr("NUMIDENT:" & mass10(i)))
Else
Call Trace_InfoMessage( "Попередження: Для ЗО ІПН '" _
& mass6(i) _
& "' " & mass7(i) & " з категорією особи '" & mass8(i) _
& "' в полі 'Дата закінчення трудових відносин, відносин за договорами ЦПХ та відпусток' дублюються записи " _
& "про дату закінчення таких відносин", CStr("NUMIDENT:" & mass10(i)))
End If
End If
Next

Set rsTab1Clone = Nothing
Set rsTab1 = Nothing
'=====================

'----С4443
'--- 1p. "END_DT">0 and "PID_ZV"="" and "PID"<>""
'--- 2p. "START_DT">0 and "PID"<>"", при этом поля "PID" в 1р. и 2р. отличаются
'----если по опредилённому NUMIDENT более 2 строк, то выводить предупреждение
'=====================
Set rsTab1 = Doc.DataSets("TAB1")
Set rsTab1Clone = rsTab1.Clone
' rsTab1Clone.Sort = "NUMIDENT;ZO;START_DT;END_DT"
rsTab1Clone.Sort = "NUMIDENT;START_DT;END_DT"
rsTab1Clone.First

If rsTab1Clone.FldVal("ZO") = 1 or rsTab1Clone.FldVal("ZO") = 2 Then
NUMIDENT = rsTab1Clone.FldVal("NUMIDENT")
LN = rsTab1Clone.FldVal("LN")
ZO = rsTab1Clone.FldVal("ZO")
PID = rsTab1Clone.FldVal("PID")
If rsTab1Clone.FldVal("START_DT")>0 and rsTab1Clone.FldVal("END_DT")=0 Then N1 = 1 Else N1 = 0
If rsTab1Clone.FldVal("END_DT")>0 and rsTab1Clone.FldVal("START_DT")=0 and rsTab1Clone.FldVal("PID_ZV")="" and rsTab1Clone.FldVal("PID")<>"" Then N2 = 1 Else N2 = 0
RECNUM = rsTab1Clone.FldVal("CODE")
k = 1
Else
NUMIDENT = ""
N1 = -1
N2 = -1
End If

Dim mass11()
Dim mass12()
Dim mass13()
Dim mass14()
Dim mass16()
ReDim Preserve mass11(0) ' NUMIDENT
ReDim Preserve mass12(0) ' LN
ReDim Preserve mass13(0) ' ZO
ReDim Preserve mass14(0) ' CODE
ReDim Preserve mass16(0) ' k - счётчик количества сторок по конкретному NUMIDENT
i = 0

rsTab1Clone.Next
While Not rsTab1Clone.EOF

If rsTab1Clone.FldVal("ZO") = 1 or rsTab1Clone.FldVal("ZO") = 2 Then

If rsTab1Clone.FldVal("NUMIDENT") <> NUMIDENT Then
If N1 = 1 and N2 = 1 Then
ReDim Preserve mass11(i)
ReDim Preserve mass12(i)
ReDim Preserve mass13(i)
ReDim Preserve mass14(i)
ReDim Preserve mass16(i)
mass11(i) = CStr(NUMIDENT)
mass12(i) = CStr(LN)
mass13(i) = CStr(ZO)
mass14(i) = RECNUM
mass16(i) = k
i = i + 1
End if

NUMIDENT = rsTab1Clone.FldVal("NUMIDENT")
LN = rsTab1Clone.FldVal("LN")
ZO = rsTab1Clone.FldVal("ZO")
PID = rsTab1Clone.FldVal("PID")
If rsTab1Clone.FldVal("START_DT")>0 and rsTab1Clone.FldVal("END_DT")=0 Then N1 = 1 Else N1 = 0
If rsTab1Clone.FldVal("END_DT")>0 and rsTab1Clone.FldVal("START_DT")=0 and rsTab1Clone.FldVal("PID_ZV")="" and rsTab1Clone.FldVal("PID")<>"" Then N2 = 1 Else N2 = 0
RECNUM = rsTab1Clone.FldVal("CODE")
k = 1

Else
If rsTab1Clone.FldVal("START_DT")>0 and rsTab1Clone.FldVal("END_DT")=0 and rsTab1Clone.FldVal("PID")<>PID Then N1 = 1
If rsTab1Clone.FldVal("END_DT")>0 and rsTab1Clone.FldVal("START_DT")=0 and rsTab1Clone.FldVal("PID_ZV")="" and rsTab1Clone.FldVal("PID")<>"" Then
N2 = 1
PID = rsTab1Clone.FldVal("PID")
ZO = rsTab1Clone.FldVal("ZO")
RECNUM = rsTab1Clone.FldVal("CODE")
End If
k = k + 1
End if ' If rsTab1Clone.FldVal("NUMIDENT") <> NUMIDENT

End If ' If rsTab1Clone.FldVal("ZO") = 1 or rsTab1Clone.FldVal("ZO") = 2

rsTab1Clone.Next
Wend
'-----проверяем последнюю строку
If N1 = 1 and N2 = 1 Then
ReDim Preserve mass11(i)
ReDim Preserve mass12(i)
ReDim Preserve mass13(i)
ReDim Preserve mass14(i)
ReDim Preserve mass16(i)
mass11(i) = CStr(NUMIDENT)
mass12(i) = CStr(LN)
mass13(i) = CStr(ZO)
mass14(i) = RECNUM
mass16(i) = k
End if

'------------------ищем номера по порядку строк для позиционирования при проверке (через поле "CODE")
Dim mass15()
ReDim Preserve mass15(UBound(mass14))

rsTab1.First
While Not rsTab1.EOF
n = rsTab1.FldVal("CODE")

For i = LBound(mass14) to UBound(mass14)
If mass14(i) <> "" Then
If n = mass14(i) Then
mass15(i) = rsTab1.RecNo
End If
End If
Next

rsTab1.Next
Wend

'------------------
For i = LBound(mass11) to UBound(mass11)
If mass11(i) <> "" Then
If mass16(i) > 2 Then
Call Trace_InfoMessage( "Для ЗО ІПН '" _
& mass11(i) _
& "' " & mass12(i) & " з категорією особи '" & mass13(i) _
& "' за наявності заповненого поля 'Дата закінчення' не заповнено поле 'Підстава для припинення трудових відносин'. " _
& "Заповніть підставу припинення трудових відносин.", CStr("NUMIDENT:" & mass15(i)))
Else
Call Trace_AddMessage( "Для ЗО ІПН '" _
& mass11(i) _
& "' " & mass12(i) & " з категорією особи '" & mass13(i) _
& "' за наявності заповненого поля 'Дата закінчення' не заповнено поле 'Підстава для припинення трудових відносин'. " _
& "Заповніть підставу припинення трудових відносин.", CStr("NUMIDENT:" & mass15(i)))
End If
End If
Next

Set rsTab1Clone = Nothing
Set rsTab1 = Nothing
'=====================

Set rsTab1 = Doc.DataSets("TAB1")
rsTab1.First
While Not rsTab1.EOF

If not regEx.Test(Trim(rsTab1.FldVal("NUMIDENT"))) Then
Call Trace_AddMessage("ЗО ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) + "' "+CStr(rsTab1.FldVal("LN"))+ _
", введено невірний формат ІПН. Допустимі формати : ХХХХХХХХХХ - цифри, або ", CSTR("NUMIDENT:"+ CSTR(rsTab1.RecNo)))
Call Trace_AddMessage("NNN ХХХХХХ - три УКР. літери, пробіл, шість цифр (свідоцтво соц. страхування), або БКNNXXXXXX – "+ _
"(БК, серія та № паспорта)(УКР. літери ), або ", "")
' Call Trace_AddMessage("FNNNNNNNNN, де F- латинська літера(константа), далі NNNNNNNNN - довільний набір латинських та " & _
' "українських літер, а також цифр ", "")
Call Trace_AddMessage("ПNNNNNNNNN, де П- укр. літера(константа), далі NNNNNNNNN - довільний набір 9 цифр", "")
End If

NUMIDENT = Trim(rsTab1.FldVal("NUMIDENT"))

If NUMIDENT <> "" and (NUMIDENT = "0000000000" or NUMIDENT = "1111111111" or NUMIDENT = "2222222222" or NUMIDENT = "3333333333" or _
NUMIDENT = "4444444444" or NUMIDENT = "5555555555" or NUMIDENT = "6666666666" or NUMIDENT = "7777777777" or _
NUMIDENT = "8888888888" or NUMIDENT = "9999999999") Then
Call Trace_AddMessage("ІПН '" + CStr(NUMIDENT) + "' "+CStr(rsTab1.FldVal("LN"))+ _
". Введено невірний формат ІПН. Введіть коректний номер платника податку ЗО", CSTR("NUMIDENT:"+ CSTR(rsTab1.RecNo)))
End If

If rsTab1.FldVal("UKR_GROMAD") <> 0 and rsTab1.FldVal("UKR_GROMAD") <> 1 Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) + "' "+CStr(rsTab1.FldVal("LN"))& _
". Значення поля 'Громадянин України' <" + CStr(rsTab1.FldVal("UKR_GROMAD")) + "> " & _
"повинно бути 0 або 1 ", CSTR("UKR_GROMAD:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("ZO") < 0 or rsTab1.FldVal("ZO") > 8 Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Значення 'Код категорії ЗО' відмінне від 1, 2, 3, 4, 5, 6, 7, 8", _
CSTR("ZO:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("ZO") = 0 and DateSerial(rsMain.FldVal("REP_NYEAR"),rsMain.FldVal("REP_NMONTH"),1) >= DateSerial(2011,8,1) Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Не зазначено код категорії застрахованої особи в полі 'Категорія особи'", _
CSTR("ZO:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("LN") = "" Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) + "' "+CStr(rsTab1.FldVal("LN"))& _
". Не зазначено прізвище застрахованої особи в полі 'Прізвище'", _
CSTR("LN:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("NM") = "" Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) + "' "+CStr(rsTab1.FldVal("LN"))& _
". Не зазначено ім'я застрахованої особи в полі 'Ім'я'", _
CSTR("NM:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("FTN") = "" Then _
Call Trace_InfoMessage("Попередження: ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) + "' "+CStr(rsTab1.FldVal("LN"))& _
". Не зазначено по батькові застрахованої особи в полі 'По батькові'", _
CSTR("FTN:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("START_DT")<0 or rsTab1.FldVal("START_DT") > dd Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) + "' "+CStr(rsTab1.FldVal("LN"))& _
". Значення поля 'Дата початку' повинно бути цілим числом від 1 до "+CStr(dd), _
CSTR("START_DT:"+ CSTR(rsTab1.RecNo)))
If rsTab1.FldVal("END_DT")<0 or rsTab1.FldVal("END_DT") > dd Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) + "' "+CStr(rsTab1.FldVal("LN"))& _
". Значення поля 'Дата закінчення' повинно бути цілим числом від 1 до "+CStr(dd), _
CSTR("END_DT:"+ CSTR(rsTab1.RecNo)))
If rsTab1.FldVal("START_DT")<>0 and rsTab1.FldVal("END_DT")<>0 and _
rsTab1.FldVal("START_DT") > rsTab1.FldVal("END_DT") Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) + "' "+CStr(rsTab1.FldVal("LN"))& _
". Дата початку перевищує дату закінчення", CSTR("START_DT:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("START_DT") = 0 and rsTab1.FldVal("END_DT") = 0 Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) + "' "+CStr(rsTab1.FldVal("LN"))& _
". Повинно бути заповнене одне з полів 'Дата початку' або 'Дата закінчення'", _
CSTR("START_DT:"+ CSTR(rsTab1.RecNo)))

If (rsTab1.FldVal("ZO") = 1 or rsTab1.FldVal("ZO") = 2) and rsTab1.FldVal("END_DT") <> 0 and _
rsTab1.FldVal("PID_ZV") = "" Then _
Call Trace_InfoMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Для ЗО з категорією особи 1 або 2 за наявності заповненого поля 'Дата закінчення' " & _
"повинно бути заповнене поле 'Підстава припинення трудових відносин'", _
CSTR("PID_ZV:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("ZO") = 3 and rsTab1.FldVal("DOG_CPH") = 0 Then _
Call Trace_InfoMessage("Попередження: ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Перевірте правильність заповнення графи 8", _
CSTR("DOG_CPH:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("ZO") <> 3 and rsTab1.FldOrigVal("DOG_CPH") <> 0 Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Колонка 'Договір ЦПХ за основним місцем роботи' заповнюється лише для категорії 3.", _
CSTR("DOG_CPH:"+ CSTR(rsTab1.RecNo)))

IF rsTab1.FldVal("ZO") <> 1 and rsTab1.FldVal("ZO") <> 2 and IsDate(rsTab1.FldVal("NRM_DT")) Then
Call Trace_AddMessage( "ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Гр. 12 'Дата створення нового робочого місяця' заповнюється лише для категорій 1 та 2" ,_
CStr("NRM_DT:" + CStr(rsTab1.RecNo)))
End If

If rsTab1.FldVal("ZO") = 8 and rsTab1.FldVal("VZV") = "" Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Для ЗО з категорією особи 8 не зазначено військове звання в графі 19", _
CSTR("VZV:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("ZO") >= 1 and rsTab1.FldVal("ZO")< 7 and rsTab1.FldVal("VZV") <> "" Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Для ЗО з категорією особи 1,2,3,4,5,6 зазначено військове звання в графі 19", _
CSTR("VZV:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("ZO") >= 3 and rsTab1.FldVal("ZO")< 8 and (rsTab1.FldVal("PNR")<>"" or rsTab1.FldVal("ZKPP")<>"" or rsTab1.FldVal("PROF")<>"" or rsTab1.FldVal("POS")<>"" or rsTab1.FldVal("VZV")<>"") Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Для ЗО з категорією особи 3,4,5,6,7 заповнено гр.12 'Професійна назва роботи', гр.13 'Код ЗКППТР', гр.14 'Код КП', гр.15 'Посада' та/або гр.19 'Військове звання'", _
CSTR("PNR:"+ CSTR(rsTab1.RecNo)))

If (rsTab1.FldVal("ZO") = 1 or rsTab1.FldVal("ZO")= 2) and (rsTab1.FldVal("PNR")<>"" or rsTab1.FldVal("ZKPP")<>"") and rsTab1.FldVal("PROF")="" Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Для ЗО з категорією особи 1,2 заповнено гр.12 'Професійна назва роботи', гр.13 'Код ЗКППТР' та не заповнено гр.14 'Код КП'", _
CSTR("PROF:"+ CSTR(rsTab1.RecNo)))

If DateSerial(rsMain.FldVal("REP_NYEAR"), rsMain.FldVal("REP_NMONTH"),1)>= DateSerial(2018,8,1) and (rsTab1.FldVal("ZO") = 1 or rsTab1.FldVal("ZO")= 2) and rsTab1.FldVal("POS")="" Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Для ЗО з категорією особи 1,2 не заповнено гр.15 'Посада'", _
CSTR("POS:"+ CSTR(rsTab1.RecNo)))

If (rsTab1.FldVal("ZO") = 1 or rsTab1.FldVal("ZO")= 2) and (rsTab1.FldVal("POS")="Інші посади" or rsTab1.FldVal("POS")="Інша" or rsTab1.FldVal("POS")="Інші") Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Для ЗО з категорією особи 1,2 гр.15 'Посада' заповнено значенням 'Інші посади', 'Інша', 'Інші'", _
CSTR("POS:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("ZO") = 8 and (rsTab1.FldVal("PNR")<>"" or rsTab1.FldVal("ZKPP")<>"" or rsTab1.FldVal("PROF")<>"") Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Для ЗО з категорією особи 8 заповнено гр.12 'Професійна назва роботи', гр.13 'Код ЗКППТР', гр.14 'Код КП'", _
CSTR("PNR:"+ CSTR(rsTab1.RecNo)))


'----перевірка на наявність кода у довіднику
Spr = App.GetSprValue("HBCLASSPROF", "NAME", Cstr(rsTab1.FldVal("PNR")), "NAME")
If rsTab1.FldVal("PNR")<>"" and Trim(Spr) = "" Then _
Call Trace_AddMessage("Значення поля гр.12 'Професійна назва роботи' не відповідає значенням в Класифікаторі ДК 003:2010.", CSTR("PNR:"+ CSTR(rsTab1.RecNo)))

Spr = App.GetSprValue("HBCLASSPROF", "ZKPP", Cstr(rsTab1.FldVal("ZKPP")), "ZKPP")
If rsTab1.FldVal("ZKPP")<>"" and Trim(Spr) = "" Then _
Call Trace_AddMessage("Значення поля гр.13 'Код ЗКППТР' не відповідає значенням в Класифікаторі ДК 003:2010.", CSTR("ZKPP:"+ CSTR(rsTab1.RecNo)))

Spr = App.GetSprValue("HBCLASSPROF", "CODEKP", Cstr(rsTab1.FldVal("PROF")), "CODEKP")
If rsTab1.FldVal("PROF")<>"" and Trim(Spr) = "" Then _
Call Trace_AddMessage("Значення поля гр.14 'Код КП' не відповідає значенням в Класифікаторі ДК 003:2010.", CSTR("PROF:"+ CSTR(rsTab1.RecNo)))

If rsTab1.FldVal("ZO") = 1 or rsTab1.FldVal("ZO") = 2 Then
If rsTab1.FldVal("ZKPP")<> "" Then
zapros = "HBCLASSPROF WHERE NAME = '" + CStr(rsTab1.FldVal("PNR"))+ "' AND ZKPP = '"+CStr(rsTab1.FldVal("ZKPP"))+ "' AND CODEKP = '"+CStr(rsTab1.FldVal("PROF"))+ "'"
Else
zapros = "HBCLASSPROF WHERE NAME = '" + CStr(rsTab1.FldVal("PNR"))+ "' AND ZKPP is Null AND CODEKP = '"+CStr(rsTab1.FldVal("PROF"))+ "'"
End If
Set Spr = App.OpenQuery(zapros,1)
Spr.First
If Spr.RecordCount<1 Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Заповнено поле 'Професійна назва роботи', поле 'Код ЗКППТР', поле 'Код КП', які не відповідають значенням в Класифікаторі ДК 003:2010.", _
CSTR("PROF:"+ CSTR(rsTab1.RecNo)))
Set Spr = Nothing
End If

Spr = App.GetSprValue("HBMILITARY", "NAME", Cstr(rsTab1.FldVal("VZV")), "NAME")
If rsTab1.FldVal("VZV")<>"" and Trim(Spr) = "" Then _
Call Trace_AddMessage("Значення поля гр.19 'Військове звання' зазначено звання, яке не відповідає званням визначених ЗУ.", CSTR("VZV:"+ CSTR(rsTab1.RecNo)))

If DateSerial(rsMain.FldVal("REP_NYEAR"), rsMain.FldVal("REP_NMONTH"),1)< DateSerial(2018,8,1) and _
(rsTab1.FldVal("PNR")<>"" or rsTab1.FldVal("ZKPP")<>"" or rsTab1.FldVal("PROF")<>"" or rsTab1.FldVal("POS")<>"" or rsTab1.FldVal("PID")<>"" or rsTab1.FldVal("VZV")<>"") Then _
Call Trace_InfoMessage("Попередження: ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". До 01.08.2018 не заповнюються гр.12 'Професійна назва роботи', гр.13 'Код ЗКППТР', гр.14 'Код КП', гр.15 'Посада', гр.16 'Документ підстава...', гр.19 'Військове звання'", _
CSTR("PNR:"+ CSTR(rsTab1.RecNo)))

If DateSerial(rsMain.FldVal("REP_NYEAR"), rsMain.FldVal("REP_NMONTH"),1)>= DateSerial(2018,8,1) and (rsTab1.FldVal("ZO")>=1 and rsTab1.FldVal("ZO")=<7) and rsTab1.FldVal("PID")="" Then _
Call Trace_AddMessage("ІПН '" + CStr(rsTab1.FldVal("NUMIDENT")) _
& "' " + CStr(rsTab1.FldVal("LN")) _
& ". Не заповнена гр.16 'Документ підстава...' для ЗО з категорією особи 1,2,3,4,5,6,7", _
CSTR("PID:"+ CSTR(rsTab1.RecNo)))

rsTab1.Next
Wend
Set rsTab1 = Nothing

Doc.GblVal("FT") = 0
Cnd = "CharCode='J3000412' AND CODE=" + Trim(Doc.Card("IDPARENT"))
Set rsDocs = App.DocumentsDataSet(Cnd)
rsDocs.First
If Not rsDocs.EOF Then
Set SomeDoc = App.OpenDocumentByCode(rsDocs.FldVal("Code"))
Set rsSomeDoc = SomeDoc.DataSets("MAIN")
If rsSomeDoc.FldVal("FORM_TYPE") = 1 Then Doc.GblVal("FT") = 1
If rsSomeDoc.FldVal("FORM_TYPE") = 3 Then Doc.GblVal("FT") = 3
Set SomeDoc = nothing
Set rsSomeDoc = nothing
End If
Set rsDocs = Nothing

If Doc.GblVal("FT") = 1 Then
Cnd = "CharCode='J3040112' AND IDPARENT=" + Trim(Doc.Card("IDPARENT"))
Set rsDocs = App.DocumentsDataSet(Cnd)
rsDocs.First
If (rsDocs.EOF and rsDocs.BOF) Then _
Call Trace_AddMessage("Звіт містить таблицю 5, а таблиця 1 звіту відсутня. Створіть таблицю 1", "")
Set rsDocs = Nothing
End If

'------в пачці "скасовуюча" повинні бути початкова і скасовуюча табл.
If Doc.GblVal("FT") = 3 and .FldVal("FORM_TYPE") = 1 Then
n = 0
Cnd = "CharCode='J3040512' AND IDPARENT=" + Trim(Doc.Card("IDPARENT"))
Set rsDocs = App.DocumentsDataSet(Cnd)
rsDocs.First
While Not rsDocs.EOF
Set SomeDoc = App.OpenDocumentByCode(rsDocs.FldVal("Code"))
Set rsSomeDoc = SomeDoc.DataSets("MAIN")
If rsSomeDoc.FldVal("FORM_TYPE") = 1 Then n = n + 1
If rsSomeDoc.FldVal("FORM_TYPE") = 3 Then n = n + 3
Set SomeDoc = nothing
Set rsSomeDoc = nothing
rsDocs.Next
Wend
Set rsDocs = Nothing
If n <> 4 Then _
Call Trace_AddMessage("Табл.5 Для скасовуючих звітів одночасно із 'початковою' необхідно подавати 'скасовуючу' таблицю. Виправте зазначену помилку", "")
End If

End With
END SUB
SUB OPEN() 'Вiдкриття
rsMain.Edit
With rsMain

'If .FldVal("PK")= "" and .FldVal("SK")="" and .FldVal("DK")="" Then
' If .FldVal("FORM_TYPE")=1 Then _
' .FldVal("PK") = "X"
' If .FldVal("FORM_TYPE")=3 Then _
' .FldVal("SK") = "X"
' If .FldVal("FORM_TYPE")=5 Then _
' .FldVal("DK") = "X"
'End If

End With
rsMain.Post
END SUB
SUB SAVE() 'Збереження

'If Not IsNull(Doc.Card("IDPARENT")) Then
' Doc.GblVal("KeyCD") = Trim(Doc.Card("IDPARENT"))
' If Doc.GblVal("KeyCD") > 0 Then
' Set SomeDoc = App.OpenDocumentByCode(Doc.GblVal("KeyCD"))
' Set rsSomeDoc = SomeDoc.DataSets("MAIN")
'
' rsSomeDoc.Edit
' rsSomeDoc.FldVal("N5_3") = 1
' rsSomeDoc.Post
'
' SomeDoc.Save(0)
' SomeDoc.Close
' Set SomeDoc = Nothing
' Set rsSomeDoc = Nothing
' End If
'End If '''If Not IsNull(Doc.Card("IDPARENT")) Then

END SUB
SUB IMPORT() 'Імпорт
rsMain.Edit
With rsMain

If .FldVal("PK") <> "" Then .FldVal("FORM_TYPE") = 1
If .FldVal("SK") <> "" Then .FldVal("FORM_TYPE") = 3
If .FldVal("DK") <> "" Then .FldVal("FORM_TYPE") = 5

Set rsTab1 = Doc.DataSets("TAB1")
rsTab1.First
While Not rsTab1.EOf
rsTab1.Edit
If IsNull(rsTab1.FldOrigVal("UKR_GROMAD")) Then rsTab1.FldVal("UKR_GROMAD") = 0
If IsNull(rsTab1.FldOrigVal("DOG_CPH")) Then rsTab1.FldVal("DOG_CPH") = 0
rsTab1.Post
rsTab1.Next
Wend
Set rsTab1 = Nothing

End With
rsMain.Post
END SUB
SUB EXPORT() 'Експорт
rsMain.Edit
With rsMain

Set rsTab1 = Doc.DataSets("TAB1")
rsTab1.First
While Not rsTab1.EOf
rsTab1.Edit
If IsNull(rsTab1.FldOrigVal("UKR_GROMAD")) Then rsTab1.FldVal("UKR_GROMAD") = 0
If IsNull(rsTab1.FldOrigVal("DOG_CPH")) Then rsTab1.FldVal("DOG_CPH") = 0
rsTab1.Post
rsTab1.Next
Wend
Set rsTab1 = Nothing

End With
rsMain.Post
END SUB
как выход - сохранять отчет не кнопкой, а при его закрытии

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Оновлення 11.00.023

Повідомлення Белокопытов Геннадий » 03 січня 2019, 15:15

shershen
Будет исправлено в следующем обновлении программы

Sagius
Повідомлень: 759
З нами з: 29 березня 2016, 08:58

Re: Оновлення 11.00.023

Повідомлення Sagius » 03 січня 2019, 16:31

Были замечены случаи, что созданная в .023 версии S1391101 "Заявка про реєстрацію"... не отправляется из открытого бланка, а только из закрытого. При этом никаких ошибок не пишет, просто при нажатии "Відправити у контролюючий орган" ничего не происходит.
И в локальной версии, и в сетевой.
(По логам ничего сказать не могу)

kiac
Повідомлень: 189
З нами з: 30 вересня 2011, 14:15

Re: Оновлення 11.00.023

Повідомлення kiac » 03 січня 2019, 16:34

Добрый день. ФОП получили ключ Приват банка, сделали конвертацию в медке. все потдянулось, но при подписании документа, когда запрашивает ключ шифрования печати, выдает "не найдено секретый ключ". соответственно и почту получить не могут. что не так делаем? ранее тоже были ключи привата.

Sagius
Повідомлень: 759
З нами з: 29 березня 2016, 08:58

Re: Оновлення 11.00.023

Повідомлення Sagius » 03 січня 2019, 16:37

kiac писав:
03 січня 2019, 16:34
Добрый день. ФОП получили ключ Приват банка, сделали конвертацию в медке. все потдянулось, но при подписании документа, когда запрашивает ключ шифрования печати, выдает "не найдено секретый ключ". соответственно и почту получить не могут. что не так делаем? ранее тоже были ключи привата.
У ключей Привата была старая проблема, что могут Директора и Печать поместить в один файл, что некорректно. Попробуйте зайти таким ключом в Кабинет, если не получится - вопрос уже к банку.

Grigoriy
Повідомлень: 159
З нами з: 14 листопада 2018, 11:05

Re: Оновлення 11.00.023

Повідомлення Grigoriy » 03 січня 2019, 16:43

Здравствуйте. При отправке запросов с модуля «Звірка документів з ЄРПН» не изменяется статус в столбике «Номер запиту», остаётся запись «Не відправлявся», в столбике «Дата і час відправки запиту» пустота. При попытке сделать повторную отправку программа ругается «…обмежено кількість повторної відправки запитів». Эта проблема имеется на двух разных не зависимых друг от друга компьютерах. Версия программ 11.00.023. Создание архива с проверкой базы данных проходит успешно. Подскажите пожалуйста как изменить сложившуюся ситуацию.
| Показать
Снимок_3.JPG
Снимок_3.JPG (174.32 Кіб) Переглянуто 3724 разів
Снимок_4.JPG
Снимок_4.JPG (127.11 Кіб) Переглянуто 3724 разів
Снимок_1.JPG
Снимок_1.JPG (44.16 Кіб) Переглянуто 3724 разів

Sagius
Повідомлень: 759
З нами з: 29 березня 2016, 08:58

Re: Оновлення 11.00.023

Повідомлення Sagius » 03 січня 2019, 16:48

Grigoriy писав:
03 січня 2019, 16:43
...«…обмежено кількість повторної відправки запитів»...
Дело в том, что данная функция по одному и тому же периоду/интервалу доступна раз в сутки (наверное, чтоб не убить и без того "живой" сервер ДФС).
По поводу "Не обновляется надпись" - не обновляется сразу после запроса или даже после приема Витягов с нажатием после этого кнопки "Оновити інформаціию"?

Grigoriy
Повідомлень: 159
З нами з: 14 листопада 2018, 11:05

Re: Оновлення 11.00.023

Повідомлення Grigoriy » 03 січня 2019, 16:55

Информация в этих столбиках не обновляется даже после приёма Вытягов, соответственно не обновляются данные в верхней таблице «Інформація по звірці».

Голодный Пельмень
Повідомлень: 281
З нами з: 15 травня 2018, 13:05

Re: Оновлення 11.00.023

Повідомлення Голодный Пельмень » 03 січня 2019, 16:58

Grigoriy писав:
03 січня 2019, 16:55
Информация в этих столбиках не обновляется даже после приёма Вытягов, соответственно не обновляются данные в верхней таблице «Інформація по звірці».
Это у ФЛП, да?

Grigoriy
Повідомлень: 159
З нами з: 14 листопада 2018, 11:05

Re: Оновлення 11.00.023

Повідомлення Grigoriy » 03 січня 2019, 17:02

Да.

Sagius
Повідомлень: 759
З нами з: 29 березня 2016, 08:58

Re: Оновлення 11.00.023

Повідомлення Sagius » 03 січня 2019, 17:07

Grigoriy писав:
03 січня 2019, 16:55
Информация в этих столбиках не обновляется даже после приёма Вытягов, соответственно не обновляются данные в верхней таблице «Інформація по звірці».
Тогда не знаю. Могу только посоветовать очистить паку zvit9, но при этом собьются пути к секретным ключам и не факт что поможет (каталог находится в папке учетной записи пользователя, в AppData\Roaming)

priup
Повідомлень: 7713
З нами з: 22 червня 2011, 12:23

Re: Оновлення 11.00.023

Повідомлення priup » 03 січня 2019, 17:10

Голодный Пельмень писав:
03 січня 2019, 16:58
Grigoriy писав:
03 січня 2019, 16:55
Информация в этих столбиках не обновляется даже после приёма Вытягов, соответственно не обновляются данные в верхней таблице «Інформація по звірці».
Это у ФЛП, да?
Grigoriy писав:
03 січня 2019, 17:02
Да.
уже писали об этом на форуме.
У одного моего ФОПА тоже проявилось.......
У Юриков не проявляется! Это глюк 23 обновы, реакции разработчиков я не знаю........... :(

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Оновлення 11.00.023

Повідомлення Белокопытов Геннадий » 03 січня 2019, 17:13

Grigoriy писав:
03 січня 2019, 16:43
Здравствуйте. При отправке запросов с модуля «Звірка документів з ЄРПН» не изменяется статус в столбике «Номер запиту», остаётся запись «Не відправлявся», в столбике «Дата і час відправки запиту» пустота. При попытке сделать повторную отправку программа ругается «…обмежено кількість повторної відправки запитів». Эта проблема имеется на двух разных не зависимых друг от друга компьютерах. Версия программ 11.00.023. Создание архива с проверкой базы данных проходит успешно. Подскажите пожалуйста как изменить сложившуюся ситуацию.
| Показать
Снимок_3.JPG
Снимок_4.JPG
Снимок_1.JPG
Для ФОП заполнение графы с номером отправленного запроса F1300105 и наличия вытяга в модуле "Звірка документів з ЄРПН" будет исправлено в следующем обновлении программы.

priup
Повідомлень: 7713
З нами з: 22 червня 2011, 12:23

Re: Оновлення 11.00.023

Повідомлення priup » 03 січня 2019, 17:18

Белокопытов Геннадий писав:
03 січня 2019, 17:13
Grigoriy писав:
03 січня 2019, 16:43
Здравствуйте. При отправке запросов с модуля «Звірка документів з ЄРПН» не изменяется статус в столбике «Номер запиту», остаётся запись «Не відправлявся», в столбике «Дата і час відправки запиту» пустота. При попытке сделать повторную отправку программа ругается «…обмежено кількість повторної відправки запитів». Эта проблема имеется на двух разных не зависимых друг от друга компьютерах. Версия программ 11.00.023. Создание архива с проверкой базы данных проходит успешно. Подскажите пожалуйста как изменить сложившуюся ситуацию.
Для ФОП заполнение графы с номером отправленного запроса F1300105 и наличия вытяга в модуле "Звірка документів з ЄРПН" будет исправлено в следующем обновлении программы.
Спасибо, Геннадий!
Будем подождать.....

Sagius
Повідомлень: 759
З нами з: 29 березня 2016, 08:58

Re: Оновлення 11.00.023

Повідомлення Sagius » 03 січня 2019, 18:47

Также по ситуации с неподписание стат. отчетов в закрытом виде - вроде как это происходит только у юр.лиц, если комплекте подписей для стат.отчетов не настроено подписание печатью (выбрано, например, "Директор"). Но, опять же, никакого сообщения с ошибкой/информационного не появляется.
:!:

administrator
Повідомлень: 4
З нами з: 19 грудня 2018, 13:05

Re: Оновлення 11.00.023

Повідомлення administrator » 03 січня 2019, 18:53

Sagius писав:
03 січня 2019, 18:47
Также по ситуации с неподписание стат. отчетов в закрытом виде - вроде как это происходит только у юр.лиц, если комплекте подписей для стат.отчетов не настроено подписание печатью (выбрано, например, "Директор"). Но, опять же, никакого сообщения с ошибкой/информационного не появляется.
:!:
Просто когда появляться окошко его игнорируют, естественно потом из отчета нечего не появляется.

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Оновлення 11.00.023

Повідомлення Белокопытов Геннадий » 03 січня 2019, 19:24

priup писав:
03 січня 2019, 17:18
Для ФОП заполнение графы с номером отправленного запроса F1300105 и наличия вытяга в модуле "Звірка документів з ЄРПН" будет исправлено в следующем обновлении программы.
Спасибо, Геннадий!
Будем подождать.....
Отправку запросов с модуля сверки для ФОП необходимо будет выполнить повторно

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Оновлення 11.00.023

Повідомлення Белокопытов Геннадий » 03 січня 2019, 19:26

Sagius писав:
03 січня 2019, 18:47
Также по ситуации с неподписание стат. отчетов в закрытом виде - вроде как это происходит только у юр.лиц, если комплекте подписей для стат.отчетов не настроено подписание печатью (выбрано, например, "Директор"). Но, опять же, никакого сообщения с ошибкой/информационного не появляется.
:!:
Написал уточнения вам в ЛС

Grigoriy
Повідомлень: 159
З нами з: 14 листопада 2018, 11:05

Re: Оновлення 11.00.023

Повідомлення Grigoriy » 03 січня 2019, 19:43

Белокопытов Геннадий писав:
03 січня 2019, 19:24
priup писав:
03 січня 2019, 17:18
Для ФОП заполнение графы с номером отправленного запроса F1300105 и наличия вытяга в модуле "Звірка документів з ЄРПН" будет исправлено в следующем обновлении программы.
Спасибо, Геннадий!
Будем подождать.....
Отправку запросов с модуля сверки для ФОП необходимо будет выполнить повторно
Выполнить повторно, после 024 обновления?

Відповісти

Повернутись до “Оновлення програми M.E.Doc”