Импорт таблицы из Excel в базу 1С:Предприятие 8.3 без ручного ввода

· 10 мин

Содержание

Чтобы загрузить Excel файл в 1С 8.3, откройте нужный список или табличную часть документа и нажмите кнопку Загрузить (в Бухгалтерии 3.0 она есть в справочнике номенклатуры и на вкладке «Товары» приходных и расходных документов). Программа покажет форму загрузки: вставляете данные из Excel или указываете файл, сопоставляете колонки с реквизитами, проверяете результат и подтверждаете.

Типичный случай: поставщик прислал накладную на 300 позиций в .xlsx, а вбивать её руками — полдня работы и десяток опечаток. Импорт из Excel решает это за 5–10 минут, если файл подготовлен правильно. Ниже — что сделать с таблицей до загрузки, как пройти мастер, как бороться с датами и числами и когда нужна своя обработка.

Как подготовить файл Excel к загрузке в 1С

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

Что проверить в структуре:

  • 📌 Одна строка — одна запись. Никаких промежуточных итогов, подзаголовков групп и пустых строк посреди таблицы.
  • 📌 Одна строка заголовков. Шапка вида «Наименование / Артикул / Кол-во / Цена» — в первой строке. Многоуровневые шапки с объединёнными ячейками разбейте.
  • 🧹 Нет объединённых ячеек. Объединение в колонке данных даёт пустые значения во всех строках, кроме первой.
  • 🧹 Нет формул. Скопируйте лист и вставьте «только значения». 1С берёт отображаемый текст ячейки, а ошибка вида #ДЕЛ/0! или #Н/Д уйдёт в базу как строка.
  • 🧹 Нет скрытых строк и столбцов. При загрузке файла они читаются наравне с видимыми.
  • 🔢 Коды и ИНН — в текстовом формате. Иначе Excel срежет ведущие нули: код 000123 превратится в 123, и сопоставление не найдёт элемент.

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

Если Excel под рукой нет, .xlsx открывается прямо в 1С: Файл → Открыть (в главном меню с тремя полосками). Таблица откроется как табличный документ, оттуда её можно скопировать в форму загрузки.

Формат файла. Платформа 8.3 читает .xlsx, .xls и .ods. Старые .xls из учётных систем лучше пересохранить в .xlsx: так меньше сюрпризов с кодировкой. Для очень больших файлов (десятки тысяч строк) удобен .csv, но тогда загрузка обычно идёт через обработку.

Загрузка данных из файла через встроенную кнопку «Загрузить»

В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, Управление торговлей 11, Комплексная автоматизация, ERP) есть единый механизм «Загрузка данных из файла». Он подключён к спискам справочников и к табличным частям документов. Порядок действий одинаковый.

Загрузка в справочник (номенклатура, контрагенты)

  1. Откройте список, например Справочники → Товары и услуги → Номенклатура в БП 3.0.
  2. Нажмите Загрузить. Если кнопки не видно на панели — ищите её в меню Ещё.
  3. В открывшейся форме есть пустой шаблон с колонками. Два варианта:
    • выделите в Excel диапазон без заголовков, скопируйте (Ctrl+C) и вставьте в шаблон (Ctrl+V);
    • выберите загрузку из файла и укажите .xlsx на диске.
  4. Нажмите Далее. Программа попробует найти каждую строку среди существующих элементов.
  5. Посмотрите итог: какие строки найдены, какие будут созданы новыми, какие не распознаны.
  6. Подтвердите загрузку.

Загрузка в табличную часть документа

  1. Создайте документ, например поступление товаров, и заполните шапку: контрагента, договор, склад.
  2. На вкладке Товары нажмите Загрузить.
  3. Вставьте строки из Excel или выберите файл.
  4. На шаге сопоставления проверьте, что каждая строка привязана к номенклатуре базы.
  5. Подтвердите — строки появятся в табличной части. Суммы и НДС пересчитаются по ставкам из карточек номенклатуры.

Сначала заполните шапку документа: если вид операции или договор поменять после загрузки, часть строк может пересчитаться не так, как вы ожидаете.

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

Сопоставление колонок Excel с реквизитами 1С

Самый важный шаг. От него зависит, найдёт ли 1С существующие элементы или наплодит дубли.

