Linux Windows и распределенная база ошибка синхронизации - Каминсофт

Linux <> Windows и распределенная база ошибка синхронизации

27 март 2015 08:41 #1
от Алексей
При синхронизации данных возникает ошибка как бы файл обмена не существует, как я заметил это происходит из-за того что в Linux имя файла внутри архива создается в кодировке cp866 (DOS 866), а со стороны Windows в ср1251 (windows 1251) или UTF -8, как быть или это проблема в самой платформе?
Тема закрыта.

27 март 2015 08:46 #2
от Андрей Ланьшин
Опишите более полно ситуацию:
1. Что у Вас на windows, а что на Linux, как происходит обмен.
2. Какие версии платформы и конфигураций

Ланьшин Андрей, фирма КАМИН
Правильно заданный вопрос содержит половину ответа!
Тема закрыта.

27 март 2015 08:54 #3
от Алексей
Linux:
толстый клиент, версия платформы 8.3.5.1248, Камин 5.0.22.11
Windows:
толстый клиент, версия платформы 8.3.5.1460, Камин 5.0.22.11

Обмен происходит по EMAIL, создается архив с паролем
Тема закрыта.

27 март 2015 09:01 #4
от Алексей
Само имя файла архива создается в нормальной кодировке, но внутри Linux ее изменяет и я так думаю, что он соответственно не понимает кодировку файла созданного на Windows.


Сейчас произвел синхронизацию без сжатия, прошла без проблем, т.е. проблема с архиватором.
Тема закрыта.

27 март 2015 17:17 #5
от Андрей Ланьшин
Да, проблема существует. Переадресовал Ваше обращение на форум разработчиков фирмы 1С

Ланьшин Андрей, фирма КАМИН
Правильно заданный вопрос содержит половину ответа!
Тема закрыта.

15 апр 2015 16:54 #6
от Андрей Ланьшин
Сегодня получили ответ от коллег из 1С:

Зарегистрировали ошибку на платформу.
В качестве локального исправления попробуйте замените код функции РаспаковатьZipФайл общего модуля ОбменДаннымиСервер на следующий:

Функция РаспаковатьZipФайл(Знач ПолноеИмяФайлаАрхива, Знач ПутьРаспаковкиФайлов, Знач ПарольАрхива = "") Экспорт

// Возвращаемое значение функции.
Результат = Истина;

Попытка

Архиватор = Новый ЧтениеZipФайла(ПолноеИмяФайлаАрхива, ПарольАрхива);

Исключение
Архиватор = Неопределено;
СообщитьОбОшибке(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат Ложь;
КонецПопытки;

Попытка

Архиватор.ИзвлечьВсе(ПутьРаспаковкиФайлов, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);

Исключение

СтрокаСообщения = НСтр("ru = 'Ошибка при распаковке файлов архива: %1 в каталог: %2'");
СтрокаСообщения = СтрШаблон(СтрокаСообщения, ПолноеИмяФайлаАрхива, ПутьРаспаковкиФайлов);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(СтрокаСообщения);

Результат = Ложь;
КонецПопытки;

Если Результат
И Архиватор.Элементы.Количество() = 1
И Найти(ПолноеИмяФайлаАрхива, "Message_") Тогда

ИмяРаспакованногоФайлаСообщенияОбмена = ПутьРаспаковкиФайлов + "\" + Архиватор.Элементы[0].Имя;

ИмяФайлаСообщенияОбменаВычисленноеПоИмениАрхива = Сред(ПолноеИмяФайлаАрхива, Найти(ПолноеИмяФайлаАрхива, "Message_"));
ИмяФайлаСообщенияОбменаВычисленноеПоИмениАрхива = ПутьРаспаковкиФайлов + "\"
+ СтрЗаменить(ИмяФайлаСообщенияОбменаВычисленноеПоИмениАрхива, ".zip", ".xml");

Если ИмяРаспакованногоФайлаСообщенияОбмена <> ИмяФайлаСообщенияОбменаВычисленноеПоИмениАрхива Тогда
ПереместитьФайл(ИмяРаспакованногоФайлаСообщенияОбмена, ИмяФайлаСообщенияОбменаВычисленноеПоИмениАрхива);
КонецЕсли;

КонецЕсли;

Архиватор.Закрыть();
Архиватор = Неопределено;

Возврат Результат;

КонецФункции

Ланьшин Андрей, фирма КАМИН
Правильно заданный вопрос содержит половину ответа!
Тема закрыта.

Опрос
Всего 3 простых вопроса

Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie и пользовательских данных в целях функционирования сайта, проведения ретаргетинга и статистических исследований, обзоров. Если вы не хотите, чтобы ваши данные обрабатывались, покиньте сайт.

Принять