Команда ПреобразоватьВDOCX, с вызовом процедуры ПреобразоватьВDOCXНаСервере. Реквизит Файл, с типом СправочникСсылка.Файлы
&НаСервере
Процедура ПреобразоватьВDOCXНаСервере()
	
	ДанныеФайла = РаботаСФайламиВызовСервера.ДанныеФайлаДляСохранения(Файл);
	Если ДанныеФайла.Расширение = "doc" Тогда
		
		ДвоичныеДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьХранилищеФайлаИзИнформационнойБазы(ДанныеФайла.СсылкаТекущейВерсии).Получить();
		
		ПутьКСтаромуФайлу = ПолучитьИмяВременногоФайла("doc"); 
		ДвоичныеДанныеФайла.Записать(ПутьКСтаромуФайлу);
		
		ПутьКНовомуФайлу = ПолучитьИмяВременногоФайла("docx");
		СисИнфо = Новый СистемнаяИнформация;
		Если СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86 ИЛИ СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
			Попытка
				WordApp = Новый COMОбъект("Word.Application");
			Исключение
				ВызватьИсключение(НСтр("ru = 'Ошибка работы с приложением MS Word. Необходимо проверить правильность установки приложения.'"));
				Возврат;
			КонецПопытки;
		Иначе
			Сообщить(НСтр("ru = 'Преобразование в docx файла MS Word возможна только в Windows. Обратитесь к администратору.'"));
			Возврат;
		КонецЕсли;                                                
		
		Попытка
			WordApp.WordBasic.DisableAutoMacros(1);
			WordApp.Visible = false;                     
			Док = WordApp.Documents.Add(ПутьКСтаромуФайлу);
			
			Если WordApp.Documents.Count = 0 Тогда
				ВызватьИсключение "Не удалось открыть временный файл";
			КонецЕсли;
			Док = WordApp.Documents(1);
			
			wdFormatDocumentDefault = 16;
			UseISO19005_1 = Истина;
			Док.SaveAs2(ПутьКНовомуФайлу, wdFormatDocumentDefault);
			
			СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией", Новый Файл(ПутьКНовомуФайлу));
			СведенияОФайле.ИмяБезРасширения              = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ДанныеФайла.ПолноеНаименование,"");
			СведенияОФайле.Автор                         = ДанныеФайла.АвторТекущейВерсии;
			СведенияОФайле.НоваяВерсияАвтор              = ДанныеФайла.АвторТекущейВерсии;
			СведенияОФайле.АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ПутьКНовомуФайлу));
			
			Версия = РаботаСФайламиВызовСервера.СоздатьВерсию(Файл, СведенияОФайле);
			
			РаботаСФайламиВызовСервера.ОбновитьВерсиюВФайле(Файл, Версия, СведенияОФайле.АдресВременногоХранилищаТекста,,, Ложь); 
			
			обФайл = Файл.ПолучитьОбъект();
			обФайл.ТекущаяВерсияРасширение = Версия.Расширение;
			обФайл.Записать();  
			
			WordApp.Quit(0);
			WordApp = Неопределено;
		Исключение
			WordApp.Quit(0);
			WordApp = Неопределено;	
		КонецПопытки;
		
	ИначеЕсли ДанныеФайла.Расширение = "docx" Тогда
		Сообщить("Файл уже в расширении DOCX"); 
	КонецЕсли; 
	
КонецПроцедуры
Протестировано на 1С:Документооборот КОРП, редакция 3.0 (3.0.15.41), платформа 8.3.25.1560, БСП 3.1.9.277.
При открытии обработки встречает 3 элемента - поле выбора файла, кнопка "Преобразовать в DOCX" и "Закрыть".
Краткая инструкция по обработке (можно обойтись и без ее скачивания, процедура выше):
1. В поле Файл выбрать элемент справочника Файлы
2. Нажать на "Преобразовать в DOCX"
В результате - для выбранного файла будет создана новая версия в формате docx, новая двоичка появится в регистре, реквизит "ТекущаяВерсияРасширение" поменяется на docx.
Если файл уже в этом расширении - появится сообщение "Файл уже в расширении DOCX". Если файл в расширении, отличном от doc и docx, - ничего не произойдет.
Проверено на следующих конфигурациях и релизах:
- Документооборот КОРП, редакция 3.0, релизы 3.0.15.41
Вступайте в нашу телеграмм-группу Инфостарт
 
                                 
                                     
                                    