Загрузка таблицы Excel в 1С: что выбрать под свою задачу

· 9 мин

Содержание

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

Выбор способа зависит от трёх вещей: куда грузите (справочник или документ), сколько строк и как часто. Ниже — подготовка файла, четыре рабочих метода с условиями применения, автоматизация через код и разбор ошибок, из-за которых импорт чаще всего срывается. Пути меню приведены для 1С:Бухгалтерии 3.0 на платформе 8.3 с интерфейсом «Такси»; в ЗУП 3.1 и УТ 11 логика та же, отличаются названия справочников.

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

Большая часть сбоев при импорте — не ошибки 1С, а «грязный» исходник. Чистый файл загружается с первого раза, грязный приходится переделывать по кругу.

Приведите таблицу к простому виду:

  • 📋 Одна строка-шапка с названиями колонок, дальше — только данные. Никаких объединённых ячеек, подзаголовков и пустых строк внутри таблицы.
  • 🔢 Числовые колонки (цена, количество, сумма) — в числовом формате, без текста, пробелов-разделителей разрядов и символа валюты в ячейке.
  • 📅 Даты — единым форматом (ДД.ММ.ГГГГ). Текст вида «1 января» 1С как дату не разберёт.
  • 🧹 Уберите лишние пробелы в начале и конце значений (в Excel — функция СЖПРОБЕЛЫ), иначе «ООО Ромашка» и «ООО Ромашка » станут двумя разными контрагентами.
  • 🔑 Проверьте колонку, по которой будете искать совпадения (артикул, ИНН, код). По ней 1С решает, создавать новый элемент или обновить существующий.

Если в прайсе есть ведущие нули (артикул 007), заранее переведите колонку в текстовый формат — иначе Excel и выгрузка их срежут.

Файл готов к загрузке, если
Выполнено: 0 / 5

Сохраните результат как .xlsx (книга Excel). Формат .xls старые обработки читают, но через COM с ним чаще бывают проблемы на 64-разрядной платформе.

Чем загружать Excel в 1С: четыре рабочих способа

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

СпособКуда грузитКогда выбираютНужен программист
Встроенная обработкаСправочники (номенклатура, контрагенты)Разовый прайс, список клиентовНет
Копирование в табличную частьСтроки документаНакладная, заказ на 10–200 строкНет
Внешняя обработкаПочти что угодноНестандартная структура, редкие объектыНет (нужна готовая обработка)
Загрузка кодом (COM)Что угодноРегулярный импорт, большие объёмыДа

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

Загрузка номенклатуры и контрагентов встроенной обработкой

Это штатный способ для справочников. В 1С:Бухгалтерии 3.0 он работает для номенклатуры и контрагентов.

  1. Откройте список: Справочники → Товары и услуги → Номенклатура (для контрагентов — Справочники → Покупатели и поставщики → Контрагенты).
  2. В командной панели списка найдите команду загрузки из внешнего файла. Если её не видно сразу — загляните в меню Ещё.
  3. В открывшемся окне нажмите загрузку и выберите свой .xlsx. Таблица подтянется на экран как есть.
  4. Сопоставьте колонки файла с реквизитами 1С: укажите, где наименование, где цена, где единица измерения. Строку-шапку пометьте как заголовок, чтобы она не попала в данные.
  5. Проверьте предварительный результат в окне обработки — программа подсветит строки с проблемами (не распознана единица, нет обязательного поля).
  6. Запустите загрузку и дождитесь отчёта: сколько создано, сколько обновлено, сколько пропущено.

Перед первой массовой загрузкой в рабочую базу сделайте резервную копию: Администрирование → Обслуживание → Резервное копирование. Откатить сотни ошибочно созданных элементов вручную долго.

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

Копирование строк из Excel прямо в документ

Самый быстрый способ наполнить табличную часть документа — накладной, заказа, поступления. Код и обработки не нужны.

  1. В Excel выделите диапазон данных без шапки и скопируйте (Ctrl+C).
  2. В 1С откройте документ и встаньте на табличную часть (например, «Товары»).
  3. Вставьте строки (Ctrl+V). 1С добавит их по порядку колонок.

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

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

Для разовой задачи на 20–100 строк этот способ почти всегда быстрее, чем настройка обработки. Не усложняйте там, где достаточно буфера обмена.

Внешние обработки для нестандартных данных

Когда встроенного инструмента нет (например, нужно загрузить остатки , проводки или заполнить реквизиты , которых нет в штатной загрузке), берут внешнюю обработку.

Классический вариант — «Загрузка данных из табличного документа». Это универсальная обработка: она читает .xlsx/.mxl, показывает таблицу и даёт сопоставить каждую колонку с любым реквизитом выбранного объекта (справочника, документа, регистра). Такие обработки распространяются на диске ИТС и в сообществе 1С-специалистов.

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

  1. Откройте обработку: Файл → Открыть и укажите файл .epf, либо подключите её как дополнительную в Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки.
  2. Выберите объект-приёмник (куда грузим) и режим: создавать новые или искать и обновлять существующие.
  3. Загрузите исходный файл, сопоставьте колонки с реквизитами. Для поиска совпадений задайте ключевое поле (код, артикул, ИНН).
  4. Запустите пробную загрузку на нескольких строках, проверьте результат и только потом грузите весь файл.

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

Плюс способа — гибкость: один инструмент закрывает десятки сценариев. Минус — требуется подключение внешних обработок (в облачных базах 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С это работает?
Описанные способы рассчитаны на 1С 8.3. На платформе 8.2 встроенные обработки и копирование в табличную часть тоже есть, но интерфейс и пути меню отличаются. Загрузка через COM работает в обеих.
Поддерживается ли формат .xls или только .xlsx?
Оба читаются. Для загрузки через COM на 64-разрядной платформе надёжнее .xlsx: со старым .xls чаще возникают проблемы совместимости.
Как обновить уже существующие элементы, а не создавать дубли?
Выберите в обработке режим поиска по ключевому полю (артикул, код, ИНН). Тогда совпавшие строки обновятся, а новые — создадутся. Без ключа всё грузится как новые элементы.
Можно ли отменить неудачную загрузку?
Автоматического отката нет. Поэтому перед массовой загрузкой в рабочую базу делают резервную копию, а первый прогон запускают на нескольких строках.