Как загрузить данные из Excel в 1С: Полное руководство

· 9 мин

Содержание

Загрузить данные из Excel в 1С можно тремя путями: типовой обработкой «Загрузка данных из табличного документа», внешней обработкой с чтением файла через COM либо обменом в формате XML/JSON. Для разовой загрузки номенклатуры, контрагентов или строк документа хватает первого пути. Он не требует программирования.

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

Подготовьте файл Excel до загрузки

Время, потраченное на чистку файла, окупается втрое. Загрузчик читает таблицу построчно и ничего не «понимает» — он берёт то, что лежит в ячейке.

Что проверить перед загрузкой:

  • 📄 Одна шапка, одна строка. Объединённые ячейки в заголовках уберите, названия колонок оставьте в одной строке.
  • 🧹 Без итогов и пустых строк. Строки «Итого», подзаголовки групп и пустые разделители загрузчик примет за данные.
  • 🔢 Числа — числами. Если в углу ячейки зелёный треугольник, это число-как-текст. Выделите колонку и преобразуйте формат в числовой.
  • ✂️ Лишние пробелы. Неразрывный пробел в конце названия даёт «двойник» элемента справочника. Функция СЖПРОБЕЛЫ в Excel убирает обычные пробелы; неразрывные заменяйте поиском с заменой.
  • 🧾 Идентификатор в каждой строке. Артикул, ИНН или код — то, по чему 1С найдёт существующую запись. Без него при повторной загрузке получите дубли.

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

Формат файла тоже важен. Колонки с кодами, где есть ведущие нули (например, 000123), заранее переведите в текстовый формат. Иначе Excel «съест» нули, и код перестанет совпадать с базой.

Сохраняйте файл в .xlsx. Старый .xls читается, но часто тянет за собой скрытые листы и форматирование, которое мешает. Если загружаете из .csv, проверьте кодировку и разделитель: кириллица в неверной кодировке превращается в «кракозябры» уже на этапе чтения.

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

Это штатный инструмент. Он есть в большинстве типовых конфигураций: Бухгалтерия предприятия, Управление торговлей, ERP, УНФ. Где именно он лежит, зависит от конфигурации и релиза. Проще всего найти его через поиск по меню («Загрузка данных») или в разделе администрирования, в блоке печатных форм, отчётов и обработок.

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

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

  1. Откройте обработку и выберите режим: загрузка в справочник или в табличную часть документа.
  2. Укажите, какой именно справочник или документ заполняем (например, «Номенклатура»).
  3. Вставьте данные в табличное поле: скопируйте диапазон в Excel и вставьте в обработку через Ctrl+V. Прямая вставка проще, чем выбор файла, и сразу показывает, как легли колонки.
  4. Назначьте колонкам реквизиты (об этом следующий раздел).
  5. Нажмите кнопку проверки или сравнения, если она есть, и только потом загружайте.

Для пробы загрузите сначала 5–10 строк. Увидите, как легли реквизиты, и не придётся чистить тысячу записей.

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

Сопоставьте колонки и настройте поиск существующих записей

Главный экран обработки — таблица, где над каждой колонкой выбирается реквизит приёмника. Здесь решается, что именно произойдёт с данными.

Типичное соответствие для справочника «Номенклатура»:

Сопоставление полей
Наименование товара→Наименование
Артикул→Артикул
Единица→Единица измерения (ссылка на справочник)
Ставка НДС→Ставка НДС (перечисление)
Группа→Родитель (группа номенклатуры)

Ключевая настройка — поле поиска. Это реквизит, по которому обработка решает: создать новый элемент или обновить найденный. Для номенклатуры берут артикул или код, для контрагентов — ИНН (плюс КПП для обособленных подразделений), для банков — БИК.

С полями-ссылками есть тонкость. Если в Excel написано «шт», а в справочнике единица называется «шт.», то 1С не найдёт соответствия. Режимы бывают два: создавать недостающие элементы или выдавать ошибку. Для разовой загрузки удобнее ошибка: вы увидите расхождения и исправите исходную таблицу. Для первичного наполнения базы разумнее разрешить создание.

Порядок колонок имеет значение в одном случае: когда загрузка идёт в иерархический справочник. Сначала должна быть создана группа, потом элементы в ней. Загрузите группы отдельным проходом либо проследите, чтобы строки групп шли первыми.

Универсальный обмен в формате XML и JSON

Если данные приходят не от человека с Excel, а из другой системы (интернет-магазин, склад, банк-клиент), таблица как посредник только мешает. В этом случае используют обмен структурированными файлами.

В 1С для этого есть два основных механизма:

  • 🔁 Универсальный обмен данными в формате XML. Выгрузка и загрузка по правилам обмена, которые описывают соответствие объектов двух баз. Подходит, когда обе стороны на 1С.
  • 🌐 Обмен через HTTP-сервисы и JSON. Внешняя система вызывает сервис 1С и передаёт данные в теле запроса. Сервис пишет разработчик, зато обмен идёт автоматически и без файлов.

Сравнение способов:

СпособКогда подходитРиски
Обработка из табличного документаРазовая загрузка, до нескольких тысяч строкРучная работа, ошибки сопоставления
Внешняя обработка с чтением ExcelНестандартный формат файла, повторяющиеся загрузкиНужен разработчик, зависимость от Excel
XML-обмен по правиламДве базы 1С, регулярная синхронизацияНужно настроить и сопровождать правила
HTTP-сервис и JSONИнтеграция с внешней системойРазработка, безопасность доступа

