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

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

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

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

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

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

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


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