Ошибка Command.Execute в 1С 8.3.19
В базе выполняется синхронизация со свободными таблицами dbf (запись, обновлние, удаление) с помощью "Advantage OLE DB Provider" v.11
В версии 8.3.16.1026 все отрабатывало нормально, при переходе на версию 8.3.19.1150/1229 отрабатывает один раз либо ни разу, останавливаясь на строке "RecordSet = Command.Execute();".
При этом ошибки не выдает.
СтрокаПодключения="Provider=Advantage OLE DB Provider; Data Source=D:\BASE; ServerType = ADS_LOCAL_SERVER; TableType = ADS_ANSI ; CharType = ADS_VFP; LockMode = ADS_COMPATIBLE_LOCKING";
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.Open(СтрокаПодключения);
СтрокаЗапрос = "SEL ECT * FR OM spz";
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Соединение;
Command.CommandText = СтрокаЗапрос;
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet = Command.Execute();
//работа с RecordSet (помещение результата выполнения запроса в ТЗ)
RecordSet.close();
Соединение.close();
ПоказатьВ версии 8.3.16.1026 все отрабатывало нормально, при переходе на версию 8.3.19.1150/1229 отрабатывает один раз либо ни разу, останавливаясь на строке "RecordSet = Command.Execute();".
При этом ошибки не выдает.
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(9) новость конечно, собираемся переходить на эту версию на этой неделе - на тестах проблем вроде нет
Спорным решением является установка параметра ServerType в значение "ADS_REMOTE_SERVER"
Спорное оно т.к. сервер Advantage, агент сервер 1с и базы должны находится физически на одном сервере
Если Advantage с базами будет находится на одном сервере а агент 1с на другом возникают риски все тех же зависаний
Спорным решением является установка параметра ServerType в значение "ADS_REMOTE_SERVER"
Спорное оно т.к. сервер Advantage, агент сервер 1с и базы должны находится физически на одном сервере
Если Advantage с базами будет находится на одном сервере а агент 1с на другом возникают риски все тех же зависаний
А попробуйте выполнить какой-нибудь другой запрос, обычно такие зависания бывают когда система пытается на запрос ответить каким-то интерактивным действием и просто ждет реакции. Надо убедиться что проблема не в запросе для начала. Если проблема не в нем, то скорей всего в параметрах подключения. Вы сами пишите что запрос 1 раз выполняется, возможно вы открываете файл не только на чтение.
Написал в техподдержку 1с по поводу этой проблемы advantage, ответ ниже
Ответ 1с 0: "Посмотрели дамп. Платформа 1С запустила COM Advantage 11.10 и вызвала "ЗагрузкаНакладныхНаСервере". После чего компонента Advantage выдала диалоговое окно (DialogBox). Что именно она там спрашивает установить не удалось, данных по этой компоненте у нас нет. Но никаких диалоговых окон быть не должно, это же серверный процесс, именно из-за этого и "висит" соединение."
После этого попробовал на файловой версии на платформе 8.3.20.1710, при открытии соединения выводится ошибка, прикрепил к сообщению.
Ответ 1с 1:
"Вот, теперь есть ясность. В процессе работы компоненты произошла критическая ошибка (исключение).
При этом платформа 1С ожидает от неё ответ, но ответа соответственно нет. Поэтому с данной проблемой стоит обратиться к разработчику компоненты.
Как вариант, стоит проверить обрабатываемые компонентой данные. Возможно падение происходит именно из-за данных. Или попробуйте обновить (или понизить) версию Advantage."
В общем, ясности по-прежнему нет. Проверял так же на advantage 12, ошибки такие же
Всё равно не понятно почему тогда на платформе 8.3.18.1208 при той же версии advantage на том же сервере ошибок никаких нет
Ответ 1с 0: "Посмотрели дамп. Платформа 1С запустила COM Advantage 11.10 и вызвала "ЗагрузкаНакладныхНаСервере". После чего компонента Advantage выдала диалоговое окно (DialogBox). Что именно она там спрашивает установить не удалось, данных по этой компоненте у нас нет. Но никаких диалоговых окон быть не должно, это же серверный процесс, именно из-за этого и "висит" соединение."
После этого попробовал на файловой версии на платформе 8.3.20.1710, при открытии соединения выводится ошибка, прикрепил к сообщению.
Ответ 1с 1:
"Вот, теперь есть ясность. В процессе работы компоненты произошла критическая ошибка (исключение).
При этом платформа 1С ожидает от неё ответ, но ответа соответственно нет. Поэтому с данной проблемой стоит обратиться к разработчику компоненты.
Как вариант, стоит проверить обрабатываемые компонентой данные. Возможно падение происходит именно из-за данных. Или попробуйте обновить (или понизить) версию Advantage."
В общем, ясности по-прежнему нет. Проверял так же на advantage 12, ошибки такие же
Всё равно не понятно почему тогда на платформе 8.3.18.1208 при той же версии advantage на том же сервере ошибок никаких нет
Прикрепленные файлы:
В общем, техподдержка не признала косяк в платформе, хотя я снял видео как одновременно работает на платформе 8.3.20.1789 при разрядности запуска х86 и не работает на той же платформе при разрядности запуска х64. Сообщили, что косяк у провайдера и отправили к разработчику advantage
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот