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

· 10 мин

Содержание

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

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

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

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

Приведите файл к виду «одна строка — одна запись»:

  • 📄 Одна строка заголовков. Названия колонок в первой строке, данные — сразу под ней. Логотип, реквизиты фирмы и дату прайса удалите.
  • 🧱 Без объединённых ячеек. Объединение в заголовке или в данных сдвигает колонки, и цена попадает в поле «Количество».
  • ➖ Без итогов и пустых строк внутри. Строки «Итого по группе», «Всего» обработка воспримет как товары.
  • 🔢 Числа — числами. Цена 1 250,00 руб. с пробелом и «руб.» — это текст. Оставьте 1250. Проверить просто: число в Excel прижимается к правому краю ячейки.
  • 📅 Даты — датами в одном формате, без «12.03» без года.
  • 🔤 Коды и ИНН — текстом. ИНН 0274062111 в числовой ячейке превратится в 274062111. Задайте колонке текстовый формат до ввода данных или вставки.
  • 🧮 Формулы — в значения. Скопируйте лист и вставьте через «Специальная вставка → Значения».
  • ✂️ Без лишних пробелов. «Болт М8 » и «Болт М8» для 1С — разные наименования. В Excel помогает функция СЖПРОБЕЛЫ.

Отдельно проверьте справочные колонки — единицы измерения, ставки НДС, склады. Значение в файле должно совпадать с тем, что уже есть в базе: «шт» и «шт.» не сопоставятся сами.

Сохраняйте файл в формате .xlsx. Современная платформа 8.3 открывает его без установленного Microsoft Excel. Старый .xls тоже читается, но с ним чаще бывают сюрпризы с кодировкой и форматами.

Если таблица большая (десятки тысяч строк), сначала загрузите первые 20–30 строк. Так вы проверите сопоставление за минуту, а не будете откатывать весь импорт.

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

2. Какой способ импорта Excel выбрать

СпособКуда грузитКогда подходитОграничения
Команда Загрузить в списке справочникаНоменклатура, контрагенты и другие справочники, где команда предусмотренаПервичное заполнение, прайс поставщикаТолько те объекты, для которых разработчик включил загрузку
Команда Загрузить в табличной части документаСтроки «Товары», «Услуги» в поступлении, реализации, заказеСчёт или накладная поставщика в ExcelСам документ (шапку) нужно создать вручную
Обработка «Загрузка данных из табличного документа»Любой справочник, табличная часть, регистр сведенийНетиповые объекты, сложные правила, повторяющиеся загрузкиНужно право открывать внешние обработки
Программная загрузка (код, регламентное задание)Что угодноЕжедневный обмен по файлуНужен программист

Для разовой загрузки товаров или контрагентов в типовую конфигурацию хватает встроенной команды. Если объекта нет в списке поддерживаемых или нужно заполнять нестандартные реквизиты — берите обработку.

3. Загрузка из Excel встроенным помощником 1С

Встроенный помощник — часть Библиотеки стандартных подсистем, поэтому выглядит одинаково во всех свежих типовых конфигурациях.

Загрузка в справочник

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

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

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

Копирование через буфер обмена быстрее, чем выбор файла: не нужно выравнивать порядок колонок. Вставляйте столбец за столбцом в нужные колонки шаблона.

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

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

Как запустить

  1. Откройте обработку через Файл → Открыть (меню с тремя полосками в левом верхнем углу окна).
  2. Платформа покажет предупреждение безопасности о запуске внешнего файла. Подтвердите, если файл получен из надёжного источника.
  3. Если открыть не даёт — у пользователя нет права на интерактивное открытие внешних обработок. Его выдаёт администратор, либо обработку регистрируют в Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.

Основные настройки

  • 🎯 Режим загрузки — в справочник, в табличную часть или в регистр сведений.
  • 📍 Объект — какой справочник или какую табличную часть заполнять. Для табличной части сначала выбирают сам документ.
  • 📄 Табличный документ — сюда открывают файл Excel или вставляют данные.
  • 🔢 Первая строка данных — обычно 2, если в первой строке заголовки.
  • ✋ Ручная нумерация колонок — включите, если порядок колонок в файле не совпадает с порядком реквизитов.

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

Это главный шаг загрузки. В обработке на закладке настройки реквизитов для каждой строки задают:

  • ☑️ Пометку — загружать ли реквизит вообще;
  • 🔢 Номер колонки в файле Excel;
  • ⚙️ Режим: Искать — найти значение в базе, Устанавливать — подставить одно значение во все строки, Вычислять — рассчитать выражением;
  • 🔍 Поле поиска для ссылочных реквизитов — по коду, наименованию, артикулу или ИНН;
  • 📝 Значение по умолчанию — для пустых ячеек.

Пример сопоставления для прайса поставщика:

Сопоставление полей
Артикул→Номенклатура.Артикул (поле поиска)
Наименование→Номенклатура.Наименование
Ед. изм.→Единица измерения (поиск по наименованию)
НДС→Ставка НДС (режим «Устанавливать», 20%)
Цена→Цена
Группа товара→Родитель (поиск по наименованию группы)

