Данные из табличного документа MXL — в справочник или документ 1С 8.3

· 10 мин

Содержание

Загрузить файл MXL в 1С 8.3 проще всего командой «Загрузить» в списке справочника или в табличной части документа: в Бухгалтерии 3.0 она есть, например, в списке Справочники → Товары и услуги → Номенклатура и в табличной части поступления. Если такой команды нет — открывают универсальную обработку «Загрузка данных из табличного документа» или пишут короткий код на ТабличныйДокумент.Прочитать().

Просто посмотреть файл ещё проще: главное меню → Файл → Открыть в любой базе 1С. Но открыть и загрузить — разные вещи. Открытый MXL — это картинка с ячейками. Чтобы данные легли в справочник, нужен механизм загрузки с сопоставлением колонок.

Что за формат MXL и откуда он берётся

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

Откуда обычно приходит MXL:

  • 📄 поставщик сохранил прайс или накладную из своей 1С;
  • 📊 коллега выгрузил отчёт или список справочника через Ещё → Вывести список;
  • 🔄 файл получен из Excel: его открыли в 1С и сохранили как MXL;
  • 🗂️ старая выгрузка из 1С 7.7 — тоже MXL, но в своём формате.

Что важно знать до загрузки:

ЗадачаЧто использовать
Посмотреть, распечатать, переслатьФайл → Открыть в клиенте 1С или бесплатная программа «1С:Предприятие 8. Работа с файлами»
Перенести строки в справочникКоманда «Загрузить» или универсальная обработка
Заполнить табличную часть документаКоманда «Загрузить» в табличной части или обработка в режиме «Табличная часть»
Регулярный обмен между базамиНе MXL, а XML-обмен: «Конвертация данных», «Универсальный обмен»
Своя логика, нестандартный файлВнешняя обработка с кодом

Excel-файл не обязательно превращать в MXL. Команда «Загрузить» и универсальная обработка принимают и .xlsx. MXL удобен, когда файл уже пришёл из 1С или когда Excel на компьютере не установлен.

Проверка MXL-файла до загрузки

Неудачная загрузка чаще упирается не в 1С, а в сам файл. Откройте его через Файл → Открыть и пройдитесь по списку ниже. Если нужно править — правьте прямо в 1С: открытый табличный документ редактируется, как обычная таблица.

Что проверить в структуре

  1. Одна строка заголовков. Шапка из трёх объединённых строк сбивает сопоставление. Оставьте одну строку с названиями колонок.
  2. Нет объединённых ячеек в данных. Объединение «Группа: Канцтовары» на всю ширину загрузится как товар с именем «Группа: Канцтовары».
  3. Нет итоговых строк. «Итого», «Всего по разделу» — удалить.
  4. Нет пустых строк в середине. Часть обработок считает пустую строку концом данных.
  5. Одна колонка — один реквизит. «Артикул / наименование» в одной ячейке придётся разделить.

Что проверить в значениях

  • 🔢 Числа. Разделитель тысяч часто сохраняется как неразрывный пробел: 1 250,00. Визуально всё верно, а 1С видит строку. Выделите колонку и задайте числовой формат или замените пробелы.
  • 📅 Даты. Должны быть в одном виде: 15.03.2025, а не вперемешку с «15 марта».
  • 🔤 Лишние пробелы. «Бумага А4 » и «Бумага А4» — для 1С два разных товара.
  • 🏷️ Ключ поиска. Решите заранее, по какому полю 1С будет искать существующие элементы: артикул, код или ИНН. Колонка с ключом должна быть заполнена во всех строках без повторов.

Пробную загрузку делайте на копии базы. Массовая загрузка в рабочую базу без проверки — самый быстрый способ получить 500 дублей номенклатуры, которые потом придётся помечать на удаление вручную.

Способ 1. Встроенная команда «Загрузить» — быстрее всего

В типовых конфигурациях на Библиотеке стандартных подсистем (БП 3.0, УТ 11, ЗУП 3.1, КА 2, ERP) есть механизм «Загрузка данных из файла». Он работает с MXL, XLSX, XLS, ODS и CSV. Команда появляется там, где её включили разработчики конфигурации: в списках части справочников и в табличных частях документов.

Загрузка MXL в справочник

