ОС: Windows x86 version 6.1 Service Pack 1 (Build 7601)
Платформа: 8.3.10.2375
Конфигурация: 1С:ERP Управление предприятием 2 (2.2.4.19)
Режим БД: клиент-серверный
Приложение: Обычное приложение 32б
От имени администратора Windows: Нет
Режим совместимости: Версия8_3_8
Инструменты разработчика: Портативные 4.13.1p
На версии 4.20p поведение аналогично (проверял на другом ПК).
Консоль запросов, режим ADO. Делаем запрос к "таблица FoxPro ч/з OLEDB", GameWithFire - не использовать. Получаем сообщение об ошибке:
Код
{ВнешняяОбработка.ирОбщий.МодульОбъекта(12199)}: Метод объекта не обнаружен (ВOF)
Если РезультатRecordset.EOF() = 0 И РезультатRecordset.ВOF() = 0 Тогда
Если убрать код
Код
И РезультатRecordset.ВOF() = 0
то далее будет ошибка при выполнении обработчика строки результата
Код
{ВнешняяОбработка.ирКонсольЗапросов.Форма.Форма.Форма(2351)}: Поле объекта не обнаружено (Count)
КоличествоОбщее = мРезультатЗапроса.Count;
Меняем на такой код
Код
Попытка
КоличествоОбщее = мРезультатЗапроса.Count;
Исключение
КоличествоОбщее = мРезультатЗапроса.RecordCount;
КонецПопытки
Далее опять ошибка
Код
{ВнешняяОбработка.ирКонсольЗапросов.Форма.Форма.Форма(2393)}: Итератор для значения не определен
Для Каждого СтрокаРезультата Из мВыборкаРезультата Цикл
Аналогичная ошибка при исполнении обработчика результата.Добавлено (22.08.2017, 10:17)
---------------------------------------------
Лечится примерно так (хотя, по хорошему, нужно где-то ранее преобразовывать результат в ТЗ):
Код
ИначеЕсли ТипЗнч(мРезультатЗапроса) = Тип("COMОбъект") Тогда
СтрокаРезультата = Новый Структура;
мВыборкаРезультата.moveFirst();
Для й = 0 по мВыборкаРезультата.RecordCount - 1 Цикл
Для ы = 0 по мВыборкаРезультата.Fields.Count - 1 Цикл
СтрокаРезультата.Вставить(мВыборкаРезультата.Fields.Item(ы).Name, мВыборкаРезультата.Fields.Item(ы).Value);
КонецЦикла;
НомерСтроки = НомерСтроки + 1;
ирОбщий.ОбработатьИндикаторЛкс(Индикатор);
Попытка
ирОбщий.ВыполнитьАлгоритм(ТекстДляВыполнения, ,, СтруктураПараметров, СтрокаРезультата, НомерСтроки = 1, НомерСтроки = РазмерРезультата);
Исключение
Если Не флПропускатьОшибки Тогда
ВызватьИсключение
КонецЕсли;
ирОбщий.СообщитьСУчетомМодальностиЛкс("Строка результата №" + (мВыборкаРезультата.ItemIndex(СтрокаРезультата) + 1) + ": " + ОписаниеОшибки(), МодальныйРежим);
КонецПопытки;
мВыборкаРезультата.moveNext();
КонецЦикла;
Результат в виде измененных модулей
http://rgho.st/6K5jbqXPp