Как настроить просмотр файлов MXL в веб-клиенте 1С:Документооборот 2.1?

Программист 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

При работе с системой 1С:Документооборот 2.1 через браузер пользователи часто сталкиваются с ситуацией, когда прикрепленные к карточкам документов или задачам файлы формата .mxl (Табличный документ 1С) не открываются для просмотра прямо в интерфейсе программы. Вместо этого веб-клиент выводит стандартный диалог браузера с предложением сохранить файл на локальный диск.

Рассмотрим подробнее причины такого поведения платформы, проанализируем ограничения веб-клиента и разберем практические способы решения этой задачи.

Выясним причину: почему веб-клиент предлагает скачать MXL?

Проанализируем механику работы веб-клиента и типовой конфигурации. Выделяются две основные причины:

  1. Штатные ограничения конфигурации: В типовом «1С:Документообороте» механизм встроенного предпросмотра прикрепленных файлов для формата MXL в браузере заблокирован на уровне кода конфигурации. При обработке команды просмотра система перенаправляет поток двоичных данных на скачивание средствами браузера.
  2. Особенности изоляции браузера (Sandbox): Веб-клиент платформы «1С:Предприятие» работает в песочнице браузера и не имеет прямого доступа к файловой системе компьютера. Браузерный веб-клиент умеет выводить объект ТабличныйДокумент, когда тот является элементом формы, но не содержит встроенной службы для ассоциации произвольных файлов .mxl с диска без их предварительной передачи и обработки на сервере.

Если в тонком клиенте файл MXL открывается штатно встроенными средствами платформы, то в веб-клиенте без специализированной доработки просмотр файла прямо из прикрепленных материалов недоступен.

Способ 1. Реализация встроенного просмотра через расширение конфигурации

Разберем наиболее удобный и прозрачный способ решения проблемы для пользователей веб-клиента — создание расширения конфигурации (.cfe), которое позволит просматривать MXL прямо в форме 1С без снятия основной базы с поддержки.

Смысл решения заключается в следующем: мы добавляем команду просмотра, вычитываем двоичные данные прикрепленного файла на сервере, загружаем их в объект ТабличныйДокумент и отображаем на форме в специальном поле.

Рассмотрим по шагам реализацию обработки файла:

  1. Создадим расширение конфигурации и добавим в него команду для формы прикрепленных файлов.
  2. На сервере получаем двоичные данные прикрепленного файла .mxl из хранилища или с сервера файлов.
  3. Помещаем двоичные данные в поток и вычитываем их в объект ТабличныйДокумент методом Прочитать().
  4. Открываем легкую управляемую форму, на которой размещено поле реквизита с типом ТабличныйДокумент.

Посмотрим на пример серверного кода, выполняющего чтение MXL из двоичных данных:


&НаСервере
Функция ПолучитьТабличныйДокументИзФайла(СсылкаНаФайл) Экспорт

    ДвоичныеДанныеФайла = РаботаСФайламиВызовСервера.ПолучитьДвоичныеДанныеФайла(СсылкаНаФайл);
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("mxl");
    ДвоичныеДанныеФайла.Записать(ИмяВременногоФайла);
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(ИмяВременногоФайла);
    
    УдалитьФайлы(ИмяВременногоФайла);
    
    Возврат ТабДок;

КонецФункции

Сформированный ТабличныйДокумент передается в реквизит управляемой формы. Веб-клиент платформы 1С рендерит поле табличного документа в родном HTML-коде браузера. Это дает пользователю возможность просматривать документ, масштабировать его и отправлять на печать прямо из браузера без скачивания на диск.

Способ 2. Автоматическая серверная конвертация в PDF или HTML

Проанализируем альтернативный вариант, не требующий написания интерактивных форм просмотра. Если задача состоит только в ознакомлении с содержимым MXL-документа, можно настроить автоматическое создание копии файла в формате PDF или HTML при его загрузке в базу.

Современные веб-браузеры умеют отображать файлы PDF встроенными средствами. Схема работы выглядит следующим образом:

  1. При создании или обновлении файла с расширением .mxl срабатывает подписка на событие или фоновое задание.
  2. На стороне сервера программно создается объект ТабличныйДокумент, в который считывается файл MXL.
  3. Выполняется сохранение в формат PDF методом Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF).
  4. Сформированный PDF-файл автоматически прикрепляется в качестве просмотровой версии. При клике на просмотр в веб-клиенте браузер открывает встроенный просмотрщик PDF.

Способ 3. Организация работы через Тонкий клиент без прав администратора

Если использование веб-клиента обусловлено лишь сложностью установки и обновления программного обеспечения на рабочих местах пользователей, рассмотрим административные варианты развертывания тонкого клиента 1С:

  1. Установка в профиль пользователя (User-level installation): Тонкий клиент 1С можно устанавливать в каталог AppData текущего пользователя. Данная процедура не требует прав локального администратора Windows.
  2. Запуск из сетевого ресурса (Portable-режим): Дистрибутив тонкого клиента располагается в общей сетевой папке. Пользователи запускают исполняемый файл 1cestart.exe по сетевому пути. При выходе обновлений администратор обновляет платформу только на сетевом ресурсе, а у пользователей клиент обновляется автоматически.

Работа в тонком клиенте полностью снимает проблему просмотра и редактирования файлов .mxl, так как платформа открывает их во встроенном редакторе табличных документов «из коробки» без дополнительных доработок.

← На главную