Как перенести таблицу из Excel в справочник или документ 1С

· 10 мин

Содержание

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

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

Подготовка таблицы Excel перед импортом в 1С

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

Что сделать с таблицей:

  • 🧹 Одна строка заголовков. Шапку накладной, логотип, подписи и итоговую строку «Всего» уберите. Данные начинаются сразу под заголовками.
  • 🔗 Без объединённых ячеек. Объединение сдвигает колонки при чтении. Снимите его в выпадающем списке кнопки «Объединить и поместить в центре» на вкладке «Главная».
  • 🔢 Значения вместо формул. Скопируйте диапазон и вставьте как «Значения». Формулы со ссылками на другие листы при чтении могут дать пустые ячейки.
  • 🆔 ИНН, КПП, коды и артикулы — текстом. Числовой формат съедает ведущие нули: ИНН 0274062111 превращается в 274062111, и 1С не найдёт контрагента.
  • ✂️ Лишние пробелы. Функция =СЖПРОБЕЛЫ(A2) убирает пробелы по краям. Неразрывный пробел (часто приходит из выгрузок сайтов) убирают заменой через Ctrl+H.
  • 📏 Числа как числа. Цена 1 250,50 с пробелом-разделителем разрядов, сохранённая как текст, иногда читается как ноль. Приведите колонку к числовому формату.
  • 📦 Единицы измерения. Значения вроде «шт», «кг», «упак» должны совпадать с тем, что уже есть в классификаторе единиц измерения базы.

Если в файле несколько листов, оставьте нужный лист первым или скопируйте данные в новую книгу. Так меньше шансов загрузить не тот лист.

Если файл пришёл в CSV

CSV из русского Excel обычно сохраняется в кодировке Windows-1251 с точкой с запятой в качестве разделителя. Выгрузки с сайтов и маркетплейсов чаще приходят в UTF-8 с запятой. Если после открытия в 1С вместо букв видны «кракозябры» или вся строка попала в одну колонку — откройте файл в Excel через импорт текста, укажите кодировку и разделитель, а затем сохраните как .xlsx. Дальше работайте уже с ним.

Отдельно продумайте ключ поиска — колонку, по которой 1С будет понимать, что строка Excel и элемент базы — одно и то же. Для товаров это артикул или код, для контрагентов — ИНН. Наименование годится хуже всего: «Болт М8х40» и «Болт М8 х 40» для программы разные товары.

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

Встроенный механизм есть в типовых конфигурациях на базе БСП (БП 3.0, УТ 11, КА 2, ERP, УНФ). Отдельная обработка не нужна.

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

В части релизов кнопка спрятана в меню Ещё командной панели. Если её не видно ни там, ни там — проверьте права: загрузка требует права на добавление элементов справочника или изменение документа.

Порядок запуска:

  1. Откройте нужный список или документ.
  2. Нажмите Загрузить. Откроется форма с пустой таблицей-шаблоном: её колонки — это поля, которые 1С умеет заполнить.
  3. Выберите источник данных:
    • вставка из буфера — выделите диапазон в Excel без заголовков, нажмите Ctrl+C, щёлкните в первую ячейку шаблона и нажмите Ctrl+V;
    • файл — команда загрузки из файла в форме, выбор .xlsx, .xls, .csv или .ods.

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

Для документа начинайте загрузку из уже созданного документа с заполненной шапкой: организация, контрагент, склад, договор. Строки табличной части подтягивают значения шапки, например ставку НДС и счёт учёта.

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

После вставки или открытия файла нужно, чтобы каждая колонка Excel попала в правильное поле. В шаблоне колонки 1С идут в своём порядке, и он редко совпадает с порядком в файле поставщика.

Два способа:

  • Переставить колонки в Excel под порядок шаблона и вставить заново. Быстро, если колонок 4–6.
  • Указать соответствие в форме загрузки, если она предлагает выбор колонки файла для каждого поля. При загрузке файла это обычно так.

Пример сопоставления для загрузки товаров в поступление:

Сопоставление полей
Артикул→Номенклатура (поиск по артикулу)
Наименование→Номенклатура (поиск по наименованию)
Кол-во→Количество
Цена без НДС→Цена
Сумма→Сумма
Ставка→% НДС

Дальше 1С ищет каждый товар или контрагента в базе. Поиск идёт по полям, которые вы заполнили: если указан артикул — сначала по нему, затем по наименованию. Поэтому колонку артикула или ИНН стоит заполнять всегда, даже если она кажется лишней.

Результат сопоставления делится на группы:

  • ✅ сопоставлено — элемент найден однозначно;
  • 🆕 новые — в базе нет подходящего элемента, при загрузке он будет создан (для справочника) или строка останется пустой (для документа);
  • ⚠️ неоднозначные — найдено несколько подходящих элементов, выбор за вами.

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

Отбор строк: как загрузить только нужное

Загружать весь прайс на 5 000 позиций ради 40 товаров не стоит. Отберите строки до загрузки — в 1С это делать неудобнее.