На примере номенклатуры в Бухгалтерии 3.0:

  1. Откройте Справочники → Товары и услуги → Номенклатура.
  2. Встаньте в нужную группу — новые элементы попадут в неё.
  3. Нажмите «Загрузить» в командной панели списка.
  4. В открывшейся форме выберите файл MXL. Как вариант — скопируйте строки из открытого MXL и вставьте их в таблицу формы через Ctrl+V.
  5. На шаге сопоставления проверьте, какая колонка файла легла в какой реквизит. Колонки без пары оставьте без сопоставления.
  6. Посмотрите итог: 1С покажет, какие строки сопоставлены с существующими элементами, а какие будут созданы как новые.
  7. Подтвердите загрузку и проверьте результат в списке.

Загрузка MXL в табличную часть документа

Подходит для поступления товаров, реализации, заказов и других документов со списком позиций:

  1. Создайте документ и заполните шапку: контрагент, договор, склад.
  2. В табличной части «Товары» нажмите «Загрузить».
  3. Выберите MXL-файл, сопоставьте колонки: номенклатура, количество, цена.
  4. Строки, для которых 1С не нашла товар, будут подсвечены. Их можно сопоставить вручную, выбрав элемент из справочника.
  5. Подтвердите перенос — строки появятся в документе.

Если в файле есть артикулы, сопоставляйте номенклатуру по артикулу, а не по наименованию. Названия у поставщика и у вас почти никогда не совпадают символ в символ.

Способ 2. Универсальная обработка «Загрузка данных из табличного документа»

Когда команды «Загрузить» в нужном месте нет — например, нужно залить регистр сведений с ценами или справочник, где разработчики её не предусмотрели, — выручает универсальная внешняя обработка. Её файл обычно называется ЗагрузкаДанныхИзТабличногоДокумента.epf. Обработка распространяется фирмой 1С для пользователей с действующей поддержкой; берите версию для управляемых форм.

Как запустить обработку

  1. Главное меню → Файл → Открыть → выберите файл .epf.
  2. Если 1С показывает предупреждение о безопасности, нужен пользователь с правом открывать внешние обработки. В карточке пользователя (Администрирование → Настройки пользователей и прав → Пользователи) администратор может снять флажок защиты от опасных действий.

Порядок загрузки

  1. Выберите режим загрузки: в справочник, в табличную часть или в регистр сведений.
  2. Укажите вид объекта: например, справочник «Номенклатура».
  3. Откройте MXL-файл командой открытия файла в форме обработки. Данные появятся на вкладке табличного документа.
  4. Перейдите к настройке колонок. Для каждого реквизита отметьте флажок загрузки и укажите номер колонки файла.
  5. Задайте поле поиска — реквизит, по которому обработка найдёт уже существующий элемент. Без него каждая строка создаст новый элемент.
  6. Укажите номер первой строки с данными — обычно 2, если в первой строке заголовки.
  7. Запустите контроль заполнения. Обработка покажет строки, где значение не нашлось или не преобразовалось.
  8. Только после чистого контроля — загрузка.
Перед нажатием «Загрузить» в обработке
Выполнено: 0 / 5

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

Способ 3. Чтение MXL встроенным языком

Код нужен, когда загрузка повторяется регулярно, файл нестандартный или после загрузки надо что-то посчитать. Табличный документ читается методом Прочитать(), а значения ячеек берутся через Область().

Пример ниже читает MXL с колонками «Наименование», «Артикул», «Цена», пропускает пустые строки, чистит числа от неразрывных пробелов и складывает всё в таблицу значений. Файл предварительно помещается во временное хранилище на клиенте — стандартным диалогом выбора файла (в платформе 8.3.13 и новее — методом НачатьПомещениеФайлаНаСервер).

&НаСервере
Функция ПрочитатьMXL(АдресФайла)

    ИмяФайла = ПолучитьИмяВременногоФайла("mxl");
    ДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла);
    ДанныеФайла.Записать(ИмяФайла);

    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(ИмяФайла);
    УдалитьФайлы(ИмяФайла);

    Результат = Новый ТаблицаЗначений;
    Результат.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Результат.Колонки.Добавить("Артикул", Новый ОписаниеТипов("Строка"));
    Результат.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));

    // Строка 1 - заголовки, данные со строки 2
    Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл

        Наименование = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
        Если ПустаяСтрока(Наименование) Тогда
            Продолжить;
        КонецЕсли;

        ЦенаТекст = СокрЛП(ТабДок.Область(НомерСтроки, 3, НомерСтроки, 3).Текст);
        ЦенаТекст = СтрЗаменить(ЦенаТекст, Символы.НПП, "");
        ЦенаТекст = СтрЗаменить(ЦенаТекст, " ", "");
        ЦенаТекст = СтрЗаменить(ЦенаТекст, ",", ".");

        НоваяСтрока = Результат.Добавить();
        НоваяСтрока.Наименование = Наименование;
        НоваяСтрока.Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 2, НомерСтроки, 2).Текст);

        Попытка
            НоваяСтрока.Цена = Число(ЦенаТекст);
        Исключение
            Сообщить(СтрШаблон("Строка %1: цена ""%2"" не распознана",
                Формат(НомерСтроки, "ЧГ=0"), ЦенаТекст));
        КонецПопытки;

    КонецЦикла;

    Возврат Результат;

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

