Вопрос по русским буквам в ИБ 8

пользователь
Регистрация: 25.06.2016

Поставщик товаров прислал DBF файлы с номенклатурой, а поля в файле написаны русскими буквами.

Инфо-Бухгалтер сможет работать с такими файлами? Или их надо преобразовать/конвертировать во что-то другое?

дилер
Регистрация: 01.12.2005

ЗАПРОС("CREATE TABLE '"+таб+"'(ид AUTOINC, назв CHAR(50), вар SMALLINT, доп SMALLINT, польз CHAR(254), функ CHAR(254),PRIMARY KEY(ид))")

Пример создания файла с названиями полей русскими буквами.

пользователь
Регистрация: 25.06.2016

Не совсем понял. Например "назв" чему равно?

модератор
Регистрация: 06.09.2007

Сейчас проблема с русскими буквами в именах полей, если кодировка cp 866 (DOS/OEM).
Когда кодировка cp 1251 (WIN/ANSI), то строки в программе и в таблице идентичны.

Вот такой пример:

бд = SQL_СОЗДАТЬ("cyr_demo.dbf", [ "Аз": ТИП_СТРОКА: 20, "Буки": ТИП_ЧИСЛО: 12; 2 ])

бд.ЗАП_ПОЛЕ("Аз", "Альфа")
бд.ЗАП_ПОЛЕ("Буки", 42)
бд.ДОБАВИТЬ

бд.ЗАПРОС("insert into 'cyr_demo.dbf' (Аз, Буки) values ('Бета', 73)")

бд = SQL_ОТКРЫТЬ("cyr_demo.dbf")
рез = БД_РЕДАКТОР(бд)

В версии до 8.861 включительно работать не будет.

В мартовском полном обновлении будет платформа 8.862.
Там это поправлено и приведенный пример работает.

модератор
Регистрация: 06.09.2007

Приведенный мной пример работал и в 8.5, а может и раньше.

Во первых, там запрос не для dbf, а для paradox (.db), в котором cp 1251.

Во вторых, в SQL запросе могут указываться и данные, и имена полей. Поэтому весь текст запроса конвертируется языковым драйвером (который указан в настройке BDE). А вот имена полей в ПОЛЕ/ЗАП_ПОЛЕ не конвертировались раньше.

Т.е. написать "SELECT ид, назв FROM " + табл можно было и работало без ошибки, а вот прочитать результат ПОЛЕ("назв") давало ошибку.