Способы отбора:

  1. Автофильтр в Excel. Включите фильтр (Ctrl+Shift+L), отберите строки, выделите диапазон и скопируйте. Excel копирует только видимые строки отфильтрованного диапазона, скрытые в буфер не попадут.
  2. Отдельный лист. Для повторяющихся загрузок заведите лист «Для 1С», куда формулами собираются нужные строки, а перед загрузкой копируйте его значениями.
  3. Удаление в шаблоне. После вставки лишние строки можно удалить прямо в таблице формы загрузки: выделить и нажать Delete. Подходит, если лишних строк немного.

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

ЗадачаКак отбиратьРиск
Дозагрузить несколько товаров из прайсаАвтофильтр в ExcelСкопировать заголовок вместе с данными
Регулярная загрузка накладныхЛист-шаблон с формуламиФормулы вместо значений
Убрать 5–10 строкУдаление в форме загрузкиУдалить нужную строку

Ошибки при загрузке данных из Excel и как их читать

После нажатия на загрузку 1С показывает итог: сколько элементов создано, сколько обновлено, сколько строк пропущено. Пропущенные строки — главное, что нужно проверить.

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

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

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

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

Внешняя обработка для нестандартной загрузки из Excel

Встроенной команды не хватает, когда нужно заполнить регистр сведений , нетиповой реквизит или загрузить данные в конфигурацию без БСП. Тогда используют внешнюю обработку .

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

Это обработка ЗагрузкаДанныхИзТабличногоДокумента.epf, которую фирма 1С распространяет для своих конфигураций; есть вариант для управляемых форм. Открывают её через главное меню: Файл → Открыть.

Ключевые настройки:

  • Режим загрузки: в справочник, в табличную часть объекта или в регистр сведений.
  • Первая строка данных — номер строки, с которой начинаются данные (обычно 2, если первая — заголовки).
  • Ручная нумерация колонок — позволяет указать для каждого реквизита номер колонки файла, а не подстраивать файл под обработку.
  • Для каждого реквизита — режим: «Искать» (ключ поиска, как артикул), «Устанавливать» (записать значение из колонки) или «Вычислять» (значение по выражению на встроенном языке).
  • Не создавать новых элементов — защита от дублей при обновлении реквизитов.

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

При открытии внешней обработки платформа предупреждает о небезопасном действии. Это защита от опасных действий. Открывайте только файлы из надёжного источника и проверяйте их на копии базы.

Своя обработка: чтение .xlsx кодом

Платформа 8.3 читает .xlsx в табличный документ без установленного Excel. Это надёжнее старого способа через COM-объект Excel.Application, который требует Excel на компьютере и падает на сервере. Минимальный пример чтения файла построчно:

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

Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
    Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
    Если ПустаяСтрока(Артикул) Тогда
        Продолжить;
    КонецЕсли;
    ТекстЦены = ТабДок.Область(НомерСтроки, 3, НомерСтроки, 3).Текст;
    ТекстЦены = СтрЗаменить(ТекстЦены, Символы.НПП, "");
    ТекстЦены = СтрЗаменить(СтрЗаменить(ТекстЦены, " ", ""), ",", ".");
    Попытка
        Цена = Число(ТекстЦены);
    Исключение
        Цена = 0;
    КонецПопытки;
    Товар = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
    Если Товар.Пустая() Тогда
        Сообщить("Строка " + Формат(НомерСтроки, "ЧГ=0") + ": не найден артикул " + Артикул);
    КонецЕсли;
КонецЦикла;

Цикл начинается со второй строки, чтобы пропустить заголовки. Пустые строки пропускаются, неразрывные пробелы и разделители разрядов вычищаются до преобразования в число. Номер строки в сообщении форматируется через Формат(..., "ЧГ=0"), иначе строка 1250 выведется как «1 250».

Для регулярной загрузки от одного поставщика такую обработку стоит оформить как дополнительную обработку и подключить через Администрирование → Печатные формы, отчёты и обработки. Тогда бухгалтер запускает её из нужного документа, не открывая файл .epf каждый раз.

Частые вопросы про импорт из Excel в 1С

Можно ли загрузить в 1С файл .xls старого формата?
Да, встроенная загрузка открывает и .xls, и .xlsx. Если файл читается с ошибками, пересохраните его в Excel как .xlsx.
Сколько строк можно загрузить за один раз?
Жёсткого ограничения нет, но сопоставление нескольких десятков тысяч строк идёт долго. Большие справочники удобнее грузить частями по 3–5 тысяч строк.
Как обновить цены у существующих товаров, не создавая новые?
Загружайте документ установки цен через его табличную часть или используйте внешнюю обработку с отключённым созданием новых элементов и поиском по артикулу.
Работает ли загрузка из Excel в облачной 1С через браузер?
Да, вставка из буфера и загрузка файла работают в веб-клиенте. Файл сначала передаётся на сервер, поэтому большие таблицы надёжнее вставлять через Ctrl+V частями.
Можно ли загрузить в 1С выписку банка из Excel?
Выписки загружают в формате обмена с банком (файл 1CClientBankExchange), а не из Excel. Таблицу Excel с платежами придётся переносить внешней обработкой.