Для задачи «принести таблицу поставщика в базу» XML и JSON избыточны. Они нужны, когда загрузка перестала быть разовой и превратилась в процесс.

Свой загрузчик: внешняя обработка, читающая Excel

Когда формат файла нестандартный (шапка на три строки, данные раскиданы по листам, нужны пересчёты), типовая обработка не справляется. Тогда разработчик пишет внешнюю обработку. Простейший способ чтения — через COM-объект Excel.

Excel = Новый COMОбъект("Excel.Application");
Excel.DisplayAlerts = Ложь;
Книга = Excel.Workbooks.Open(ПутьКФайлу);
Лист = Книга.Worksheets(1);

ПоследняяСтрока = Лист.UsedRange.Rows.Count;
Для Строка = 2 По ПоследняяСтрока Цикл
    Артикул = СокрЛП(Лист.Cells(Строка, 1).Value);
    Наименование = СокрЛП(Лист.Cells(Строка, 2).Value);
    // здесь поиск элемента по артикулу и запись
КонецЦикла;

Книга.Close(Ложь);
Excel.Quit();

У такого подхода есть ограничения. На компьютере должен быть установлен Excel. На сервере в клиент-серверном варианте или в веб-клиенте COM часто недоступен. Работает медленно: каждое обращение к ячейке — отдельный вызов.

Есть вариант без Excel: в современных релизах платформы объект «Табличный документ» умеет читать файлы .xlsx методом Прочитать. Он быстрее, не требует установленного офиса и работает на сервере. Проверьте поддержку в вашей версии платформы.

Читайте данные пачкой: заберите всю область в массив одним обращением, а не по ячейке. Разница на 10 000 строк бывает в десятки раз.

Проверку внутри загрузчика заложите сразу. Не пишите в базу, пока не прошли весь файл: сначала соберите список ошибок («строка 15: не найдена единица измерения»), покажите его, потом записывайте. Загрузку удобно оформлять в транзакции, чтобы при сбое в середине не остаться с половиной данных.

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

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

Даты — отдельная боль. Excel хранит дату как число, а в текстовом виде она зависит от настроек компьютера. Запись 03.04.2026 одна система прочитает как 3 апреля, другая как 4 марта. Приводите даты к единому формату ДД.ММ.ГГГГ и проверяйте на нескольких строках.

Ещё одна ловушка: ведущие нули и длинные числа. ИНН из 12 цифр Excel нередко превращает в запись вида 7,71E+11. Колонку с ИНН, кодами и номерами счетов задавайте текстовой заранее, до вставки данных.

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

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

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

Загрузка по требованию с шаблоном. Если файл приходит от людей, пусть работает кнопка «Загрузить прайс» с готовой настройкой соответствия колонок. Пользователь выбирает файл, видит предварительный результат и подтверждает.

Что стоит предусмотреть в любой автоматической загрузке:

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

Без проверки структуры автоматика однажды загрузит в «Цену» колонку «Остаток», и вы узнаете об этом по отчёту. Поставщики меняют формат файлов без предупреждения.

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

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

  1. Сравните количество. В файле 500 строк с данными, значит, в справочнике должно появиться или обновиться ровно 500 записей. Отбор списка по дате создания или по группе покажет, сколько пришло на самом деле.
  2. Откройте 5–10 случайных элементов и сверьте реквизиты с исходной строкой: единицу, ставку НДС, группу, цену.
  3. Отсортируйте список по наименованию. Дубли и «двойники» с лишним пробелом встанут рядом.
  4. Для табличной части документа сравните итоговую сумму документа с суммой колонки в Excel. Расхождение в копейках говорит об округлении, в тысячах — о потерянной строке.

Простой пример на цифрах. В файле 480 товаров, из них у 12 пустой артикул. Поле поиска — артикул. Загрузчик пропустит или задвоит эти 12 строк, и в базе окажется 468 или 480 новых записей с «пустым» ключом. Расхождение между 480 и 468 вы увидите сразу, если считали заранее.

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

Для повторных загрузок заведите себе рабочий шаблон Excel: готовые заголовки, форматы колонок и пример строки. Присылайте его коллегам и поставщикам вместо «как получится». Половина проблем исчезнет ещё до открытия 1С.

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

Сколько строк можно загрузить за один раз?
Жёсткого предела нет, но обработка через интерфейс заметно тормозит после нескольких тысяч строк. Большие файлы режьте на части по 2–5 тысяч строк или грузите внешней обработкой.
Можно ли загрузить картинки и вложенные файлы?
Из ячеек Excel нет. Изображения грузят отдельной обработкой, где файл связывается с элементом справочника по имени или артикулу.
Нужен ли Excel на сервере 1С?
Только если читаете файл через COM. Чтение xlsx через табличный документ Excel на сервере не требует.
Как обновить цены у существующих товаров, не создавая новых?
Задайте поле поиска (артикул) и режим «только обновлять найденные». Колонку с ценой загружайте в документ установки цен, а не в справочник.
Откатится ли загрузка, если что-то пошло не так?
Штатной кнопки отмены нет. Поэтому до загрузки делайте копию базы, а в собственных обработках используйте транзакцию.