Как загрузить данные в 1С из таблицы Excel и файлов XML

· 9 мин

Содержание

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

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

Заливка меняет данные в базе необратимо. Перед первой загрузкой в рабочую базу сделайте резервную копию или потренируйтесь на копии базы. Откатить массовую загрузку кнопкой «отмена» не получится.

Что можно залить и каким способом

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

Что грузимРабочий способ
Справочник (номенклатура, контрагенты, цены)Таблица Excel + универсальная обработка
Начальные остатки на счетахДокумент ввода остатков, табличная часть из Excel
Табличная часть документа (строки реализации, поступления)Вставка в документ из буфера или обработка
Регистр сведений (цены, соответствия)Загрузка в регистр универсальной обработкой
Перенос объектов между базами 1СВыгрузка/загрузка в XML, правила обмена

Разделяют две принципиально разные ситуации. Первая — разовая заливка справочника или прайса: тут хватает таблицы Excel и штатной обработки. Вторая — перенос учётных данных со связями между объектами: здесь нужен форматный обмен, потому что в XML сохраняются ссылки (товар знает свою единицу, документ — своего контрагента), а плоская таблица эти связи рвёт.

Отдельно стоит загрузка начальных остатков при старте учёта в новой базе. Её делают не напрямую в регистры, а документами ввода остатков: так движения получаются корректными и их видно в оборотке. Табличные части этих документов тоже заполняют из Excel.

Как подготовить таблицу Excel перед загрузкой

Качество заливки на 80% определяется исходным файлом. Приведите таблицу к виду, который 1С сможет прочитать построчно.

  • 🧹 Одна строка — один объект. Никаких объединённых ячеек, подзаголовков и пустых строк-разделителей внутри данных.
  • 📋 Первая строка — шапка с названиями колонок. Сами данные начинаются со второй строки.
  • 🔤 Формат ячеек — текстовый там, где важны ведущие нули. ИНН, артикулы, коды КЛАДР в числовом формате теряют нули и превращаются в экспоненту.
  • 📅 Даты — в одном формате на весь столбец (например, ДД.ММ.ГГГГ).
  • 🧮 Числа — без разделителей тысяч и без текста в числовых колонках («10 шт.» → 10).

Проверьте справочные значения заранее. Если в колонке «Единица измерения» встречается шт, шт. и штука, 1С воспримет это как три разные единицы. Приведите к одному написанию прямо в Excel через автозамену.

Отдельная колонка-ключ очень облегчает жизнь. Для номенклатуры это артикул или ваш внутренний код, для контрагентов — ИНН. По этому полю 1С будет искать, есть ли объект в базе.

Готовность таблицы к заливке
Выполнено: 0 / 6

Загрузка через обработку «Загрузка данных из табличного документа»

Это универсальная внешняя обработка (.epf). Она идёт в составе типовой поставки конфигураций и доступна подписчикам ИТС. Если файла у вас нет, его выдаёт обслуживающий франчайзи или администратор.

Порядок работы:

  1. Запустите 1С в режиме 1С:Предприятие.
  2. Откройте обработку через Файл → Открыть и выберите файл .epf. Если открытие внешних обработок запрещено политикой базы, права даёт администратор в настройках профиля.
  3. На закладке загрузки выберите режим: в справочник, в табличную часть документа или в регистр сведений .
  4. Укажите, куда грузим — конкретный справочник (например, Номенклатура или Контрагенты).
  5. Вставьте данные из Excel в табличное поле обработки через Ctrl+V либо прочитайте файл кнопкой чтения из файла.
  6. Сопоставьте колонки: каждому реквизиту объекта назначьте номер колонки вашей таблицы.

Сопоставление колонок и режим поиска можно сохранить в настройку и переиспользовать для следующих файлов той же структуры — не придётся настраивать заново.

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

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

Правила поиска: как не наплодить дубли справочников

Главный риск массовой заливки — задвоение элементов. 1С перед записью каждой строки должна понять: это новый объект или такой уже есть в базе. Отвечает за это поле поиска.

В настройках обработки по каждому реквизиту есть два флага:

  • Поиск — по этому полю ищем существующий элемент.
  • Создавать новый, если не найден — что делать, когда совпадения нет.

Логика простая:

Что хотитеПоле поиска«Создавать новый»
Добавить только новые позицииАртикул / ИННВключено
Обновить реквизиты у имеющихсяАртикул / ИННВыключено
Полная заливка с нуляКод или НаименованиеВключено

Искать по «Наименованию» опасно: лишний пробел, другой регистр или «ООО» вместо «ООО “…"» — и 1С посчитает элемент новым. Ищите по жёсткому ключу: артикулу, коду, ИНН.

Если в базе уже есть дубли до заливки, сначала почистите их обработкой поиска и удаления дублей (входит в типовые конфигурации, раздел Администрирование), а уже потом грузите.

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

