В 1С существует несколько способов загрузки вордовского документа (файла. docx или. doc) в зависимости от того, что вы хотите сделать с этим документом после загрузки:
Сохранить документ в базе данных (хранилище файлов):
Отобразить содержимое документа в форме 1С:
Прочитать текст из документа для дальнейшей обработки:
Рассмотрим каждый способ подробно:
Способ 1: Сохранение документа в базе данных (хранилище файлов):
Этот способ подходит, если вам нужно просто хранить вордовский документ в 1С и иметь возможность его открыть или скачать позже.
&НаКлиенте
Процедура ВыбратьФайл(Команда)
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла. Открытие);
ДиалогВыбораФайла. Заголовок = "Выберите вордовский документ";
ДиалогВыбораФайла. Фильтр = "Вордовские документы (*.doc, *.docx)|*.doc;*.docx";
Если ДиалогВыбораФайла. Выбрать() Тогда
ИмяФайла = ДиалогВыбораФайла. ВыбранныйФайл;
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
//Создаем новый элемент справочника (или документа) для хранения файла
НовыйЭлемент = Справочники. МоиДокументы. СоздатьЭлемент(); // Замените "МоиДокументы" на имя вашего справочника
НовыйЭлемент. Наименование = "Документ " + Формат(ТекущаяДата(), "ДФ=dd. MM. yyyy");
НовыйЭлемент. Файл = ДвоичныеДанные; // Сохраняем двоичные данные файла в реквизит "Файл"
НовыйЭлемент. РасширениеФайла = Прав(ИмяФайла, СтрДлина(ИмяФайла) — Найти(ИмяФайла, ".") + 1); // Получаем расширение файла
НовыйЭлемент. Записать();
Сообщить("Файл успешно загружен!");
КонецЕсли;
КонецПроцедуры
Объяснение:
Создается объект ДиалогВыбораФайла для выбора файла с диска.
Устанавливается заголовок диалога и фильтр для выбора только вордовских документов.
Если файл выбран, то создается объект ДвоичныеДанные для чтения содержимого файла в виде двоичных данных.
Создается новый элемент справочника (или документа) для хранения файла. Важно! Необходимо создать справочник (или документ) с реквизитом типа “Хранилище значения” (например, с именем “Файл”).
Двоичные данные файла сохраняются в реквизит “Файл” элемента справочника (или документа).
Сохраняется расширение файла.
Необходимые настройки:
Создайте справочник (или документ) с реквизитом типа “Хранилище значения” (например, с именем “Файл”) и реквизитом строкового типа “РасширениеФайла”.
Замените Справочники. МоиДокументы на имя вашего справочника.
Разместите кнопку на форме и свяжите ее с процедурой ВыбратьФайл.
Как открыть сохраненный файл:
&НаКлиенте
Процедура ОткрытьФайл(Команда)
Если ЗначениеЗаполнено(Объект. Файл) Тогда // Объект — это текущий элемент справочника или документа
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Объект. РасширениеФайла);
Объект. Файл. Записать(ИмяВременногоФайла);
ЗапуститьПриложение(ИмяВременногоФайла);
Иначе
Сообщить("Файл не загружен!");
КонецЕсли;
КонецПроцедуры
Преимущества: Простота реализации, надежное хранение файлов в базе данных.
Недостатки: Нельзя редактировать документ непосредственно в 1С. Требуется открытие документа во внешнем редакторе.
Способ 2: Отображение содержимого документа в форме 1С:
Этот способ более сложный и требует использования компоненты ActiveX “Microsoft Word Object”. Этот способ Не рекомендуется, так как он работает только в Windows и требует установки Microsoft Word на компьютере пользователя. Кроме того, использование ActiveX может быть небезопасным.
Способ 3: Чтение текста из документа для дальнейшей обработки:
Этот способ подходит, если вам нужно извлечь текст из вордовского документа для дальнейшей обработки в 1С (например, для поиска ключевых слов, анализа текста, заполнения других полей).
Использование COM-объекта “Word. Application”:
Требования: На компьютере, где выполняется код, должен быть установлен Microsoft Word.
Функция ПрочитатьТекстИзWord(ИмяФайла)
Попытка
Word = Новый COMОбъект("Word. Application");
Исключение
Сообщить("Не удалось создать COM-объект Word. Установите Microsoft Word.");
Возврат "";
КонецПопытки;
Word. Visible = Ложь; // Не отображаем Word
Попытка
Документ = Word. Documents. Open(ИмяФайла);
Исключение
Сообщить("Не удалось открыть файл Word: " + ИмяФайла);
Word. Quit();
Возврат "";
КонецПопытки;
Текст = Документ. Content. Text;
Документ. Close(0); // 0 — не сохранять изменения
Word. Quit();
Возврат Текст;
КонецФункции
//Пример использования:
ИмяФайла = "C:\МоиДокументы\Документ. docx"; // Укажите путь к файлу
ТекстИзWord = ПрочитатьТекстИзWord(ИмяФайла);
Если ТекстИзWord <> "" Тогда
Сообщить(ТекстИзWord);
Иначе
Сообщить("Не удалось прочитать текст из документа.");
КонецЕсли;
Объяснение:
Создается COM-объект “Word. Application” для управления Microsoft Word.
Открывается указанный вордовский документ.
Извлекается текст из документа с помощью свойства Content. Text.
Документ закрывается без сохранения изменений.
Word закрывается.
Преимущества: Возможность извлечения текста из документа.
Недостатки: Требуется Microsoft Word. Работает только в Windows. Небезопасный способ из-за использования COM.
Рекомендации:
Рекомендуемый способ: Сохранение документа в базе данных (способ 1) — наиболее безопасный и надежный способ.
Избегайте использования COM-объектов (способ 3), если это возможно.
Для веб-клиента: Использование COM-объектов невозможно. Для веб-клиента необходимо использовать другие технологии (например, серверные скрипты на других языках программирования).
При выборе способа загрузки вордовского документа учитывайте требования к функциональности, безопасности и платформе (толстый клиент, тонкий клиент, веб-клиент).