Заказ звонка

Закрыть

*
*
*

Ошибка в процессе запуска макросов

Страницы: 1
RSS
Ошибка в процессе запуска макросов, SQL Server Error: Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).
В процессе отработки некоторых макросов выскакивает окно с оповещением об ошибке.
Текст в окне вот такой "SQL Server Error: Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)."
Скриншот с ошибкой в прикрепленном файле.
Причем, выполнение макроса после закрытия окна продолжается без проблем по заданному алгоритму.
Не сталкивались с таким?
1.JPG (54.72 КБ) [ Скачать ]
Расскажите по подробнее, что макросы делают, в которых эта ошибка возникает. В этих макросах она возникает стабильно или плавающая?
Вот код макроса
Код
Public Sub Zapusk()
'Выгрузка всех запусков из TCS в 1С
    Dim UchDocs 'Учетные документы
    Dim i As Long
    Dim ResTable As ADODB.Recordset
    pbStr = constProgressBarStr
    If TCSApp Is Nothing Then
        Call Connect_TCS_API
    End If
    Call TCSApp.HideProgressMessage
    pbStr = ShowProgressBarNote(pbStr, "Соединение с 1С")
    If Not Connect1C Then
        Call TCSApp.HideProgressMessage
        Exit Sub
    End If
    Call ConnectSQL
    Set Справочники = V8.Справочники
    Set Документы = V8.Документы
    Set Перечисления = V8.Перечисления
    Set ПланыСчетов = V8.ПланыСчетов
    Call TCSApp.HideProgressMessage
    Set UchDocs = TCSApp.Inventory.BalanceDocuments
    UchDocs.UserModuleName = UchDocs.UniqueUserModuleName
    UchDocs.DateStart = Date - 31
    UchDocs.DateEnd = Date
    UchDocs.Filter.Active = True
    Call UchDocs.Filter.ClearFilter
    Call UchDocs.Filter.NewFilterItem(UchDocs.Properties("NUMBER"), fkSTARTING, "Запу")
    Call UchDocs.Filter.ApplyFilter

Код
    If UchDocs.RunModuleForSel ect("Выберете учетные документы запусков", True) > 0 Then