Как сопоставляются колонки. В шаблоне загрузки колонки фиксированы: «Номенклатура», «Количество», «Цена» и т. д. При вставке через буфер вы сами определяете, в какую колонку шаблона что ложится. Поэтому порядок колонок в Excel удобно заранее выстроить так же, как в шаблоне.

Как сопоставляются строки. Программа ищет элемент справочника по значению из файла. Порядок надёжности такой:

Признак для поискаНадёжностьКогда использовать
Штрихкодвысокаятовары с заводскими штрихкодами
Артикулвысокаяесли артикулы в базе заполнены и уникальны
Код 1Свысокаяфайл выгружен из этой же базы
Наименованиенизкаятолько если других признаков нет
ИНН (для контрагентов)высокаязагрузка контрагентов и их реквизитов

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

Нераспознанные строки. На шаге сопоставления строку, для которой элемент не найден, можно:

  • 🔗 привязать вручную к существующему элементу (выбрать из списка);
  • ➕ создать новый элемент по данным строки — это доступно при загрузке в справочник;
  • ✖️ исключить из загрузки.
Сопоставление полей
Наименование товара→Номенклатура (поиск по артикулу или наименованию)
Артикул поставщика→Номенклатура.Артикул
Ед. изм.→Единица измерения (классификатор ОКЕИ)
Кол-во→Количество
Цена без НДС→Цена
Ставка НДС→Ставка НДС (20%, 10%, Без НДС)

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

Даты, числа и суммы: как не потерять значения при импорте

Excel хранит дату как число, а показывает как текст по формату ячейки. 1С при чтении файла берёт отображаемое значение. Отсюда главные сюрпризы.

Даты:

  • 📅 Приводите даты к виду ДД.ММ.ГГГГ. Формат MM/DD/YYYY из американской локали даст перепутанные день и месяц: 03/04 станет 3 апреля вместо 4 марта.
  • 📅 Если вместо даты в 1С пришло число вида 45567 — ячейка в Excel имела «Общий» формат. Поставьте формат «Дата» и пересохраните файл.
  • 📅 Дата, набранная текстом с апострофом, читается как строка. Проверьте выравнивание в Excel: текст прижат влево, дата — вправо.

Числа:

  • 🔢 Разделитель дробной части — запятая. Цена 1250.50 из выгрузки с точкой может прочитаться как строка или как 125050.
  • 🔢 Неразрывные пробелы в разрядах (1 250,50) — частая причина «нулевых» сумм. Уберите их заменой: в поле «Найти» Excel введите неразрывный пробел через Alt+0160 на цифровой клавиатуре.
  • 🔢 Знак валюты в ячейке («1 250 ₽») мешает распознать число. Оставьте только цифры.
  • 🔢 Округление: 1С хранит цену с той точностью, которая задана в реквизите. Цена 12,3456 при двух знаках станет 12,35, и сумма строки разойдётся с файлом на копейки.

Проверка сумм. После загрузки сравните итог документа с итогом в Excel. Пример: в файле 300 строк на 1 482 640,00 ₽, в документе 1 482 639,97 ₽. Разница 3 копейки — это округление цен, а не потерянная строка. Разница в тысячи — ищите строку, где количество или цена не прочитались.

Ошибки при загрузке Excel и как читать результат

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

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

Как убрать дубли, если они уже появились. В типовых конфигурациях на БСП есть обработка «Поиск и удаление дублей» в разделе Администрирование → Обслуживание. Она находит похожие элементы и переносит ссылки на оставшийся. Запускайте её на копии базы или вне рабочего времени: при большом справочнике обработка идёт долго.

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

Внешние обработки и программная загрузка из Excel

Встроенной кнопки хватает для номенклатуры, контрагентов и табличных частей. Своя обработка нужна, когда:

  • 🛠 надо загрузить данные в объект, к которому механизм «Загрузить» не подключён (например, регистр сведений или нетиповой справочник);
  • 🛠 файл приходит регулярно в одном формате, и сопоставлять его руками каждый раз неудобно;
  • 🛠 конфигурация старая или сильно доработанная, и кнопки нет.

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

