Импорт таблицы Excel в базу 1С 8.3: от подготовки файла до проверки результата

· 9 мин

Содержание

Чтобы загрузить xlsx в 1С 8.3, откройте нужный список или документ (например, справочник «Номенклатура» или табличную часть поступления), нажмите команду Загрузить и укажите файл либо вставьте данные из Excel через буфер обмена. Дальше 1С сама предложит сопоставить колонки файла с реквизитами и покажет, какие строки найдены в базе, а какие нет.

Если встроенной команды в нужном месте нет, используют внешнюю обработку загрузки из табличного документа или пишут свою на встроенном языке. Платформа 8.3 читает форматы xlsx, xls, ods и mxl без установленного Excel.

Что сделать с файлом Excel до загрузки

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

📌 Структура листа:

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

📌 Значения в ячейках:

  • формулы замените значениями: Копировать → Специальная вставка → Значения;
  • числа должны быть числами, а не текстом. Признак текста — зелёный треугольник в углу ячейки или выравнивание по левому краю;
  • уберите неразрывные пробелы в суммах вида 1 250,00 — частая причина ошибки преобразования;
  • артикулы и коды с ведущими нулями (00125) храните как текст, иначе Excel превратит их в 125;
  • даты приведите к одному формату ДД.ММ.ГГГГ.

📌 Ключ для поиска. Решите заранее, по какому полю 1С будет искать существующие объекты: артикул, код, ИНН, штрихкод или наименование. Наименование — самый ненадёжный вариант: лишний пробел или кавычка дают новый дубль.

Добавьте в Excel служебную колонку с формулой =СЖПРОБЕЛЫ(A2) для наименований и артикулов, а потом вставьте результат значениями на место исходной колонки. Двойные и концевые пробелы — главный источник дублей при загрузке.

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

Встроенная загрузка xlsx в 1С через команду «Загрузить»

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

Где найти команду

Куда загружаемГде команда
Справочник «Номенклатура»Справочники → Товары и услуги → Номенклатура, кнопка Загрузить над списком
Товары в документ поступления или реализацииТабличная часть «Товары» документа, кнопка Загрузить над таблицей
Справочник «Контрагенты»Список контрагентов, меню Ещё

Путь меню выше — для Бухгалтерии 3.0. В УТ 11 и КА справочник номенклатуры находится в разделе НСИ и администрирование, но сама команда и форма загрузки те же.

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

  1. Нажмите Загрузить. Откроется форма с пустой таблицей, колонки которой соответствуют реквизитам объекта.
  2. Выберите способ: загрузить из файла (команда выбора файла в форме) или скопировать ячейки из Excel и вставить в таблицу формы сочетанием Ctrl+V.
  3. Укажите, какая колонка файла какому реквизиту соответствует. Если заголовки в Excel совпадают с названиями реквизитов, сопоставление часто подставляется само.
  4. Нажмите Далее. Программа ищет каждую строку в базе по выбранному ключу и показывает результат сопоставления.
  5. Просмотрите строки, которые не нашлись. Для справочников обычно можно выбрать: создать новые элементы или пропустить. Для документа ненайденную номенклатуру выбирают вручную прямо в таблице.
  6. Завершите загрузку. Элементы справочника запишутся в базу, строки документа появятся в табличной части — документ останется незаписанным, пока вы его не проведёте.
Сопоставление полей
Артикул→Номенклатура.Артикул (ключ поиска)
Наименование→Номенклатура.Наименование
Ед. изм.→Единица измерения (классификатор)
Кол-во→Количество
Цена→Цена
Ставка НДС→Ставка НДС (20%, 10%, Без НДС)

При загрузке справочника с флажком «создавать новые» сначала прогоните 5–10 строк, проверьте, как заполнились реквизиты, и только потом загружайте весь файл. Удалять сотни ошибочных элементов из базы намного дольше, чем повторить пробу.

Копирование ячеек из Excel через буфер обмена

Самый быстрый способ для разовой задачи — 30 строк накладной от поставщика или список новых позиций. Файл даже не нужно сохранять.

Куда вставка работает

  • В форму «Загрузка данных из файла». Выделите в Excel диапазон без заголовков, нажмите Ctrl+C, в форме загрузки встаньте в первую ячейку таблицы и нажмите Ctrl+V. Колонки лягут в том порядке, в каком вы их выделили, поэтому заранее расставьте их в Excel под порядок колонок формы.
  • В одну ячейку 1С. Обычная вставка значения в поле: наименование, ИНН, сумма.

Куда вставка не работает

Прямо в табличную часть документа диапазон из Excel не вставится: 1С примет только значение одной ячейки, а не таблицу. Для нескольких строк используйте кнопку Загрузить у этой табличной части — она и есть «вставка с сопоставлением».

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

Внешняя обработка загрузки из табличного документа

Когда команды Загрузить нет — в старых релизах, отраслевых и самописных конфигурациях — выручает внешняя обработка «Загрузка данных из табличного документа». Её файл ЗагрузкаДанныхИзТабличногоДокумента.epf распространяется для пользователей с подпиской на поддержку. Обработка умеет загружать в справочники, табличные части документов и регистры сведений.

Как открыть

Есть два варианта:

  • Разово: Главное меню (☰) → Файл → Открыть, выбрать файл .epf. Нужно право на интерактивное открытие внешних обработок; без него программа выдаст сообщение о нарушении прав доступа.
  • Постоянно: зарегистрировать в разделе Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки (функциональность включается флажком в том же разделе). Тогда обработка доступна пользователям без права открывать произвольные файлы.

