Иногда возникает проблема с действием "Вопрос пользователю", когда происходит вывод текста в неверной кодировке, вследствие чего ответы на вопрос выглядят примерно так:

���������� �������� ���������������� ������ �� ������������ � ������� �������� �������� ��������

Как решить проблему:

  1. Заходим в раздел "Конфигурация".
  2. Выгружаем действие "Вопрос пользователю".
  3. Если есть "продвинутый" текстовый редактор, например Notepad++, открываем выгруженные метаданные в нем и меняем кодировку на UTF-8.
  4. Если нет редактора или просто лень, качаем файл userquestionusertask_utf-8.rar.
  5. Удаляем все процессы, в которых используется действие "Вопрос пользователю" (они помечаются как удаленные (зачеркиваются), позже они будут восстановлены); если не уверены, какие это процессы, удаляем хотя бы тот, в ходе которого была обнаружена ошибка, и идем дальше.
  6. Импортируем скачанную и распакованную схему "UserQuestionUserTask (utf-8).md".
  7. Открываем действие "Вопрос пользователю" и публикуем; если не были удалены процессы в п. 5, могут возникнуть ошибки, по файлу, в котором они возникли, можно определить название процесса и удалить его. Снова публикуем.
  8. Отменяем удаление процессов (контекстное меню -> отменить удаление, на каждом процессе) и публикуем один из них.

Нравится

Поделиться

0 комментариев
Показать все комментарии

Задать кодировку выгружаемого *.csv файла реестра можно в системной настройке CSVCodePage:

Нравится

Поделиться

10 комментариев

а что-то параметр utf-8 дал вообще странный результат

Владимир, не интригуйте, поделитесь скриншотом :)

Вот, что получается при экспорте с параметром utf-8

Это значит, что кодировка базы данных не utf8. Данная системная переменная предназначена для того, чтобы корректно выгружать данные в зависимости от кодировки, использользованной для разворачивания БД.

А какая кодировка базы данных BPMOnline On-Demand?

Добрый день, Владимир!

Кодировка базы данных on-demand utf-8.

Ранее наблюдалось подобное поведение при выгрузке в случае конфликта из-за использования английской локализации Windows. Попробуйте выполнить выгрузку на компьютере с русской локализацией. Также можно попробовать заменить параметр "Current location" на "Russian" в разделе {Clock, Language, and Region} в панели управления.

"Адасюк Валерий Викторович" написал:Ранее наблюдалось подобное поведение при выгрузке в случае конфликта из-за использования английской локализации Windows.

Погодите, зачем тогда utf-8, если корректность выгрузки зависит от локализации Windows?
В таком случае, если поменять локализацию Windows на русскую, то будут некорректно выгружаться данные с латышской кодировкой.

Этот вариант предлался как обходное решение при необходимости выгрузки реестра. После чего можно изменить параметр обратно.
Как еще один вариант можно открыть выгружаемый файл с помощью Notepad ++ и уже в блокноте выберите параметр {Convert to utf-8}.

Интересно, а это так и осталось как обходное решение? Та же проблема с utf-8 наблюдается на 7.6

Здравствуйте, Владимир!

Эта ошибка связана с тем, что при открытии CSV-файла Excel не понимает, какую кодировку использовать при отображении. Это довольно распространенная проблема (Подробнее про ошибку), которая решается добавлением маркера последовательности байтов при формирования файла с нашей стороны. Работоспособность гарантируется для версий Excel 2007 и выше.

Есть несколько путей решения данного обращения, который Вы можете выбрать:
- Внести исправления схему ReportHelper. Тело метода заменить на исправленный вариант (добавил во вложения);
- В крайнем случае, т.к. ReportHelper поддается замещению, его поведение можно изменить в пользовательских пакетах. Подробнее в статье - SDK

Хотелось бы отметить, что формат CSV является универсальным, чтобы не завязываться на конкретный софт. Если реализовать подобное, чтобы Excel читал правильно, то CSV файлы с нестандартными символами (чешский и т.д.), например, станут неправильно открываться на Mac (CSV и Mac).

Показать все комментарии