Загрузка через форматные файлы: XML и XLSX

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

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

XML — для переноса между базами. Для выгрузки и загрузки объектов целиком служит стандартная обработка «Выгрузка и загрузка данных XML» (ВыгрузкаЗагрузкаДанныхXML.epf). В базе-источнике вы отмечаете, какие объекты выгрузить, получаете .xml, в базе-приёмнике загружаете его той же обработкой. Ссылки между объектами (товар → единица измерения) при этом сохраняются.

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

Сопоставление полей
Колонка Excel→Реквизит объекта 1С
Артикул→Номенклатура (поле поиска)
Наименование→Наименование
Ставка НДС→Ставки НДС (справочник)
Единица→Единицы измерения (справочник)
ИНН→Контрагенты (поле поиска)

Что делать, когда строки не загружаются

После запуска обработка показывает протокол: сколько строк записано, сколько пропущено и почему. Не закрывайте его — именно там причина сбоя.

Типичные ситуации и как их развести:

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

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

Большие файлы (десятки тысяч строк) грузите частями по несколько тысяч. Так протокол читаемее, а при сбое не придётся откатывать всё.

Автоматизация регулярной заливки

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

Регламентное задание. Внешнюю обработку назначают на расписание: 1С сама забирает файл из заданной папки и грузит ночью. Настраивается в разделе Администрирование → Обслуживание → Регламентные и фоновые задания (в клиент-серверной базе задание выполняет сервер).

Чтение файла из кода. Основа автоматизации — чтение табличного документа. Минимальный рабочий пример перебора строк:

ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("C:\import\price.xlsx");

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

Цикл идёт со второй строки (первая — шапка), пустые строки пропускаются. Дальше по артикулу ищете элемент справочника и либо создаёте, либо обновляете — ту же логику, что в ручном режиме, вы описываете кодом один раз.

Загрузка из внешней программы. Когда источник данных — не файл, а другая система (сайт, складская программа), заливку запускают снаружи через COM-соединение с базой. Внешняя программа подключается к 1С, передаёт данные и вызывает процедуру записи. Такой сценарий уже требует программиста, но принцип тот же: поиск по ключу и запись реквизитов.

Обмен без участия человека. Между своими базами 1С настраивают узлы обмена и синхронизацию данных (Администрирование → Синхронизация данных): заливка идёт по расписанию штатным механизмом, без выгрузки в файл вручную. Результат каждого сеанса остаётся в журнале обмена — там видно, какие объекты перенесены и где возникли предупреждения.

Автоматизацию запускайте только после того, как та же заливка несколько раз прошла руками без ошибок. Фоновое задание повторит любую ошибку настройки молча и во всех строках сразу.

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

Протокол обработки говорит, сколько строк записано, но не гарантирует, что данные встали правильно. Сверьте три вещи.

  1. Количество. Число загруженных строк из протокола должно совпасть с числом строк данных в файле (без шапки). Расхождение — значит, часть строк пропущена; ищите их в протоколе.
  2. Справочник. Откройте целевой справочник, отсортируйте список по дате создания или воспользуйтесь отбором по новым элементам. Пробегите глазами первые и последние записи: нет ли задвоений, не слиплись ли колонки.
  3. Остатки — оборотно-сальдовой. Если грузили начальные остатки, сформируйте оборотно-сальдовую ведомость на дату ввода. Итог по дебету и кредиту должен сойтись с исходной таблицей; расхождение сразу покажет, какой счёт залит неверно.

Нашли ошибку в уже залитой порции — не правьте сотни элементов руками. Удалите загруженную партию (её легко отобрать по дате создания) и перезалейте исправленный файл. Это быстрее и надёжнее точечной правки.

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

Можно ли залить данные в 1С без внешней обработки?
Да, для части справочников в типовых конфигурациях есть штатная загрузка из файла прямо в списке. Для документов и нестандартных случаев используют универсальную обработку «Загрузка данных из табличного документа».
Как обновить цены у существующей номенклатуры, не создавая дубли?
Поставьте поиск по артикулу или коду и снимите флаг «создавать новый, если не найден». Тогда обработка найдёт имеющиеся позиции и перезапишет только нужные реквизиты.
Почему после загрузки ИНН контрагентов отображается неверно?
В Excel колонка была в числовом формате и потеряла ведущие нули либо ушла в экспоненту. Переведите столбец в текстовый формат до загрузки и повторите заливку.
В каком формате сохранять файл для загрузки?
Платформа 8.3 читает .xlsx напрямую, поэтому подойдёт обычная книга Excel. Если данные готовите в самой 1С, используйте родной формат табличного документа .mxl.
Что делать, если нужно перенести данные между двумя базами 1С целиком?
Для переноса со связями используйте обработку выгрузки и загрузки в XML, а при разной структуре баз — правила обмена «Конвертации данных». Простой таблицей Excel связи между объектами не переносятся.