Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Некорректное отображение нац.символов в базе sql после экспорта данных из 1с          
andrew76 Подменю пользователя
сообщение 11.07.16, 7:38
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Всем доброе утро !

После заливки данных в базу sql через 1с 8.2 в базе sql некоректно отображаются символы нац.алфавита.Вместо определённых символов идёт символ "?".
Это получается только в момент записи данных в базу sql.Сама формируемая строка (выводится на экран) отображается корректно,все символы присутствуют.
Можеn кто сталкивался ? Где копать ?

logist Подменю пользователя
сообщение 11.07.16, 7:54
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Кодировка базы данных отличается от "Cyrillic"


Signature
Личные бесплатные консультации не даю, для этого есть форум!

andrew76 Подменю пользователя
сообщение 11.07.16, 9:32
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

как лечить ?

Поле в базе sql, куда записываю данные- имеет тип nvarchar.Вроде если в запросе подставить символ 'N' перед записываемой строкой-то должно работать.
sql Ругается в этом случае на синтакстис.

logist Подменю пользователя
сообщение 11.07.16, 9:41
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Например, конвертируйте строку перед отправкой в базу.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

andrew76 Подменю пользователя
сообщение 11.07.16, 10:12
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Цитата(logist @ 11.07.16, 12:41) *
Например, конвертируйте строку перед отправкой в базу.


можно узнать чем конвертировать?

Может в строке подключения к БД какой параметр есть ?

logist Подменю пользователя
сообщение 11.07.16, 10:30
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(andrew76 @ 11.07.16, 11:12) *
Может в строке подключения к БД какой параметр есть ?

В строке подключения не знаю, но на языке sql есть команда SET NAMES которая устанавливает кодировку в которой после подключения будут поступать данные. Если я правильно понимаю, в вашем случае, после подключения к базе надо выполнить "SET NAMES 'cp1251'". Только на копии экспериментируйте.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

andrew76 Подменю пользователя
сообщение 11.07.16, 11:11
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Выдается ошибка следующего содержания 'NAMES' is not a recognized SET option.

код :

ТекстЗапросаADO="SET NAMES 'cp1251'";
Connection.Execute(ТекстЗапросаADO,,128);

logist Подменю пользователя
сообщение 11.07.16, 11:37
Сообщение #8

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(andrew76 @ 11.07.16, 12:11) *
Выдается ошибка следующего содержания 'NAMES' is not a recognized SET option.

Тогда труба дело)) У вас не MS SQL?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: andrew76,

andrew76 Подменю пользователя
сообщение 11.07.16, 11:48
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

MS SQL SERVER EXPRESS 2008

Vladal Подменю пользователя
сообщение 11.07.16, 14:57
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

Цитата(andrew76 @ 11.07.16, 8:38) *
Можеn кто сталкивался ? Где копать ?
как лечить ?
1С 8 по умолчанию работает в Юникоде, и отображает в Юникоде.
Каким методом выгружаете? Приведите кусок кода.
Я сохранял скрипты для MS SQL из 1С с явным указанием кодовой страницы ANSI (т.е. 1251 для Windows).

Когда-то тоже сталкивался с этим. Проверял выгруженные тексты с помощью Notepad++, он показывал в какой кодировке файл, и конвертировал в нужную.
Как проверил результат в Notepad++, потом выгрузил "правильно" уже из самой 1С.

andrew76 Подменю пользователя
сообщение 14.07.16, 10:31
Сообщение #11

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Наконец-то форум ожил...Проблема решилась применением инструкции N' перед строковым параметром:

Фрагмент кода:

ТекстЗапросаADO ="Insert into tbQarindosh (MainID,Lastname,Firstname,Patronymic,Qarindoshligi,DataRoj,
MestoRoj_country,IshJoyi,BirthTown,YashashJoyi) Values ('" + un + "',N'"+Фам_род+"',.....)

Должно работать с символами национальных алфавитов (Узбекистан,Казахстан,Киргизия,Туркмения) на основе кирилицы.

Vladal Подменю пользователя
сообщение 19.07.16, 8:50
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

Цитата(andrew76 @ 14.07.16, 11:31) *
Наконец-то форум ожил...Проблема решилась применением инструкции N' перед строковым параметром:
помогаешь им тут... а они через три дня приходят и попрекают...

Цитата(andrew76 @ 14.07.16, 11:31) *
Фрагмент кода:
ТекстЗапросаADO ="Insert into tbQarindosh (MainID,Lastname,Firstname,Patronymic,Qarindoshligi,DataRoj,
MestoRoj_country,IshJoyi,BirthTown,YashashJoyi) Values ('" + un + "',N'"+Фам_род+"',.....)

Должно работать с символами национальных алфавитов (Узбекистан,Казахстан,Киргизия,Туркмения) на основе кирилицы.

Привёл бы сразу этот код из 1С, Вам бы сразу и помогли.
Цитата(andrew76 @ 11.07.16, 8:38) *
После заливки данных в базу sql через 1С 8.2 в базе sql некорректно отображаются символы нац.алфавита.


Есть ведь разница между сферическим "После заливки данных в базу sql через 1с 8.2 в базе sql некорректно отображаются символы нац. алфавита." - неизвестно, Вы их там льёшь и конкретным "Insert into ... Values (N'" + un + "', N'"+Фам_род+"'..."

Спасибо сказали: andrew76,

andrew76 Подменю пользователя
сообщение 19.07.16, 13:02
Сообщение #13

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Я бы выложил фрагмент кода еще 11 июля.Только ведь форум по тех.причинам не работал с 11-07-16 по 14-07-16.В чём проблема то? "палец выставлен"

Спасибо сказали: Vladal,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.04.24, 20:42
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!