Одним из ключевых преимуществ использования системы 1С является возможность интеграции с различными внешними приложениями и файлами, в том числе с популярными офисными пакетами Microsoft Word и Excel. Эта функциональность позволяет пользователям автоматизировать множество задач, создавать документы на основе шаблонов, а также анализировать данные, импортированные из 1С. В данной статье подробно рассмотрим методы открытия файлов Word и Excel непосредственно из 1С версий 8.3 и 8.2, а также сопутствующие аспекты и нюансы такой интеграции.
Основы взаимодействия 1С с внешними приложениями
Для успешного взаимодействия 1С с другими программами необходимо понимание механизма запуска внешних приложений и открытия файлов. 1С предоставляет несколько встроенных функций и методов, которые позволяют запускать и управлять внешними приложениями. Одним из основных инструментов для этого является функция ЗапуститьПриложение , которая используется для выполнения команд в операционной системе Windows.
Пример простой реализации открытия файла Excel
Рассмотрим пример простого сценария открытия файла Excel из 1С 8.3 с использованием функции ЗапуститьПриложение . Данный пример предполагает наличие доступа к указанному файлу на локальном компьютере.
Этот пример демонстрирует, как одной строкой кода можно запустить внешний файл. Однако на практике задачи часто бывают сложнее и требуют дополнительных настроек и проверок.
Механизмы обеспечения безопасности
При открытии внешних файлов в 1С важно учитывать вопросы безопасности. Запуск внешних приложений без должного контроля может привести к уязвимости системы и выполнению нежелательного кода. Рекомендуется проверять пути к файлам и использовать безопасные методы обработки данных.
Проверка существования файла
Перед тем как запускать файл, необходимо убедиться, что он существует. Это поможет избежать ошибок и неожиданных ситуаций. Для проверки можно воспользоваться функцией ФайлСуществует .
re>Функция ОткрытьФайлЕслиСуществует(ПутьКФайлу) Если ФайлСуществует(ПутьКФайлу) Тогда ЗапуститьПриложение(ПутьКФайлу); Иначе Сообщить("Файл не найден: " + ПутьКФайлу); КонецЕсли; КонецФункции
Запуск с проверкой безопасности
Для повышения безопасности можно использовать дополнительные проверки прав доступа и ограничение доступа к определенным типам файлов.
re>Функция БезопасныйЗапускФайла(ПутьКФайлу, ДопустимыеРасширения) Расширение = Прав(ПутьКФайлу, СтрДлина(ПутьКФайлу) — Найти(ПутьКФайлу, ".", -1)); Если ФайлСуществует(ПутьКФайлу) И Найти(ДопустимыеРасширения, Расширение) > 0 Тогда ЗапуститьПриложение(ПутьКФайлу); Иначе Сообщить("Файл не найден или тип файла недопустим: " + ПутьКФайлу); КонецЕсли; КонецФункции
Открытие Word и Excel на клиенте
В большинстве сценариев запуск внешних файлов происходит на клиентской стороне. Это означает, что команды выполняются на компьютере пользователя, что особенно важно для приложений, требующих графического интерфейса.
Использование ВнешниеКомпоненты
Для более сложных случаев можно использовать внешние компоненты, которые предоставляют расширенные возможности взаимодействия с документами. Например, работу с интерфейсом Microsoft Office можно реализовать через COM-объекты.
Пример работы с COM-объектами для Microsoft Excel
re>Процедура ОткрытьExcelФайл(ПутьКФайлу) Если НЕ ФайлСуществует(ПутьКФайлу) Тогда Сообщить("Файл не найден: " + ПутьКФайлу); Возврат; КонецЕсли; Попытка ExcelApp = СоздатьОбъект("Excel.Application"); ExcelApp.Workbooks.Open(ПутьКФайлу); ExcelApp.Visible = Истина; Исключение Сообщить("Ошибка открытия файла Excel"); КонецПопытки; КонецПроцедуры
Открытие файлов на сервере
В некоторых ситуациях необходимо открывать и обрабатывать файлы на сервере. Это особенно важно для задач обработки больших объемов данных, где клиентская машина может не справиться с нагрузкой.
Использование серверных методов
Серверные методы работы с файлами аналогичны клиентским, однако требуют учета особенностей серверной среды, таких как пути к файлам и права доступа.
re>Процедура ОткрытьФайлНаСервере(ПутьКФайлу) Экспорт Если НЕ ФайлСуществует(ПутьКФайлу) Тогда Сообщить("Файл не найден: " + ПутьКФайлу); Возврат; КонецЕсли; ЗапуститьПриложение(ПутьКФайлу); КонецПроцедуры
Взаимодействие с файловой системой
При работе на сервере часто требуется более сложное взаимодействие с файловой системой, включая создание и удаление файлов, управление правами доступа и выполнение дополнительных проверок.
Использование шаблонов документов
Одной из наиболее частых задач при работе с файлами Word и Excel является создание документов на основе шаблонов. В 1С это можно реализовать с помощью стандартных инструментов работы с шаблонами и генераторами отчетов.
Пример создания документа Word на основе шаблона
Автоматизация задач с помощью VBA
Одним из способов автоматизации работы с Excel и Word является использование макросов VBA. В 1С также можно выполнять VBA-скрипты используя возможности COM-объектов.
Пример выполнения макроса VBA из 1С
re>Процедура ВыполнитьМакросExcel(ПутьКФайлу, Макрос) Если НЕ ФайлСуществует(ПутьКФайлу) Тогда Сообщить("Файл не найден: " + ПутьКФайлу); Возврат; КонецЕсли; Попытка ExcelApp = СоздатьОбъект("Excel.Application"); Документ = ExcelApp.Workbooks.Open(ПутьКФайлу); ExcelApp.Run(Макрос); Документ.Close(Истина); ExcelApp.Quit(); Исключение Сообщить("Ошибка выполнения макроса"); КонецПопытки; КонецПроцедуры
Как настроить предварительный просмотр файлов документа в 1С:Документооборот 3.0

