Каталог решений - Ошибка с буквой «Й» и «Ё». Исправление пути файла в 1С: Документообороте 2.1

Ошибка с буквой «Й» и «Ё». Исправление пути файла в 1С: Документообороте 2.1

Ошибка с буквой «Й» и «Ё». Исправление пути файла в 1С: Документообороте 2.1

В наличии

При переносе файлов Документооборота из тома с WS 2008 на том WS 2019 через архив некоторые файлы перестали открываться в документообороте.

Категория:

Описание

Документооборот 2.1.27.1. Платформа 8.3.17.1851.

Нужно было перенести файлы из тома c windows server 2008 на windows server 2019. Объем Архива 40Гб

Чтобы не нагружать сеть, решил через zip архив перекинуть файлы. После переноса некоторые файлы не открывались.

Запустил проверку целостности файлов в томе. Вывалился список из 300 файлов.

Проверил путь и название файлов, все визуально сходится.

Написал простой код, который сравнивает каждый символ, и выяснил, что проблема в русских буквах Й и Ё. Эти буквы содержат два символа, при попытке удаления это можно обнаружить.

стр1= "Приложение № 1– СМЕТНЫИM4 РАСЧЕТ (КАЛЬКУЛЯЦИЯ).pdf";
стр2= "Приложение № 1– СМЕТНЫЙ РАСЧЕТ (КАЛЬКУЛЯЦИЯ).pdf";
ДлСтроки1 = СтрДлина(стр1);
ДлСтроки2 = СтрДлина(стр2);
Если ДлСтроки1 <> ДлСтроки2 Тогда
Сообщить("Строки различаются:"+ДлСтроки1+ " и "+ДлСтроки2);
КонецЕсли;
МинКолСимволов = 0;
Если ДлСтроки1 > ДлСтроки2 Тогда
 МинКолСимволов = ДлСтроки2;
ИначеЕсли ДлСтроки1 < ДлСтроки2 Тогда
МинКолСимволов = ДлСтроки1;
 КонецЕсли; 
Если МинКолСимволов>0 Тогда
    

  Для сч=0 По МинКолСимволов-1 Цикл
      сим1 = Сред(стр1,сч,1);
      сим2 = Сред(стр2,сч,1);
      Если сим1<> сим2 Тогда
         Сообщить("Символы отличаются: "+ Сим1 +" и "+ Сим2); 
         Прервать;
      КонецЕсли;
  КонецЦикла;
КонецЕсли;

//для проверки "иM4;", состоит из двух символов
Сообщить(НАйти(стр1,"иM4;"));

Написал простую обработку, которая исправила все версии файлов.

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	ВерсииФайлов.Ссылка КАК Ссылка,
		|	ВерсииФайлов.Владелец КАК Владелец
		|ИЗ
		|	Справочник.ВерсииФайлов КАК ВерсииФайлов
		|ГДЕ
		|	ВерсииФайлов.ПутьКФайлу ПОДОБНО ""%иM4;%""
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ВерсииФайлов.Ссылка,
		|	ВерсииФайлов.Владелец
		|ИЗ
		|	Справочник.ВерсииФайлов КАК ВерсииФайлов
		|ГДЕ
		|	ВерсииФайлов.ПутьКФайлу ПОДОБНО ""%еM6;%""";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		об=ВыборкаДетальныеЗаписи.ссылка.получитьобъект();
		об.ПутьКФайлу=СтрЗаменить(об.ПутьКФайлу,"иM4;","й");
		об.ПутьКФайлу=СтрЗаменить(об.ПутьКФайлу,"ИM4;","й");
		об.ПутьКФайлу=СтрЗаменить(об.ПутьКФайлу,"еM6;","ё");
		об.ПутьКФайлу=СтрЗаменить(об.ПутьКФайлу,"ЕM6;","Ё");
		об.Записать();
	КонецЦикла;

Может, кому-то пригодится.

has been added to your cart:
Оформление заказа