Перед этим, в базе «Документооборот 3.0» был поставлен запрет на загрузку файлов с расширением «doc», так как для его чтения требуется COM объект, что для нас было недопустимо, ну и «doc» устарел слегка.
По заветам профессионалов платформы – «решил задачку, поделись решением» - выкладываю алгоритм, вдруг кому пригодится:
Не секрет, что есть у файла с расширением «docx», поменять это самое расширение на «zip», то мы получим архив с файлами «xml». Так вот примечания хранятся в отдельном файле «comments.xml».
//Конвертирует в zip документ docx и читает файл comments.xml из разархивированной папки
//
// Параметры:
// ДвоичныеДанныеФайла - Двоичные данные - Двоичные данные файла Word, который необходимо прочитать
//
// Возвращаемое значение:
// Строка - Все примечания, которые есть в документе строкой
//
Функция ИнициализироватьXMLИзDocx(ДвоичныеДанныеФайла)
ПутьКФайлу = ПолучитьИмяВременногоФайла("docx");
ДвоичныеДанныеФайла.Записать(ПутьКФайлу);
КопироватьФайл(ПутьКФайлу, СтрЗаменить(ПутьКФайлу, "docx", "zip"));
ИмяФайлаСПутемZIP = СтрЗаменить(ПутьКФайлу, "docx", "zip");
ВременнаяПапкаДляРазархивирования = ПолучитьИмяВременногоФайла("");
Архив = Новый ЧтениеZipФайла();
Архив.Открыть(ИмяФайлаСПутемZIP);
Архив.ИзвлечьВсе(ВременнаяПапкаДляРазархивирования, РежимВосстановленияПутейФайловZIP.Восстанавливать);
Архив.Закрыть();
//В этом отдельном файле хранятся примечания скопом
Файл = Новый Файл(ВременнаяПапкаДляРазархивирования + "/word/comments.xml");
СтрокаПримечания = "";
Если Файл.Существует() Тогда
СтрокаПримечания = XMLComments(ВременнаяПапкаДляРазархивирования + "/word/comments.xml");
КонецЕсли;
УдалитьФайлы(ВременнаяПапкаДляРазархивирования);
УдалитьФайлы(ПутьКФайлу);
УдалитьФайлы(ИмяФайлаСПутемZIP);
Возврат СтрокаПримечания;
КонецФункции
Функция поиска по тегам "XMLComments":
//Ищет теги примечания и берет текстовое значение в указанном файле.Учитываются комментарии только начинающиеся со знака "#"
//
// Параметры:
// ПутьКФайлу - Строка - Путь к xml файлу, который нужно прочитать
//
// Возвращаемое значение:
// Строка - прочитанные значения (текст примечаний через перенос строки)
//
Функция XMLComments(ПутьКФайлу)
Файл = Новый ЧтениеXML;
Файл.ОткрытьФайл(ПутьКФайлу);
МассивПримечания = Новый Массив;
НачалсяКомментарий = Ложь;
Пока Файл.Прочитать() Цикл
Если Файл.ТипУзла = ТипУзлаXML.НачалоЭлемента И Файл.Имя="w:comment" Тогда
НачалсяКомментарий = Истина;
СтрокаПримечаний = "";
Продолжить;
КонецЕсли;
Если НачалсяКомментарий И Файл.ТипУзла = ТипУзлаXML.Текст Тогда
СтрокаПримечаний = СтрокаПримечаний + Файл.Значение;
КонецЕсли;
Если Файл.ТипУзла = ТипУзлаXML.КонецЭлемента И Файл.Имя="w:comment" Тогда
НачалсяКомментарий = Ложь;
МассивПримечания.Добавить(СтрокаПримечаний);
КонецЕсли;
КонецЦикла;
Файл.Закрыть();
Возврат СтрСоединить(МассивПримечания, Символы.ПС + Символы.ПС);
КонецФункции
М.б. кому-нибудь будет полезно.
Если подобные темы работы с файлами Вам интересны, то могу выложить код вставки штрихкода в документ "pdf" и "docx" автоматом после согласования. При этом "docx" блокируется на редактирование паролем.