В карточках документов, задач и списке Задачи мне есть предварительный просмотр файлов документа.
Рис. 1. Предпросмотр файлов в карточке документа
Поддерживаются следующие типы файлов: doc, docx, odt, txt, html, pdf, картинки, формализованные файлы ЭДО. В финальной версии планируется поддержка xls, ods, ppt, odp.
Общие настройки предпросмотра файлов в карточке документа в 1С:Документооборот 3.0.
Необходимо установить флажок Предпросмотр файлов в разделе Настройка – Настройки программы – Работа с файлами.

Рис. 2. Настройка предпросмотра файлов
Предпросмотр PDF-файлов формируется на сервере с помощью программ ImageMagick + GhostScript (если установлена настройка программы Использовать ImageMagick ). Для увеличения производительности по умолчанию отображаются только первые 10 страниц документа. Настройку Максимальное число страниц для предпросмотра можно изменить.
Предпросмотр файлов doc, docx и odt формируется на клиенте с помощью COM-вызова MS Word или OpenOffice в тонком клиенте под Windows. Но если данные уже однажды сформированы, то их сможет увидеть любой пользователь, даже в веб-клиенте, тонком клиенте под Linux или мобильном клиенте.
Можно настроить программу так, чтобы данные предпросмотра создавались в клиентской обработке очереди заданий, запущенной в тонком клиенте под Windows. Например, это имеет смысл, если часть пользователей работают в веб-клиенте или под Linux. За это отвечает настройка Готовить представление файлов для просмотра на клиенте .
Персональные настройки предпросмотра в 1С:Документооборот 3.0.
Необходимо установить флажок Показывать предпросмотр файлов в разделе Персональные настройки – Файлы и выбрать программу для просмотра.

Рис. 3. Настройка предпросмотра файлов в персональных настройках