Всем доброго времени суток.
Помогите, плиз, решить проблемы с кодировкой при открытии письма из СРМ. При этом, если открывать письмо из Outlook всё отображается нормально.
Установлена ОС Win7 x32 Outlook 2010
TerrasoftCRM 3.3.0.78
С чем может быть связана данная проблема и как её можно решить?

Нравится

7 комментариев

Данная ситуация происходит со всеми письмами?
Есть ли у Вас машины, на которых письма открываются нормально?
Зависит ли проблема от формата письма (текстовый, HTML)?
Происходит ли та же проблема на машинах, на которых установлен Outlook 2007?

Также рекомендуем Вам выполнить обновление до версии 3.3.0.81.

Данная проблема возникает только на этом компьютере со всеми письмами. На другом с такой же конфигурацией, хоть и сразу не показывала нормальная кодировка, но если средствами Outlook менять кодировку, то письмо нормально показывается. На 2007 офисе такой проблемы не наблюдается. Мы используем Apache для Web-сервиса, а на сколько мне известно версия 3.3.0.81 для Apache нет.

Проверьте реестр Windows
Ключ Default_CodePageOut равен 20866?

HKEY_CURRENT_USER\Software\Microsoft\Office\[версия]\Outlook\Options\MSHTML\International

Попробуйте установить данное значение.

Подтверждаю проблему. При сочетании Windows 7 + Outlook 2010 письма из Terrasoft открываются в непонятной кодировке (были перепробованы разные и ни одна не подошла).
Было перепробовано на разных конфигурациях и на разных компьютерах.
На XP + Outlook 2010 все хорошо, на Win 7 + Outlook 2007 все хорошо. При открытии письма в Thunderbird отображается нормально, но много мусорного текста и нету вложений.

Вышеуказанный ключ реестра совпадает. Версия Terrasoft CRM 3.2.
Нужна помощь!

Ваш запрос передан в отдел разработки для рассмотрения.

Добрый день!
К сожалению, нам не удалось воспроизвести данную проблему на тестовой площадке.
В рамках инцидента 092260, прошу предоставить возможность удаленного подключения.

С уважением
Белецкий Арсений
Операционный менеджер
Группа компаний Terrasoft

После перехода на версию 3.3.2 проблема исчезла. Спасибо за предложенную помощь!

Показать все комментарии

Всем привет.

Вопрос связан с перекодировкой строк из DOS в Win кодировку. У меня есть текстовый файл в кодировке DOS, я читаю из него данные и их обробатываю. Соответственно выводятся краказябры :) Как мне переконвертировать в win кодировку? Может есть у кого пример?

Спасибо!

Нравится

3 комментария

Попробуйте использовать эту функцию:

function dos2win(text){ 
    var out = "" 
    var dos="Ђ ЃЎ‚ўѓЈ„¤…Ґрс†¦‡§€Ё‰©ЉЄ‹«Њ¬Ќ-Ћ®ЏЇђа‘б’в“г”д•е–ж—з˜и™йљк›лњмќнћоџппя" 
    var win="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯяя " 
    for (i=0; i<text.length; i++) { 
        var ch = text.charAt(i); 
        var index = dos.indexOf(ch) 
        if (index >= 0){ 
            ch = win.charAt(index); 
        } 
        out = out + ch; 
    } 
    return out; 
} 

Вот что у меня получалось:

Спасибо!
Идея мне понятна.

Я пробовал вот так:

function convert(stroka)
{
	var outStreamW = new ActiveXObject("ADODB.Stream");
	var outStreamA = new ActiveXObject("ADODB.Stream");
	outStreamW.Type = 2;
	outStreamW.Charset = 'cp866';
	outStreamW.Open();
	outStreamW.WriteText(stroka);
	outStreamW.Position = 0;
	outStreamA.Type = 2;
	outStreamA.Charset = 'windows-1251';
	outStreamA.Open();
	outStreamW.CopyTo(outStreamA);
	outStreamA.Position = 0;
	var res = outStreamA.ReadText;
	outStreamW.Close();
	outStreamA.Close();
	return res;
}

но чтото пока не получилось.

Я пробовал Ваш вариант. У меня тоже не получилось, пробовал перебирать разные варианты. Получалось только если делать промежуточное сохранение в файл. Видимо не все так прозрачно с ADODB.Stream.

Показать все комментарии