Загрузка таблицы Excel в 1С: что выбрать под свою задачу
Содержание
Для разовой загрузки прайса или списка контрагентов хватит встроенной обработки: откройте нужный справочник, найдите в командной панели команду загрузки из внешнего файла, укажите .xlsx и сопоставьте колонки. Для таблиц документов быстрее всего скопировать строки прямо из Excel и вставить в табличную часть через буфер обмена. Если данные нестандартные или грузить придётся регулярно — берут внешнюю обработку
с сопоставлением полей или пишут загрузку кодом через COM.
Выбор способа зависит от трёх вещей: куда грузите (справочник или документ), сколько строк и как часто. Ниже — подготовка файла, четыре рабочих метода с условиями применения, автоматизация через код и разбор ошибок, из-за которых импорт чаще всего срывается. Пути меню приведены для 1С:Бухгалтерии 3.0 на платформе 8.3 с интерфейсом «Такси»; в ЗУП 3.1 и УТ 11 логика та же, отличаются названия справочников.
Подготовка таблицы Excel перед загрузкой
Большая часть сбоев при импорте — не ошибки 1С, а «грязный» исходник. Чистый файл загружается с первого раза, грязный приходится переделывать по кругу.
Приведите таблицу к простому виду:
- 📋 Одна строка-шапка с названиями колонок, дальше — только данные. Никаких объединённых ячеек, подзаголовков и пустых строк внутри таблицы.
- 🔢 Числовые колонки (цена, количество, сумма) — в числовом формате, без текста, пробелов-разделителей разрядов и символа валюты в ячейке.
- 📅 Даты — единым форматом (
ДД.ММ.ГГГГ). Текст вида «1 января» 1С как дату не разберёт. - 🧹 Уберите лишние пробелы в начале и конце значений (в Excel — функция
СЖПРОБЕЛЫ), иначе «ООО Ромашка» и «ООО Ромашка » станут двумя разными контрагентами. - 🔑 Проверьте колонку, по которой будете искать совпадения (артикул, ИНН, код). По ней 1С решает, создавать новый элемент или обновить существующий.
Если в прайсе есть ведущие нули (артикул 007), заранее переведите колонку в текстовый формат — иначе Excel и выгрузка их срежут.
Сохраните результат как .xlsx (книга Excel). Формат .xls старые обработки читают, но через COM с ним чаще бывают проблемы на 64-разрядной платформе.
Чем загружать Excel в 1С: четыре рабочих способа
Готового «универсального загрузчика всего» в типовых конфигурациях нет. Под каждую задачу — свой инструмент. «Универсальный обмен данными в формате XML» для Excel не подходит: он переносит данные между базами 1С, а не из таблицы.
| Способ | Куда грузит | Когда выбирают | Нужен программист |
|---|---|---|---|
| Встроенная обработка | Справочники (номенклатура, контрагенты) | Разовый прайс, список клиентов | Нет |
| Копирование в табличную часть | Строки документа | Накладная, заказ на 10–200 строк | Нет |
| Внешняя обработка | Почти что угодно | Нестандартная структура, редкие объекты | Нет (нужна готовая обработка) |
| Загрузка кодом (COM) | Что угодно | Регулярный импорт, большие объёмы | Да |
Правило простое. Начинайте с самого простого способа, который закрывает задачу, и усложняйте, только если он не справился. Для 50 товаров не нужен код, для ежедневной выгрузки из стороннего склада — не нужна ручная вставка строк.
Загрузка номенклатуры и контрагентов встроенной обработкой
Это штатный способ для справочников. В 1С:Бухгалтерии 3.0 он работает для номенклатуры и контрагентов.
- Откройте список:
Справочники → Товары и услуги → Номенклатура(для контрагентов —Справочники → Покупатели и поставщики → Контрагенты). - В командной панели списка найдите команду загрузки из внешнего файла. Если её не видно сразу — загляните в меню
Ещё. - В открывшемся окне нажмите загрузку и выберите свой
.xlsx. Таблица подтянется на экран как есть. - Сопоставьте колонки файла с реквизитами 1С: укажите, где наименование, где цена, где единица измерения. Строку-шапку пометьте как заголовок, чтобы она не попала в данные.
- Проверьте предварительный результат в окне обработки — программа подсветит строки с проблемами (не распознана единица, нет обязательного поля).
- Запустите загрузку и дождитесь отчёта: сколько создано, сколько обновлено, сколько пропущено.
Перед первой массовой загрузкой в рабочую базу сделайте резервную копию: Администрирование → Обслуживание → Резервное копирование. Откатить сотни ошибочно созданных элементов вручную долго.
Цены загружаются не в саму карточку номенклатуры, а документом установки цен — обработка создаёт его отдельно. Если цен в прайсе несколько видов (розница, опт), грузите их раздельно по колонкам.
Копирование строк из Excel прямо в документ
Самый быстрый способ наполнить табличную часть документа — накладной, заказа, поступления. Код и обработки не нужны.
- В Excel выделите диапазон данных без шапки и скопируйте (
Ctrl+C). - В 1С откройте документ и встаньте на табличную часть (например, «Товары»).
- Вставьте строки (
Ctrl+V). 1С добавит их по порядку колонок.
Работает это не во всех табличных частях, но в большинстве торговых документов — да. Главное условие: порядок колонок в Excel должен совпадать с порядком в табличной части 1С. Поэтому заранее переставьте колонки в файле под документ.
Если товары подбираются по артикулу или наименованию, удобнее сначала скопировать в документ коды, а 1С подставит номенклатуру по совпадению. Ненайденные позиции останутся пустыми — их видно сразу, и можно дозаполнить вручную. Сама вставка новую номенклатуру не создаёт: если товара в справочнике ещё нет, его сначала заводят (например, встроенной обработкой из предыдущего раздела), а уже потом подбирают в документ.
Для разовой задачи на 20–100 строк этот способ почти всегда быстрее, чем настройка обработки. Не усложняйте там, где достаточно буфера обмена.
Внешние обработки для нестандартных данных
Когда встроенного инструмента нет (например, нужно загрузить остатки , проводки или заполнить реквизиты , которых нет в штатной загрузке), берут внешнюю обработку.
Классический вариант — «Загрузка данных из табличного документа». Это универсальная обработка: она читает .xlsx/.mxl, показывает таблицу и даёт сопоставить каждую колонку с любым реквизитом выбранного объекта (справочника, документа, регистра). Такие обработки распространяются на диске ИТС и в сообществе 1С-специалистов.
Порядок работы:
- Откройте обработку:
Файл → Открытьи укажите файл.epf, либо подключите её как дополнительную вАдминистрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. - Выберите объект-приёмник (куда грузим) и режим: создавать новые или искать и обновлять существующие.
- Загрузите исходный файл, сопоставьте колонки с реквизитами. Для поиска совпадений задайте ключевое поле (код, артикул, ИНН).
- Запустите пробную загрузку на нескольких строках, проверьте результат и только потом грузите весь файл.
Внешние обработки работают под полными правами и пишут в базу напрямую. Запускайте только проверенные файлы из надёжного источника — чужая обработка может испортить данные.
Плюс способа — гибкость: один инструмент закрывает десятки сценариев. Минус — требуется подключение внешних обработок (в облачных базах 1С:Фреш оно может быть ограничено политикой провайдера).
Загрузка Excel в 1С через код и COM-соединение
Если импорт регулярный или объёмы большие, ручные способы не годятся — пишут загрузку в коде. Есть два подхода.
Читать Excel изнутри 1С. Платформа открывает книгу Excel через COM и читает ячейки:
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Open("C:\Обмен\price.xlsx");
Лист = Книга.Worksheets(1);
ВсегоСтрок = Лист.UsedRange.Rows.Count;
Для Стр = 2 По ВсегоСтрок Цикл
Артикул = Строка(Лист.Cells(Стр, 1).Value);
Наименование = Строка(Лист.Cells(Стр, 2).Value);
Цена = Число(Лист.Cells(Стр, 3).Value);
// здесь — поиск или создание элемента и запись
КонецЦикла;
Книга.Close(Ложь);
Excel.Quit();
Для этого на машине (или на сервере 1С) должен быть установлен Microsoft Excel. На сервере это неудобно, поэтому вместо COM часто читают выгруженный из Excel текстовый формат — см. следующий раздел.
Писать в базу снаружи через COM-соединение. Внешний скрипт подключается к базе 1С и создаёт объекты. Подключение идёт через V83.COMConnector:
Коннектор = Новый COMОбъект("V83.COMConnector");
Соединение = Коннектор.Connect("Srvr=""server"";Ref=""base"";Usr=""Загрузчик"";");
Товар = Соединение.Справочники.Номенклатура.СоздатьЭлемент();
Товар.Наименование = "Новый товар";
Товар.Записать();
Так удобно связывать 1С с внешними системами: скрипт читает Excel, а в базу пишет через соединение. Для фоновой загрузки заведите отдельного служебного пользователя с минимально необходимыми правами, а не администратора.
При больших объёмах (десятки тысяч строк) учитывайте две вещи. Первая — проведение документов: если при загрузке каждый документ сразу проводится, время растёт в разы, поэтому крупные партии грузят без проведения, а проводят отдельным пакетом в нерабочее время. Вторая — память: читать весь файл в одну таблицу и держать её целиком дорого, разумнее обрабатывать порциями по несколько тысяч строк. Запускать тяжёлую загрузку лучше в фоновом задании, чтобы не блокировать сеанс.
Когда проще CSV, XML или JSON
Excel — не единственный источник. Иногда соседний формат решает задачу чище.
- CSV — текст с разделителями (обычно
;). Читается без Excel и COM:ТекстовыйДокументили построчное чтение, затемСтрРазделить(Строка, ";"). Надёжный вариант для серверной загрузки и больших файлов — именно к нему переходят, когда COM на сервере недоступен. Из Excel сохраняется черезФайл → Сохранить как → CSV. Два подводных камня: кодировка (UTF-8 или Windows-1251 — читать нужно в той же, в какой сохранён файл) и разделитель дробной части. Если в значениях встречается сама точка с запятой, оберните поля в кавычки при выгрузке, иначе строка разобьётся не там. - XML — когда данные приходят из другой учётной системы с заданной структурой. 1С читает XML штатно (
ЧтениеXML, сериализация объектов). Для обмена между базами 1С используют именно XML, а не Excel. - JSON — формат выгрузок из веб-сервисов и маркетплейсов. Платформа 8.3 читает его функциями
ЧтениеJSONиПрочитатьJSON.
Логика выбора: разовая таблица от человека — Excel; постоянный автоматический поток данных — CSV, XML или JSON, которые читаются без лишних зависимостей.
Почему загрузка Excel срывается: разбор частых сбоев
Большинство проблем повторяются из файла в файл. Сверьтесь, прежде чем переделывать таблицу заново.
ДД.ММ.ГГГГ и текстовому формату перед загрузкой.СЖПРОБЕЛЫ) и по возможности ищите по ИНН.После любой массовой загрузки проверьте результат выборочно: откройте 3–5 загруженных элементов и сверьте с исходной таблицей. Это быстрее, чем искать системную ошибку по всей базе.
Частые вопросы
Можно ли загрузить Excel без программиста?
В каких версиях 1С это работает?
Поддерживается ли формат .xls или только .xlsx?
.xlsx: со старым .xls чаще возникают проблемы совместимости.