Код
  For i = 0 To UchDocs.SelectedRowsCount - 1
            If UchDocs.GotoSelectedRow(UchDocs.SelectedRowsCount - i - 1) Then
                If CanGetThisData(UchDocs.Properties("ID").AsInteger) Then
                    pbStr = ShowProgressBarNote(pbStr, "Идет обработка документа " + CStr(UchDocs.Properties("NUMBER").DisplayText))
                    Call ClearSPEC
                    Call GetSPECZAKAZ(UchDocs.Properties("ID").AsInteger)
                    'Call CheckNMKIn1C
                    'Мы достали продукцию, с ссылкой на партию. Теперь надо достать материал и заказ из партии
                    Call GetMaterialBySerAndPart(False)
                    Call CheckNMKZakaz
                    Set Отчет = Документы.ОтчетПроизводстваЗаСмену.СоздатьДокумент()
                    Отчет.Организация = Справочники.Организации.НайтиПоКоду("000000001")
                    Отчет.ОтражатьВУправленческомУчете = True
                    Отчет.ОтражатьВБухгалтерскомУчете = True
                    Отчет.ОтражатьВНалоговомУчете = True
                    Отчет.ИспользоватьМатериалы = True
                    Отчет.ИспользоватьНаработку = True
                    Отчет.АвтораспределениеМатериалов = True
                    'Отчет.ИспользоватьЗаказы = True
                    Отчет.ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000020")
                    Отчет.Подразделение = Справочники.Подразделения.НайтиПоКоду("000000021")
                    If UchDocs.Properties("PLANT_DEPATMENT_ID").AsInteger = 90 Then
                        Отчет.Склад = Справочники.Склады.НайтиПоКоду("000000009")
                    Else
                        Отчет.Склад = Справочники.Склады.НайтиПоКоду("000000110")
                    End If
                    Отчет.Ответственный = Справочники.Пользователи.НайтиПоНаименованию("Братухина Людмила Павловна")
                    Отчет.ВводитьСтатьиЗатратПоСтрокам = True
                    Отчет.Дата = UchDocs.Properties("DATE").AsDate
                    Отчет.Комментарий = "Накл. " + UchDocs.Properties("NUMBER").DisplayText
                    Set ResTable = New ADODB.Recordset
                    ResTable.Open "ZAKAZZAPUSK", CurrentProject.Connection, adOpenStatic, adLockReadOnly
                    ResTable.MoveFirst
                    Do While Not ResTable.EOF
                        Set Отч = Отчет.Продукция.Добавить()
                        Set Результат = Справочники.Номенклатура.НайтиПоКоду(СтрЗаменить(ResTable!nmk_id_Main, Chr(160), ""))
                        Отч.Номенклатура = Результат
                        Отч.ЕдиницаИзмерения = Результат.ЕдиницаХраненияОстатков
                        Отч.Коэффициент = 1
                        Отч.Количество = CDbl(ResTable!quan_Main)
                        Отч.Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду(43)
                        Отч.СчетНУ = ПланыСчетов.Налоговый.НайтиПоКоду(43)
                        Отч.СчетЗатрат = ПланыСчетов.Хозрасчетный.ОсновноеПроизводствоНеОблагаемоеЕНВД
                        Отч.СчетЗатратНУ = ПланыСчетов.Налоговый.ПрямыеРасходыОсновногоПроизводства
                        Отч.НоменклатурнаяГруппа = Отч.Номенклатура.НоменклатурнаяГруппа
                        Отч.Качество = Справочники.Качество.Новый
                        Отч.ДоляСтоимости = 1
                        Отч.ВидВыпуска = Перечисления.ВидыВыпуска.Наработка
                        Отч.Спецификация = Справочники.СпецификацииНоменклатуры.НайтиПоКоду(СтрЗаменить(ResTable!idTechno, Chr(160), ""))
                        'Отч.ЗаказВыпуска = Документы.ЗаказНаПроизводство.НайтиПоНомеру(СокрЛП(ResTable!PSP1C), ResTable!PSPGod + "0101")
                        Call ResTable.MoveNext
                    Loop
                    ResTable.MoveFirst
                    Do While Not ResTable.EOF
                        Set Отч = Отчет.Материалы.Добавить()
                        Set Результат = Справочники.Номенклатура.НайтиПоКоду(СтрЗаменить(ResTable!idnmk, Chr(160), ""))
                        Отч.Номенклатура = Результат
                        Отч.ЕдиницаИзмерения = Результат.ЕдиницаХраненияОстатков
                        Отч.Коэффициент = 1
                        Отч.Количество = CDbl(ResTable!quan)
                        Отч.ВидВыпуска = Перечисления.ВидыВыпуска.Наработка
                        Call V8.УправлениеЗатратами.ЗаполнитьНоменклатурнуюГруппуИСтатьюЗатратВСтрокеТабличногоПоля(Отч, , False)
                        Отч.Спецификация = Справочники.СпецификацииНоменклатуры.НайтиПоКоду(СтрЗаменить(ResTable!idTechno, Chr(160), ""))
                        'Отч.ЗаказВыпуска = Документы.ЗаказНаПроизводство.НайтиПоНомеру(СокрЛП(ResTable!PSP1C), ResTable!PSPGod + "0101")
                        Call ResTable.MoveNext
                    Loop
                    ResTable.Close
                    Call Отчет.Записать
                    Call OprihodovatDocumenti(UchDocs.Properties("ID").AsInteger)
                    CurrentDb.Execute "Delete * From PSPInfo"
                    CurrentDb.Execute "Delete * Fr om RDInfo"
                Else
                    Call TCSApp.HideProgressMessage
                    Call TCSApp.ShowMessageBox("Документ " + CStr(UchDocs.Properties("NUMBER").DisplayText) + " не может быть выгружен", "Есть неоприходованный(ые) документы")
                End If
            End If
        Next
    End If
    Call TCSApp.DeleteModuleByUserModuleName(UchDocs.UserModuleName)
    Call TCSApp.HideProgressMessage
    Call DisconnectSQL
End Sub


Ошибка стабильно выскакивает во втором куске кода. Тоесть, окошко с ошибкой появляется одновременно с окном выбора учетных документов. Код макроса представлен без разрывов (все подряд)

Макрос запускается из MS Access.
Выгружает учетные документы в 1С.
А если сделать урезанный макрос, в котором было бы только подключение к TCS, к справочнику Учётные документы, установка периода, установка фильтра и проблемный вызов окна. В этом случае ошибка так же возникает?
В клиенте TCS, когда открываете этот режим есть ли какие-нибудь проблемы? Если фильтр настраиваете, период меняете?
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)