Как пользоваться

  1. Выберите режим: загрузка в справочник, в табличную часть или в регистр сведений.
  2. Укажите объект-приёмник — например, справочник «Номенклатура» или документ и его табличную часть.
  3. Откройте файл xlsx или вставьте данные на вкладку с табличным документом.
  4. В настройке реквизитов отметьте, какие загружать, задайте номер колонки для каждого и выберите поле поиска.
  5. Для реквизитов, которых нет в файле, задайте значение по умолчанию — например, одну ставку НДС для всех строк.
  6. Запустите контроль заполнения. Ошибочные ячейки подсвечиваются, а в примечании видно, почему значение не подошло.
  7. Загрузите данные.

Внешняя обработка пишет данные в базу напрямую, в обход части проверок типовой формы. Перед первой загрузкой сделайте резервную копию базы: в файловом варианте — выгрузку .dt через Конфигуратор или копию каталога базы при закрытой программе, в клиент-серверном — средствами СУБД.

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

СпособКогда подходитРиски
Команда Загрузить в типовойСправочники и табличные части, где команда естьМинимальные: работают проверки конфигурации
Вставка через буферРазовая загрузка до нескольких сотен строкСдвиг колонок при неаккуратном выделении
Внешняя обработкаНет встроенной команды, регистры сведений, нетиповые объектыЗапись в обход проверок, нужны права
Своя обработка на встроенном языкеРегулярная загрузка файлов одного форматаНужен программист, поддержка при обновлении

Ошибки при импорте Excel в 1С и что с ними делать

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

Отдельно про даты. Если в Excel дата хранится как число (например, 45567), а в 1С приходит пустое значение, задайте колонке в Excel формат «Дата» и пересохраните файл. Обратная ситуация — дата текстом с точками в американском порядке — исправляется только в самом файле.

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

Регулярная загрузка xlsx: автоматизация и своя обработка

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

1. Сохранённые настройки. Внешняя обработка загрузки умеет сохранять настройку колонок в файл и восстанавливать её. Для повторяющегося формата это закрывает задачу без программиста.

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

&НаСервереБезКонтекста
Функция ПрочитатьФайлExcel(АдресФайла)

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

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

    Результат = Новый Массив;
    // Первая строка - заголовки, данные со второй
    Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
        Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
        Если ПустаяСтрока(Артикул) Тогда
            Продолжить;
        КонецЕсли;
        ТекстКоличества = СтрЗаменить(ТабДок.Область(НомерСтроки, 3, НомерСтроки, 3).Текст, " ", "");
        Строка = Новый Структура("Артикул, Количество", Артикул, ТекстКоличества);
        Результат.Добавить(Строка);
    КонецЦикла;

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

КонецФункции

На клиенте файл помещают во временное хранилище (например, через НачатьПомещениеФайлаНаСервер) и передают в функцию адрес. Текст количества дальше превращают в число с проверкой, а артикул ищут в справочнике номенклатуры запросом.

📌 Что ещё стоит заложить в свою обработку:

  • проверку заголовков: если поставщик переставил колонки, обработка должна остановиться с понятным сообщением, а не загрузить цены в количество;
  • журнал результата: сколько строк загружено, какие артикулы не найдены;
  • режим «только проверить» без записи в базу.

Встречается старый способ через COM-объект Excel.Application. Он требует установленного Excel на той машине, где выполняется код, и на сервере 1С работает нестабильно. Для новых разработок чтение через табличный документ надёжнее.

Свою обработку подключают так же, как внешнюю: через «Дополнительные отчеты и обработки». Так её не придётся переносить при обновлении типовой конфигурации.

Как проверить, что данные загрузились правильно

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

  • 🔍 Количество. Число строк в файле (без заголовка) должно совпасть с числом созданных элементов или строк документа.
  • 🔍 Суммы. Итог по колонке «Сумма» в Excel сравните с итогом табличной части документа. Расхождение на копейки обычно означает округление цены, на крупную сумму — пропущенные строки.
  • 🔍 Выборочно 3–5 строк. Откройте карточки: единица измерения, ставка НДС, вид номенклатуры, группа.
  • 🔍 Дубли. Отсортируйте список номенклатуры по наименованию и посмотрите на элементы, созданные сегодня.

Если что-то пошло не так в документе, проще не проводить его и удалить строки, чем исправлять по одной. Для справочников ошибочные элементы отмечают на удаление, а окончательное удаление выполняет администратор в Администрирование → Обслуживание → Удаление помеченных объектов.

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

Нужен ли установленный Excel, чтобы загрузить xlsx в 1С?
Нет. Платформа 8.3 сама читает форматы xlsx, xls и ods. Excel нужен только для старых обработок, которые работают через COM-объект.
Можно ли загрузить остатки из Excel?
Да, но через документы ввода начальных остатков: их табличные части заполняют загрузкой так же, как обычные документы. Напрямую в регистры бухгалтерии данные не загружают.
Сколько строк можно загрузить за раз?
Жёсткого ограничения нет, но файлы на десятки тысяч строк лучше делить на части по 2–5 тысяч. Так проще найти ошибку и не держать форму открытой надолго.
Загрузятся ли картинки товаров из Excel?
Нет, загрузка из файла переносит только значения ячеек. Изображения номенклатуры добавляют отдельно или своей обработкой по ссылкам на файлы.
Почему файл csv загружается с «кракозябрами»?
Это вопрос кодировки csv, а не 1С. Откройте файл в Excel и сохраните как xlsx — в этом формате кодировка не теряется.