powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Экспорт в DBF utf-8 (1С 8-я версия)
24 сообщений из 24, страница 1 из 1
Экспорт в DBF utf-8 (1С 8-я версия)
    #36423199
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток!

Товарищи специалисты, скажите, пожалуйста, каким образом проэкспортировать в дбф в ютф-8 кодировке из 1с 8-й версии? Это возможно? Легко ли это? Кто-то это делал? :)
Скажите, пожалуйста, в какую сторону хоть копать? Я видел функции, типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Функция ПреобразоватьСтрокуВУТФ8(Стр)
    Длина=СтрДлина(Стр);
    Итог="";
    Для Н= 1  По Длина Цикл
        Знак=Сред(Стр,Н, 1 );
        Код=КодСимв(Знак);
        Если Код< 128  Тогда
            Итог=Итог+Знак;
        Иначе
            Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
                Итог=Итог+Симв( 208 )+Симв( 144 +Код-КодСимв("А"));
            ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
                Итог=Итог+Симв( 209 )+Симв( 128 +Код-КодСимв("р"));
            ИначеЕсли (Знак="ё") Тогда
                Итог=Итог+Симв( 209 )+Симв( 145 );
            ИначеЕсли (Знак="Ё") Тогда
                Итог=Итог+Симв( 208 )+Симв( 129 );
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат Итог;
КонецФункции
Функция ПреобразоватьСтрокуИзУТФ8(Стр)
    Длина=СтрДлина(Стр);
    Итог="";
    Для Н= 1  По Длина Цикл
        Знак=Сред(Стр,Н, 1 );
        Код=КодСимв(Знак);
        Если Код< 128  Тогда
            Итог=Итог+Знак;
        ИначеЕсли (Код>= 128 )И(Код< 192 ) Тогда
        Иначе
            Н=Н+ 1 ;
            Знак2=Сред(Стр,Н, 1 );
            Код2=КодСимв(Знак2);
            Если Код= 208  Тогда
                Если Код2= 129  Тогда Итог=Итог+"Ё";
                Иначе Итог=Итог+Симв(КодСимв("А")+Код2- 144 );
                КонецЕсли;
            ИначеЕсли Код= 209  Тогда
                Если Код2= 145  Тогда Итог=Итог+"ё";
                Иначе Итог=Итог+Симв(КодСимв("р")+Код2- 128 );
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат Итог;
КонецФункции

Просто появилась необходимость в этом деле. Тот человек, который занимается 1с-ом говорит, что у него это не получается. Сам я в 1С не шарю....
Буду очень благодарен.
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36424152
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А строку получается преобразовать? Из и в? Правильно понимаю что н получается именно записать в дбф?
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36424495
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сложно мне ответить на Ваш вопрос. Понимаете, этим занимаюсь не я, а 1с-ник. Вот только он клянется, что в итоге дбф получается в кодировке "Dos или Win" по его словам - я так понимаю или в CP866 или Cp1251. Пожалуйста, если Вам не сложно, попробуйте - получится ли сформировать дбф в утф8, используя вышеприведенные функции?
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36424498
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Мне важно только знать: можно ли, используя их сформировать дбф, получается ли это.
Если нет - может, какая либа есть под 1с, с помощью которой это сделать можно?
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36424778
OA User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий КитСложно мне ответить на Ваш вопрос. Понимаете, этим занимаюсь не я, а 1с-ник. Вот только он клянется, что в итоге дбф получается в кодировке "Dos или Win" по его словам - я так понимаю или в CP866 или Cp1251. Пожалуйста, если Вам не сложно, попробуйте - получится ли сформировать дбф в утф8, используя вышеприведенные функции?
Если мне память не изменяет, в заголовке dbf-файла есть байт отвечающий за кодировку, CP866 или CP1251, возможно, Ваш коллега и прав.
Dbase очень старый формат, и вряд ли там что-то поменялось, плюс у него еще куча диалектов, м.б. кто-то и UTF-8 понимает, а кто-то и нет.
Пишите в 1251, потом любой драйвер нормально этот файл поймет. Зачем UTF-8?
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36424851
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, дбфы будет читать ява на КПК, причем ява особая - Eve . У нее есть проблемы вычитки кириллицы в кодировке НЕ утф-8...
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36424884
OA User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий КитДело в том, дбфы будет читать ява на КПК, причем ява особая - Eve . У нее есть проблемы вычитки кириллицы в кодировке НЕ утф-8...
и там уже стоит какая-то программа, которая ничего, кроме dbf, не понимает? похоже, что этот КПК идет совместно с каким-то западным продуктом. Иначе использовать dbf в качестве формата обмена нет смысла.
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36424919
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет вообще-то... Выбор дбф-а выбран нами - по настоянию 1с-ника. Вскрылась такая проблема, что нужен дбф на вход нашей проги только в формате утф. Если нереально сделать такой - будем использовать другой тип обмена данными... Но хотелось бы уверитсья в том, что сделать дбф в кодировке утф8 из 1С 8-й версии НЕВОЗМОЖНО. :)
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36425020
OA User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий КитНет вообще-то... Выбор дбф-а выбран нами - по настоянию 1с-ника. Вскрылась такая проблема, что нужен дбф на вход нашей проги только в формате утф. Если нереально сделать такой - будем использовать другой тип обмена данными... Но хотелось бы уверитсья в том, что сделать дбф в кодировке утф8 из 1С 8-й версии НЕВОЗМОЖНО. :)
Не знаю, по-моему, кроме DBF, есть еще куча более универсальных слов из трех букв, XML, например. DBF удобен для 1С только потому, что там есть готовые классы по работе с ними, и все. Для обмена между разными приложениями , да еще и в разных операционных системах это не лучший вариант.
Возможно, найдется некий драйвер, который хранит данные в DBF в этой кодировке, тогда из 1С можно как с любым внешним источником данных работать, но, по-моему, овчинка выделки не стоит.
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36425148
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий КитНет вообще-то... Выбор дбф-а выбран нами - по настоянию 1с-ника. Вскрылась такая проблема, что нужен дбф на вход нашей проги только в формате утф. Если нереально сделать такой - будем использовать другой тип обмена данными... Но хотелось бы уверитсья в том, что сделать дбф в кодировке утф8 из 1С 8-й версии НЕВОЗМОЖНО. :)Проверил - да там всего 2 кодировки.

