Как я понимаю механизм ВИД работает с данными через драйвер ОДБЦ. Для описания таблиц в конфигураторе, мне было достаточно строки соединения "DBQ=C:\1C_BASES\БАЗА7;Driver={Driver do Microsoft dBase (*.dbf)};", но для выполнения запроса этот драйвер не пригоден - кодировка не та.
Кириллица отображается корректно, но при попытки сделать запрос с двойными левым соединением таблиц, как ругается "not a character expression". При использовании первого драйвера - запрос выполняется, но кодировка не та.
Запрос = "
ВЫБРАТЬ
РегДвПродажи.DATE,
РегДвПродажи.ИДТовара,
РегДвПродажи.Количество,
РегДвПродажи.ИДКонтрагента,
РегДвПродажи.ИДСклада,
СпрТовары.Наименование КАК Наименование1,
СпрКонтрагенты.Наименование
ИЗ
ВнешнийИсточникДанных.База2013.Таблица.РегДвПродажи КАК РегДвПродажи
ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.База2013.Таблица.СпрТовары КАК СпрТовары
ПО РегДвПродажи.ИДТовара = СпрТовары.ИД
ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.База2013.Таблица.СпрКонтрагенты КАК СпрКонтрагенты
ПО РегДвПродажи.ИДКонтрагента = СпрКонтрагенты.ИД
"
Если не соединять Товары или Контрагентов, то работает. Все три таблицы вместе выдает ошибку: Ошибка выполнения запроса
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: S1000
Номер ошибки: 240
Описание: [Microsoft][ODBC Visual FoxPro Driver]Not a character expression.
Driver={Driver para o Microsoft Visual FoxPro};UID=;;SourceDB=c:\1C_Bases\База7;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;
Запрос работает на ура при строке подключения
"DBQ=C:\1C_BASES\БАЗА7;Driver={Driver do Microsoft dBase (*.dbf)};"
Если изменить параметр "DataCodePage" в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase на значение отличное от OEM
Выпадает ошибка:
При значении "ANSI"
Ошибка ODBC. SQLSTATE: HY000
Номер ошибки: -5016
Описание: [Microsoft][Драйвер ODBC dBase] Зарезервированная ошибка (-5016); сообщение для данной ошибки отсутствует.
При любом другом (не валидном):
Ошибка ODBC. SQLSTATE: HY000
Номер ошибки: -5033
Описание: [Microsoft][Драйвер ODBC dBase] Недопустимое значение параметра в записи Excel в разделе Engines реестра Windows.
Похоже победил. Добавил параметр "BDE" = 2 в ветку.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший