К статье
Практический материал

Справочники и Данные · 11 мин

Как загрузить файл MXL в 1С

Как открыть и загрузить файл MXL в 1С: через меню Файл, программно и с помощью типовых обработок. Разбор ошибок и способов конвертации MXL в Excel.

MXL — это внутренний формат табличных документов платформы 1С:Предприятие. В таком файле хранятся печатные формы, отчёты, макеты и выгруженные таблицы: накладные, акты, оборотно-сальдовые ведомости и любые документы, которые пользователь сохранил из программы. Формат сохраняет структуру таблицы, форматирование ячеек, объединения, рамки и шрифты.

Загрузить MXL можно тремя способами: открыть файл напрямую через меню «Файл — Открыть», загрузить содержимое в существующий табличный документ или прочитать файл программно средствами встроенного языка. Выбор способа зависит от задачи: просто посмотреть содержимое, перенести макет в конфигурацию или обработать данные из таблицы.

Важно понимать: MXL открывается только средствами платформы 1С. Двойной клик по файлу в проводнике Windows ничего не даст, если с типом файла не связана программа. Microsoft Excel напрямую формат MXL не поддерживает — для работы в Excel табличный документ нужно пересохранить в XLSX.

Что такое формат MXL и где он используется

MXL — проприетарный формат платформы 1С для хранения табличных документов. Когда пользователь сохраняет печатную форму накладной или отчёт через «Файл — Сохранить как», по умолчанию предлагается именно этот тип. Файл содержит не только значения ячеек, но и оформление: ширину колонок, цвета, границы, параметры печати, именованные области и группировки строк.

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

Открытие MXL через меню «Файл — Открыть»

Самый простой способ посмотреть содержимое файла — открыть его в любой запущенной информационной базе. Конфигурация при этом не важна: табличный документ откроется и в «Бухгалтерии», и в «Управлении торговлей», и в пустой базе, поскольку просмотр MXL — функция платформы, а не прикладного решения.

Порядок действий: запустите 1С и войдите в базу, в главном меню выберите «Файл — Открыть» или нажмите Ctrl+O, в диалоге укажите тип файла «Табличный документ (*.mxl)» или «Все файлы», выберите нужный файл и нажмите «Открыть». Документ отобразится в отдельном окне как обычная таблица, которую можно просматривать, редактировать, печатать и сохранять в другом формате.

Альтернатива — перетащить файл мышью из проводника в открытое окно 1С. В клиентских приложениях с поддержкой drag-and-drop платформа распознает MXL и откроет его как табличный документ. Если файл не открывается, проверьте, что он действительно имеет формат MXL, а не переименованный XLS или HTML.

Порядок действий
  1. 1
    Запустите 1С и войдите в любую информационную базу
  2. 2
    Откройте меню «Файл — Открыть» или нажмите Ctrl+O
  3. 3
    Выберите файл *.mxl и подтвердите открытие
  4. 4
    Проверьте содержимое: данные, форматирование, области
  5. 5
    При необходимости сохраните копию через «Файл — Сохранить как» в нужном формате

Загрузка MXL в табличный документ и макет конфигурации

Открытие файла для просмотра и загрузка его содержимого в существующий табличный документ — разные операции. Если MXL нужно использовать как макет печатной формы или вставить в уже открытый табличный документ, применяется команда загрузки. В конфигураторе при редактировании макета табличного документа доступен пункт «Таблица — Загрузить из файла» (в некоторых версиях — через контекстное меню области макета): платформа заменит содержимое макета данными из файла.

Типовой сценарий для разработчика: полученный от коллеги MXL с новой печатной формой нужно поместить в конфигурацию. Откройте конфигуратор, найдите или создайте макет типа «Табличный документ» у нужного объекта (документа, справочника или в общих макетах), затем загрузите в него содержимое файла. После обновления конфигурации базы данных макет станет доступен прикладному коду.

При загрузке в макет учитывайте, что именованные области из файла переносятся вместе с данными. Если область называется «Шапка» или «Строка», а прикладной код выводит секции по этим именам, печатная форма заработает без доработок. Если имена не совпадают с ожидаемыми в коде, области придётся переименовать вручную в редакторе макета.

Программное чтение MXL средствами встроенного языка

Для автоматической обработки файлов — массовой загрузки, разбора данных, интеграции с внешними системами — используется объект «ТабличныйДокумент» и его метод «Прочитать». Метод принимает путь к файлу и, при необходимости, параметр способа чтения. После чтения содержимое доступно для обхода по ячейкам.

bsl
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("C:\Обмен\Макет.mxl", СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для Строка = 1 По ТабДок.ВысотаТаблицы Цикл
    Значение = ТабДок.Область(Строка, 1).Текст;
    // обработка значения первой колонки
КонецЦикла;

Параметр способа чтения определяет, что попадёт в ячейки: только значения, только текст или и то и другое. Для разбора данных обычно достаточно значений — это быстрее и избавляет от лишнего форматирования. Если нужно сохранить текстовое представление ячеек (например, отформатированные даты и числа), используйте способ «Текст».

На тонком и веб-клиенте прямой путь к файлу на диске пользователя недоступен из соображений безопасности. Файл сначала передаётся на сервер через помещение во временное хранилище (НачатьПомещениеФайла), затем серверная процедура читает его из временного каталога. Это стандартная схема для управляемых форм, её стоит закладывать сразу, если обработка будет работать не только на толстом клиенте.

Конвертация MXL в Excel и другие форматы

Если файл нужно передать человеку без 1С, откройте MXL в платформе и сохраните его в другом формате через «Файл — Сохранить как». Платформа поддерживает выгрузку табличных документов в XLSX, XLS, PDF, HTML, TXT, ODS и ряд других форматов. Для дальнейшей обработки данных лучше всего подходит XLSX, для просмотра и печати — PDF.

При конвертации в Excel часть особенностей MXL может переноситься с ограничениями: сложные группировки строк, специфические параметры страницы и некоторые элементы оформления иногда отображаются иначе. После сохранения откройте полученный файл в Excel и проверьте ключевые фрагменты: итоги, объединённые ячейки, переносы страниц.

Сравнение вариантов

Открытие через «Файл — Открыть»

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

Загрузка в макет конфигуратора

Нужна при внедрении печатной формы в базу. Требует прав на изменение конфигурации.

Программное чтение

Для массовой обработки и интеграций. Требует навыков разработки на встроенном языке.

Сохранение в XLSX/PDF

Для передачи тем, у кого нет 1С. Возможны мелкие потери форматирования.

Типичные ошибки и их устранение

Наиболее частая проблема — ошибка чтения файла с сообщением о неверном формате. Причины: файл повреждён при передаче (например, почта или мессенджер обрезал вложение), файл на самом деле не MXL, а переименованный документ другого типа, либо файл создан в несовместимой версии. Проверьте размер файла — нулевой или подозрительно маленький размер указывает на обрыв копирования, и запросите файл повторно.

Вторая группа ошибок связана с правами доступа. Если 1С запущена под пользователем без доступа к сетевой папке, где лежит файл, открытие завершится ошибкой даже при корректном формате. Скопируйте файл в локальный каталог и повторите попытку. При программном чтении на сервере учитывайте, что доступ нужен учётной записи, под которой работает сервер 1С, а не пользователю сеанса.

Третья типичная ситуация — после загрузки MXL в макет печатная форма выводится пустой или с ошибкой «Область не найдена». Это значит, что имена областей в файле не совпадают с теми, что запрашивает код. Откройте макет, проверьте имена областей (свойства выделенных строк) и приведите их в соответствие с кодом или поправьте код под фактические имена.

Типичные ошибки
01
Попытка открыть MXL двойным кликом в проводнике — Windows не знает этот формат, файл нужно открывать изнутри 1С
02
Загрузка файла в макет без резервной копии — старое содержимое макета теряется безвозвратно
03
Программное чтение по локальному пути на тонком клиенте — файл недоступен, нужна передача через временное хранилище
04
Игнорирование способа чтения значений — в ячейках оказывается форматированный текст вместо значений, разбор данных ломается
05
Переименование XLS в MXL вручную — формат от содержимого не меняется, платформа выдаст ошибку чтения

Проверка результата и безопасная работа с файлами

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

Файлы MXL, полученные извне, сами по себе не содержат исполняемого кода — это данные таблицы. Однако осторожность нужна, если вместе с MXL поставляется внешняя обработка (EPF), которая его загружает: такая обработка может содержать произвольный код. Открывайте внешние обработки только из доверенных источников и при возможности просматривайте их модули в конфигураторе перед запуском в рабочей базе.

Контрольные точки

Как проверить результат

Содержимое после открытия
Норма

Таблица отображается с данными и форматированием, итоги совпадают с источником

Тревожный признак

Пустой документ, ошибка формата, искажённые символы

Макет после загрузки в конфигуратор
Норма

Области имеют ожидаемые имена, печатная форма формируется без ошибок

Тревожный признак

Ошибка «область не найдена», пустой вывод

Программное чтение
Норма

ВысотаТаблицы больше нуля, значения ячеек читаются корректно

Тревожный признак

Исключение при Прочитать(), нулевая высота таблицы

Если файл критичен для учёта — например, это макет регламентированной формы — сначала опробуйте загрузку на копии базы. Работа с копией занимает немного времени, но исключает риск испортить рабочую конфигурацию неподходящим макетом.

Итог

Что важно запомнить

MXL открывается в любой базе 1С через «Файл — Открыть», загружается в макеты конфигуратора и читается программно методом ТабличныйДокумент.Прочитать(). Для передачи вовне файл пересохраняют в XLSX или PDF. Перед заменой макета делайте резервную копию, а после загрузки проверяйте имена областей и контрольные итоги.

Частые вопросы

Можно ли открыть MXL без установленной 1С?

Штатных сторонних просмотрщиков формата нет. Практичный вариант — попросить отправителя пересохранить документ в XLSX или PDF. Если у вас есть доступ к любой базе 1С (даже учебной версии платформы), этого достаточно для открытия и конвертации файла.

Чем MXL отличается от XLSX?

MXL — внутренний формат платформы 1С, который точно хранит области, группировки и параметры печати табличного документа. XLSX — универсальный формат электронных таблиц. При конвертации MXL в XLSX данные и базовое оформление сохраняются, но специфические элементы 1С могут переноситься с отличиями.

Почему при открытии MXL появляется ошибка «Ошибка формата потока»?

Чаще всего файл повреждён при передаче или не является MXL. Проверьте размер файла, запросите его повторно у отправителя и убедитесь, что расширение не было присвоено вручную файлу другого типа. Также помогает открытие файла в более свежей версии платформы.

Как загрузить MXL в макет внешней печатной формы?

Откройте внешнюю обработку в конфигураторе, найдите макет типа «Табличный документ» в её структуре и загрузите в него содержимое файла. Сохраните обработку и заново зарегистрируйте её в базе, если используется механизм дополнительных отчётов и обработок.

Можно ли массово конвертировать несколько MXL-файлов в Excel?

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

Безопасно ли открывать MXL, полученный по почте?

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