Ключ поиска решает всё

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

  1. Код или артикул — уникален, если в базе нет повторов.
  2. ИНН (для контрагентов) — надёжен, но у обособленных подразделений один ИНН на несколько карточек; добавляйте КПП.
  3. Наименование — самый ненадёжный: лишний пробел или другая кавычка, и появится второй элемент.

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

Режим «Вычислять»

В режиме Вычислять пишут выражение на встроенном языке. Значение ячейки доступно в переменной ТекущиеДанные, результат кладут в переменную Результат. Например, наценку 30% к закупочной цене из колонки 5 можно получить так:

Результат = Окр(Число(ТекущиеДанные["Колонка5"]) * 1.3, 2);

Имена переменных в выражении зависят от версии обработки — сверьте их с подсказкой на форме, прежде чем грузить весь файл.

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

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

Перед записью нажмите Контроль заполнения. Обработка пройдёт по строкам и выведет в окно сообщений строки, где что-то не нашлось или не преобразовалось, с номером строки файла. Встроенный помощник показывает то же самое цветом и счётчиками прямо в таблице сопоставления.

Разбор типичных сообщений:

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

Как проверить результат после загрузки

  • 🔎 Откройте список справочника, отберите элементы по дате создания или по группе и сверьте количество со строками файла.
  • 💰 В документе сравните сумму табличной части с итогом в Excel — расхождение в копейках обычно означает округление цены.
  • 🧾 Проверьте ставку НДС и счета учёта в нескольких строках: при загрузке номенклатуры они берутся из настроек по умолчанию, а не из файла.

7. Автоматический импорт из Excel по расписанию

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

  1. Сохранённая настройка обработки. Раз настроили — дальше открываете файл, загружаете настройку и жмёте Загрузить. Подходит, если формат файла не меняется.
  2. Своя внешняя обработка, зарегистрированная как дополнительная. Механизм дополнительных обработок в БСП позволяет назначить ей расписание, и она будет запускаться регламентным заданием без участия пользователя.
  3. Доработка в расширении конфигурации — когда загрузка часть бизнес-процесса и должна жить при обновлениях.

Основа любой программной загрузки — чтение файла в табличный документ:

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

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

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

Старый приём с Новый COMОбъект("Excel.Application") на сервере лучше не использовать: он требует установленного Excel, медленный и зависает на диалогах. Метод Прочитать табличного документа делает то же самое без Excel.

8. Особенности импорта в БП, УТ, ЗУП и нетиповые базы

Механика везде одна, различаются объекты и места команд:

КонфигурацияЧто обычно грузят из ExcelГде команда
Бухгалтерия предприятия 3.0Номенклатура, контрагенты, строки поступления и реализацииЗагрузить в списке справочника и на закладке Товары документа
Управление торговлей 11Номенклатура, строки заказов, поступлений, прайсыЗагрузить в списке и в табличной части, при её наличии
Зарплата и управление персоналом 3.1Суммы разовых начислений, показатели расчётаВстроенной загрузки нет в большинстве документов — используют обработку или внешнюю обработку заполнения
Самописные и старые конфигурацииЛюбые объектыТолько универсальная обработка или своя доработка

Пара тонкостей:

  • 🏷️ В УТ 11 у номенклатуры есть вид номенклатуры и, при включённых характеристиках, характеристики. Без указания вида строка не загрузится — задайте его в режиме Устанавливать.
  • 👥 В ЗУП сотрудника нельзя просто «загрузить в справочник»: кадровые данные появляются через документ приёма на работу. Загрузка в справочник Сотрудники создаст карточки без кадровой истории.
  • 💼 Начальные остатки по счетам из Excel в БП удобнее переносить через документы ввода остатков с загрузкой в их табличную часть, а не напрямую в регистры.

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

Можно ли загрузить из Excel документ целиком, с шапкой?
Встроенная загрузка заполняет только строки табличной части. Шапку — контрагента, склад, дату — заполняют вручную или своей обработкой.
Нужен ли установленный Microsoft Excel на компьютере?
Нет. Платформа 8.3 сама читает файлы xlsx. Excel нужен только для старых обработок, которые работают через COM-объект.
Как загрузить данные из Excel в 1С через веб-клиент или облако?
Работает копирование через буфер обмена в шаблон помощника или выбор файла в форме загрузки. Файл передаётся на сервер, локальные пути к папкам не нужны.
Сколько строк можно загрузить за раз?
Жёсткого лимита нет, но десятки тысяч строк лучше делить на части по 2–5 тысяч. Так проще найти ошибку и не держать долгую транзакцию.
Почему после загрузки цены в документе не совпадают с файлом?
Чаще всего документ пересчитал цену по типу цен из договора или изменил сумму из-за НДС «в том числе / сверху». Проверьте настройку цен в шапке документа.