Это бесплатная внешняя обработка фирмы 1С, её распространяют через портал ИТС среди универсальных обработок. Работает в режиме управляемого приложения. Порядок:

  1. Откройте файл через Файл → Открыть (меню с тремя полосками) и выберите .epf.
  2. Выберите режим: в справочник, в табличную часть или в регистр сведений.
  3. Укажите объект, например справочник «Номенклатура».
  4. Вставьте таблицу из Excel или откройте файл на вкладке табличного документа.
  5. На вкладке настройки укажите для каждого реквизита номер колонки и способ поиска (по коду, по наименованию, по реквизиту).
  6. Выполните «Контроль заполнения», затем «Загрузить».

Настройки сопоставления можно сохранить в файл и использовать при следующей загрузке того же формата. Для регулярных выгрузок от одного поставщика это главный плюс.

Обработка пишет прямо в справочники и регистры, минуя часть проверок типовой формы. Запускайте её под пользователем с полными правами только после резервной копии. Внешние обработки открывайте только из проверенных источников: файл .epf выполняет код с правами пользователя.

Чтение Excel на встроенном языке

Если пишете свою обработку, проще всего прочитать файл в табличный документ. Платформа 8.3 делает это сама, установленный Excel на компьютере не нужен.

&НаСервере
Процедура ПрочитатьФайлНаСервере(АдресФайла)

    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx");
    ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайла);
    ДвоичныеДанные.Записать(ИмяВременногоФайла);

    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);

    // Первая строка — заголовки, данные со второй
    Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл

        Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
        Наименование = СокрЛП(ТабДок.Область(НомерСтроки, 2, НомерСтроки, 2).Текст);
        КоличествоСтрокой = ТабДок.Область(НомерСтроки, 3, НомерСтроки, 3).Текст;

        Если ПустаяСтрока(Артикул) И ПустаяСтрока(Наименование) Тогда
            Продолжить; // пропускаем пустые строки
        КонецЕсли;

        // Убираем пробелы-разделители разрядов и приводим к числу
        КоличествоСтрокой = СтрЗаменить(КоличествоСтрокой, " ", "");
        КоличествоСтрокой = СтрЗаменить(КоличествоСтрокой, Символы.НПП, "");
        КоличествоСтрокой = СтрЗаменить(КоличествоСтрокой, ".", ",");
        Количество = ?(ПустаяСтрока(КоличествоСтрокой), 0, Число(КоличествоСтрокой));

        Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
        Если Номенклатура.Пустая() Тогда
            Сообщить(СтрШаблон("Строка %1: артикул %2 не найден", НомерСтроки, Артикул));
            Продолжить;
        КонецЕсли;

        // Здесь — запись строки в документ или регистр

    КонецЦикла;

    УдалитьФайлы(ИмяВременногоФайла);

КонецПроцедуры

Пара практических моментов:

  • 📄 Файл с клиента сначала помещают во временное хранилище (НачатьПомещениеФайлаНаСервер или ПоместитьФайл в старом коде), а на сервере записывают во временный файл — как в примере.
  • 📄 Число() выбросит исключение на строке вида «12 шт». Для «грязных» файлов оберните преобразование в Попытка … Исключение и выводите номер строки в сообщение.
  • 📄 Способ через COM-объект Excel.Application требует установленного Excel там, где выполняется код. На сервере 1С его обычно нет, поэтому чтение через табличный документ надёжнее.

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

Можно ли загрузить в 1С сразу несколько листов книги Excel?
Механизм «Загрузить» берёт один лист. Либо сведите данные на один лист, либо загружайте листы по очереди. Своя обработка может перебрать листы программно.
Сколько строк можно загрузить за раз?
Жёсткого предела у механизма нет, но на тысячах строк форма работает медленно. Файлы больше 5–10 тысяч строк удобнее делить на части по 2–3 тысячи.
Как загрузить начальные остатки из Excel?
Создайте документ ввода остатков по нужному разделу учёта и загрузите строки в его табличную часть кнопкой «Загрузить», если она там есть. Иначе — через универсальную обработку в табличную часть документа.
Загрузятся ли картинки товаров из Excel?
Нет. Изображения, вставленные в ячейки, механизм загрузки не переносит. Картинки добавляют в карточку номенклатуры отдельно.
Работает ли загрузка из Excel в 1С через браузер или облако?
Да, вставка через буфер обмена и выбор файла работают и в веб-клиенте. Для вставки браузер может запросить разрешение на доступ к буферу обмена.