Как загрузить данные из Excel в 1С: Полное руководство
Содержание
Загрузить данные из Excel в 1С можно тремя путями: типовой обработкой «Загрузка данных из табличного документа», внешней обработкой с чтением файла через COM либо обменом в формате XML/JSON. Для разовой загрузки номенклатуры, контрагентов или строк документа хватает первого пути. Он не требует программирования.
Причина большинства сбоев не в 1С, а в самом файле: объединённые ячейки, пробелы в названиях, числа в виде текста. Поэтому сначала приводим в порядок таблицу, потом выбираем способ.
Подготовьте файл Excel до загрузки
Время, потраченное на чистку файла, окупается втрое. Загрузчик читает таблицу построчно и ничего не «понимает» — он берёт то, что лежит в ячейке.
Что проверить перед загрузкой:
- 📄 Одна шапка, одна строка. Объединённые ячейки в заголовках уберите, названия колонок оставьте в одной строке.
- 🧹 Без итогов и пустых строк. Строки «Итого», подзаголовки групп и пустые разделители загрузчик примет за данные.
- 🔢 Числа — числами. Если в углу ячейки зелёный треугольник, это число-как-текст. Выделите колонку и преобразуйте формат в числовой.
- ✂️ Лишние пробелы. Неразрывный пробел в конце названия даёт «двойник» элемента справочника. Функция
СЖПРОБЕЛЫв Excel убирает обычные пробелы; неразрывные заменяйте поиском с заменой. - 🧾 Идентификатор в каждой строке. Артикул, ИНН или код — то, по чему 1С найдёт существующую запись. Без него при повторной загрузке получите дубли.
Перед загрузкой в рабочую базу сделайте её копию или проверьте файл на тестовой копии. Массовую загрузку отменить кнопкой нельзя: придётся искать и удалять созданные элементы вручную.
Формат файла тоже важен. Колонки с кодами, где есть ведущие нули (например, 000123), заранее переведите в текстовый формат. Иначе Excel «съест» нули, и код перестанет совпадать с базой.
Сохраняйте файл в .xlsx. Старый .xls читается, но часто тянет за собой скрытые листы и форматирование, которое мешает. Если загружаете из .csv, проверьте кодировку и разделитель: кириллица в неверной кодировке превращается в «кракозябры» уже на этапе чтения.
Загрузка через обработку «Загрузка данных из табличного документа»
Это штатный инструмент. Он есть в большинстве типовых конфигураций: Бухгалтерия предприятия, Управление торговлей, ERP, УНФ. Где именно он лежит, зависит от конфигурации и релиза. Проще всего найти его через поиск по меню («Загрузка данных») или в разделе администрирования, в блоке печатных форм, отчётов и обработок.
Если обработки в меню нет, в ряде конфигураций её открывают как внешний файл через Файл → Открыть (сочетание Ctrl+O). Файл обработки берут из комплекта поставки или с диска ИТС.
Порядок работы
- Откройте обработку и выберите режим: загрузка в справочник или в табличную часть документа.
- Укажите, какой именно справочник или документ заполняем (например, «Номенклатура»).
- Вставьте данные в табличное поле: скопируйте диапазон в Excel и вставьте в обработку через
Ctrl+V. Прямая вставка проще, чем выбор файла, и сразу показывает, как легли колонки. - Назначьте колонкам реквизиты (об этом следующий раздел).
- Нажмите кнопку проверки или сравнения, если она есть, и только потом загружайте.
Для пробы загрузите сначала 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. Колонку с ИНН, кодами и номерами счетов задавайте текстовой заранее, до вставки данных.
Автоматизируем регулярную загрузку
Если одну и ту же таблицу присылают каждую неделю (прайс поставщика, выписка, остатки склада), ручная вставка надоест. Есть два рабочих варианта.
Регламентное задание. Внешняя обработка или расширение следит за папкой, куда поставщик кладёт файл. По расписанию заглядывает туда, читает новые файлы и загружает данные. Обработанные файлы переносит в папку «Архив» и пишет результат в журнал.
Загрузка по требованию с шаблоном. Если файл приходит от людей, пусть работает кнопка «Загрузить прайс» с готовой настройкой соответствия колонок. Пользователь выбирает файл, видит предварительный результат и подтверждает.
Что стоит предусмотреть в любой автоматической загрузке:
- ✅ журнал: сколько строк прочитано, создано, обновлено, пропущено;
- ✅ проверку структуры файла (совпадают ли заголовки) до начала работы;
- ✅ уведомление ответственному, если пришёл файл с новой структурой;
- ✅ запрет повторной загрузки того же файла (имя плюс контрольная сумма).
Без проверки структуры автоматика однажды загрузит в «Цену» колонку «Остаток», и вы узнаете об этом по отчёту. Поставщики меняют формат файлов без предупреждения.
Как проверить результат после загрузки
Загрузка прошла без ошибок — это ещё не значит, что данные верны. Потратьте десять минут на проверку, пока свежие записи легко отличить от старых.
- Сравните количество. В файле 500 строк с данными, значит, в справочнике должно появиться или обновиться ровно 500 записей. Отбор списка по дате создания или по группе покажет, сколько пришло на самом деле.
- Откройте 5–10 случайных элементов и сверьте реквизиты с исходной строкой: единицу, ставку НДС, группу, цену.
- Отсортируйте список по наименованию. Дубли и «двойники» с лишним пробелом встанут рядом.
- Для табличной части документа сравните итоговую сумму документа с суммой колонки в Excel. Расхождение в копейках говорит об округлении, в тысячах — о потерянной строке.
Простой пример на цифрах. В файле 480 товаров, из них у 12 пустой артикул. Поле поиска — артикул. Загрузчик пропустит или задвоит эти 12 строк, и в базе окажется 468 или 480 новых записей с «пустым» ключом. Расхождение между 480 и 468 вы увидите сразу, если считали заранее.
Если после загрузки обнаружили массовую ошибку, не правьте записи по одной. Восстановите копию базы, исправьте файл и загрузите заново. Это быстрее и надёжнее ручной чистки.
Для повторных загрузок заведите себе рабочий шаблон Excel: готовые заголовки, форматы колонок и пример строки. Присылайте его коллегам и поставщикам вместо «как получится». Половина проблем исчезнет ещё до открытия 1С.