Как вариант - по оле открывать эксель (или опен офис) и из него сохранять в дбф (все без участия пользователя)
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36426170
skmdeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в 1251, 866 и прочих на символ выделяется 1 байт. В UTF-8 количество байтов на символ разное. В DBF количество байтов символ 1, кроме того используются перекодировки.
Выход. Перед записью перекодировать UTF в 1251, после считывания из DBF - обратно в UTF. Я когда то писал перекодировку - там несколько строчек. Подробнее в Вимкипедии есть про UTF.
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36472614
joanna25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALTER TABLE $ Table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci, преобразовывать в CHARACTER SET utf8
будет не только изменение типа по умолчанию, 642-456 а также фактические данные и типы столбцов

Модератор: Тема перенесена из форума "ERP и учетные системы".
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36479735
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю, это только для 8-й?
Скажите, пожалуйста, а для 7.7 возможен ли экспорт дбф в утф8 кодировке?
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36479777
Фотография bot67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий КитЯ так понимаю, это только для 8-й?
Скажите, пожалуйста, а для 7.7 возможен ли экспорт дбф в утф8 кодировке?
Нет. Только в CP866 или Cp1251.
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36480563
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что, и никакие подручные средства в этом не помощники?
Если это так, то IMHO явно 7.7 убогая версия...
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36480569
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий Кит7.7 убогая версия...

ну а что вы хотели... Эй уже и лет немало. Устарела морально и физически. Экспортируйте через ADO.
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36480577
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть Вы хотите сказать, что через ADO (ActiveX Data Objects) возможен экспорт из 1с дбфа в кодировке утф8?
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36480582
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне очень важно знать - это действительно возможно и есть тому примеры, или нет...
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36480591
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне 1с ник сказал, что он не в силах, не может и вообще нельзя. Собственно, вопрос обмена данными в виде дбф между моей прогой и 1с решился не в пользу дбф именно по этой причине.

Выбор сделан в пользу txt файлами с разделителем.... Но мне просто хочется знать на будущее - можно ли из 1с версии 7.7 экспортировать дбф в формате утф8, чтобы поля в нем не обрезались в связи с различием колчества байтов на символ в анси и юникод
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36480596
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий КитТо есть Вы хотите сказать, что через ADO (ActiveX Data Objects) возможен экспорт из 1с дбфа в кодировке утф8?

а кто мешает? тынц и указать нужный CHARSET в ConnectionString ?
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36480601
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все в наших силах тынц2
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36480613
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Вам огромное!
Эх, жаль, что не обладал я этими знаниями раньше... Поверил напрасно.
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36480968
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий КитСпасибо Вам огромное!
Эх, жаль, что не обладал я этими знаниями раньше... Поверил напрасно.
Только при использовании ADO и DBF я бы все-же рекомендовал использовать VFP OLE провайдер - для DBF он роднее.
...
Рейтинг: 0 / 0
Экспорт в DBF utf-8 (1С 8-я версия)
    #36946367
Dream.357
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот это умеет конвертировать DBF <-> UTF-8: http://elphsoft.com/dbfcommander.html
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Экспорт в DBF utf-8 (1С 8-я версия)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]