Есть база 1С, в ней справочник Номенклатура(SC206).
И есть другая SQL-база, в ней таблица sprNomenclature.
Из 1С список элементов справочника Номенклатура выгружается в SQL-базу с использованием MetaDataWork.ЗначениеВСтрокуБД(СпрН.ТекущийЭлемент())
Далее....
Если попытаться получить список элементов из sql-базы таким образом:
DB = СоздатьОбъект("ODBCDatabase");
Если DB.Соединение("Driver={SQL Server}; Server=xxx; Database=xxx; uid=xxx; pwd=xxx;") = 0 Тогда
Сообщить(DB.ПолучитьОписаниеОшибки());
КонецЕсли;
RS = СоздатьОбъект("ODBCRecordset");
RS.УстБД(DB);
ТекстЗапроса = "select id_1c as [Элемент $Справочник.Номенклатура] from sprNomenclature";
ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
То некоторые элементы определяются, а некоторые нет
Единственная закономерность тут - определяются элементы с длиной ID менее 4 знака.
Пример: 21Z определяется, а 224A - не определяется и возвращается пустое значение.
Если выполнить запрос к текущей базе 1С то все работает пучком!
RS = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "select ID as [Элемент $Справочник.Номенклатура] from SC206";
ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
В какую сторону копать? С чем это есть? И как дальше жить?