Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 6427 Просмотров
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Установил синхронизацию VirtueMart 1.1.4 и 1С 7.7 ТиС с помощью модуля VirtueStream.
Всё бы хорошо, но никак не могу побороть выгрузку в базу данных русских буковок.
Дело по всему в том что из 1С данные в MySQL поступают в кодировке ANSI.
А вот как поправить её на UTF-8 пока непонятно.
Может кто сталкивался, подскажите.
« Последнее редактирование: 14.10.2010, 23:15:07 от valagoff »
*

tarkus

  • Новичок
  • 3
  • 0 / 0
Вопрос решился? Имею аналогичную проблему, пробовал перед записью в базу перекодировать в utf... не помогло... появились другие кроказябры
*

Sity

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Такая же проблема никак не могу решить=(
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
вопрос решился интеграцией 1С и VM http://1c-virtuemart.ru/
*

Sity

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Реклама удалась. Я не готов отваливать 4к рублей за модуль. Лучше подучу 1с и сам както поправлю. (скорее всего проблема даже не в 1с а в SQL запросах)
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Реклама удалась. Я не готов отваливать 4к рублей за модуль. Лучше подучу 1с и сам както поправлю. (скорее всего проблема даже не в 1с а в SQL запросах)
это не реклама. перепробовал всё. данное решение оказалось наиболее подходящим к поставленным задачам. тем более платил заказчик.
*

Sity

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Проблема в том что мой заказчик ето мой отец. Есть большие сомнения на счет денег=))) как ты считаешь проблема в 1с или в запросах?
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
как ты считаешь проблема в 1с или в запросах?
долго искал ответ на этот вопрос, но так и не нашел
*

Sity

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Завтра мне в помочь прийдет программист по 1с. Должен помочь. Если решу проблему отпишу.
*

Sity

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Решил проблему.
Ищем в модуле процедуру
Код
Процедура ЗагрузитьИнф()
Несколько строк ниже находим
Код
Если Клиент.УстановитьСоединение() = 1 Тогда
Предупреждение("Соединение установлено!",60);
После етого дописал дание строки и все заработало:
Код
Клиент.ВыполнитьЗапрос("set character_set_client='cp1251'"); 
Клиент.ВыполнитьЗапрос("set character_set_results='utf8'");
Клиент.ВыполнитьЗапрос("set collation_connection='utf8_general_ci'");
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Спасибо!
*

pop_akaki

  • Новичок
  • 2
  • 0 / 0
Все очень просто ....

Код
// Преобразовать строку в UTF-8
Функция ПреобразоватьСтрокуВУТФ8(Стр)
Длина=СтрДлина(Стр);
Итог="";
Для Н=1 По Длина Цикл
Знак=Сред(Стр,Н,1);
Код=КодСимв(Знак);
Если Код<128 Тогда
Итог=Итог+Знак;
Иначе
Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
ИначеЕсли (Знак="ё") Тогда
Итог=Итог+Симв(209)+Симв(145);
ИначеЕсли (Знак="Ё") Тогда
Итог=Итог+Симв(208)+Симв(129);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
КонецФункции

// Преобразовать строку из UTF-8
Функция ПреобразоватьСтрокуИзУТФ8(Стр)
Длина=СтрДлина(Стр);
Итог="";
Для Н=1 По Длина Цикл
Знак=Сред(Стр,Н,1);
Код=КодСимв(Знак);
Если Код<128 Тогда
Итог=Итог+Знак;
ИначеЕсли (Код>=128)И(Код<192) Тогда
Иначе
Н=Н+1;
Знак2=Сред(Стр,Н,1);
Код2=КодСимв(Знак2);
Если Код=208 Тогда
Если Код2=129 Тогда Итог=Итог+"Ё";
Иначе Итог=Итог+Симв(КодСимв("А")+Код2-144);
КонецЕсли;
ИначеЕсли Код=209 Тогда
Если Код2=145 Тогда Итог=Итог+"ё";
Иначе Итог=Итог+Симв(КодСимв("р")+Код2-128);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
КонецФункции

1) Добавить эти две функции в тело обработке "ВыгрузкаВИнтернет"
2) В каждом запросе переделать передачу параметра в UTF8 где
3) В Процедуре "ЗагрузитьИнф()" после инициализации подключения
Код
Если Клиент.УстановитьСоединение() <> 1 Тогда
Предупреждение("Соединение не установлено!",60);
Возврат;
КонецЕсли;

Добавляем данный запрос... и все.

Код
	Если Клиент.ВыполнитьЗапрос("SET NAMES 'utf8'")<>1 Тогда
Сообщить("!Предупреджение: кодировка не сменилась: "+Клиент.ПоследняяОшибка());
КонецЕсли;
*

Jeka57

  • Новичок
  • 5
  • 0 / 0
Возможно ли интегрировать этот VirtueStream с VirtueMart 2ой версии? Пробовал, но ничего не получилось, т.к. поля видимо разные.
*

cyroot

  • Осваиваюсь на форуме
  • 10
  • 9 / 0
Имел неосторожность приобрести у Сергея на сайте 1c-virtuemart(тчка)ру его компонент. Мало того что компонент работает на костылях так ещё более СКОТСКОГО отношения к клиентам я давно не видел. Даже когда человеку указываешь на его ошибки и недоработки так у него хватает наглости заявлять: "плати деньги - исправлю", степень борзоты зашкаливает выше крыши, грозился не возвращать деньги, стал более понятливым только после того как я ему объяснил что акты ему не подпишу и судебное решение донесет до его необременённого разумом сознания что такое не выполнение своих обязательств по договору. Человек с явно завышенным  самомнением и полным неуважением к своим-же клиентам.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Адрес товара в CSV. Экспорт прайса с адресом товара.

Автор Eholov

Ответов: 0
Просмотров: 1201
Последний ответ 26.02.2014, 21:10:43
от Eholov
Проблема при импорте товара (csv Improved 1.9)

Автор serJO

Ответов: 1
Просмотров: 1369
Последний ответ 04.06.2013, 15:20:38
от serJO
Проблема с product_discount

Автор zloodey

Ответов: 6
Просмотров: 2125
Последний ответ 03.05.2013, 00:17:39
от One
Проверка наличия товара при выгрузке прайса

Автор newjey

Ответов: 4
Просмотров: 1798
Последний ответ 18.04.2013, 23:12:35
от newjey
CSV improved 1.9 проблема с базой

Автор sunnyS

Ответов: 0
Просмотров: 1408
Последний ответ 06.04.2013, 02:26:40
от sunnyS