Дальше таблицу значений можно показать пользователю для проверки, а затем записать: найти элемент по артикулу через НайтиПоРеквизиту("Артикул", ...) и создать новый, если не найден. Набор обязательных реквизитов при создании зависит от конфигурации — в БП 3.0 у номенклатуры, например, обязателен вид номенклатуры.

Не пишите такую загрузку прямо в типовую конфигурацию. Оформите её внешней обработкой или расширением — иначе первое же обновление конфигурации потребует ручного переноса доработки.

А «Конвертация данных»? Когда MXL — не тот формат

Частый вопрос: можно ли загрузить MXL через «Конвертацию данных» или «Универсальный обмен данными в формате XML». Нельзя. Эти механизмы работают с XML-файлами обмена, где передаются объекты с внутренними ссылками и правилами сопоставления. MXL — это просто таблица с текстом в ячейках.

Как выбрать путь:

  • ✅ Разовый перенос списка (прайс, остатки, сотрудники в виде таблицы) — MXL и любой из трёх способов выше.
  • ✅ Перенос между двумя базами 1С со ссылками, документами и движениями — XML-обмен по правилам «Конвертации данных». Таблица здесь потеряет связи.
  • ✅ Регулярный обмен (раз в день, раз в час) — стандартная синхронизация данных или обмен по правилам, а не загрузка файлов вручную.

Если таблицу всё же выгрузили из другой 1С в MXL ради переноса справочника — это работает. Но ссылочные реквизиты (единица измерения, группа, ставка НДС) придут текстом и при загрузке сопоставятся по наименованию. Сверьте их заранее.

Загрузка MXL в разных конфигурациях 1С

Механизм «Загрузить» общий для конфигураций на БСП, различаются места, где он включён.

КонфигурацияГде искать загрузку из файлаТипичный сценарий
Бухгалтерия 3.0Список Справочники → Товары и услуги → Номенклатура, табличные части документов поступления и реализацииНоменклатура поставщика, строки накладной
Управление торговлей 11Команда «Загрузить» в табличных частях заказов и документов продажи и закупкиПрайс поставщика, заказ клиента из таблицы
ЗУП 3.1 и другие конфигурации на БСПКоманда «Загрузить» там, где она включена в списке или табличной части; иначе — универсальная обработкаДанные по списку сотрудников, разовые таблицы
Регистры сведений и объекты без командыУниверсальная обработка (способ 2)Цены в регистр сведений, нестандартные справочники

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

Ошибки при загрузке файла MXL и что с ними делать

Диагностика: выберите симптом

Отдельно про файлы из 1С 7.7. Платформа 8.3 обычно открывает их табличные документы, но оформление может съехать, а кодировка текста — исказиться на редких символах. Проверьте содержимое после открытия и при необходимости пересохраните файл уже из 8.3.

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

Чем открыть файл MXL без установленной 1С?
Бесплатной программой «1С:Предприятие 8. Работа с файлами». Она открывает MXL для просмотра и печати и умеет сохранять его в XLSX.
Как перевести MXL в Excel?
Откройте файл в 1С через Файл → Открыть, затем Файл → Сохранить как и выберите тип «Лист Excel». Формулы не появятся — переносятся значения и оформление.
Как сделать MXL из Excel?
Откройте XLSX в 1С через Файл → Открыть и сохраните как «Табличный документ». Но для загрузки это обычно не нужно: механизм «Загрузить» принимает XLSX напрямую.
Можно ли загрузить MXL с остатками сразу в документ ввода остатков?
Да, если в табличной части документа есть команда «Загрузить». Иначе — универсальной обработкой в режиме загрузки в табличную часть: сначала создайте и запишите документ, затем выберите его в обработке.
Сколько строк можно загрузить за раз?
Жёсткого лимита у формата нет. На тысячах строк загрузка идёт заметно дольше, поэтому большой прайс удобнее делить на части по группам товаров и проверять каждую.