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

· 10 мин

Содержание

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

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

Подготовка Excel-файла перед загрузкой в 1С

1С читает файл как табличный документ: строки и колонки, без формул, фильтров и форматирования. Чем проще лист, тем меньше ошибок.

Что сделать с файлом:

  • 📄 Оставьте один лист с данными. Остальные листы удалите или вынесите в отдельный файл.
  • 🔠 Первая строка — заголовки колонок, данные со второй строки. Никаких шапок «Прайс-лист ООО Ромашка» над таблицей.
  • 🧩 Разъедините объединённые ячейки. Объединение сдвигает значения, и 1С читает пустоту.
  • 🧮 Формулы замените значениями: выделите колонку, скопируйте и вставьте как значения.
  • 🔢 Числа приведите к одному виду: без пробелов-разделителей тысяч, дробная часть через запятую, без «руб.» в ячейке.
  • 0️⃣ ИНН, КПП, артикулы и штрихкоды с ведущими нулями задайте в Excel текстовым форматом, иначе 0012345 превратится в 12345.
  • ✂️ Уберите пробелы в начале и конце наименований (функция СЖПРОБЕЛЫ в Excel).
  • 🧹 Удалите пустые строки внутри таблицы и итоговую строку «Итого» в конце.

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

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

Что грузимПоле для поискаОбязательные колонки
НоменклатураАртикулНаименование, единица измерения
КонтрагентыИНН (+ КПП для филиалов)Наименование, ИНН
Товары в документАртикул или наименованиеНоменклатура, количество, цена
ЦеныАртикулНоменклатура, цена

Загрузка из Excel в 1С командой «Загрузить» в списках и документах

В Бухгалтерии 3.0, УТ 11 и других конфигурациях на свежей библиотеке стандартных подсистем загрузка из файла уже встроена. Ничего скачивать не надо.

Справочник: номенклатура, контрагенты

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

Табличная часть документа

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

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

Обработка «Загрузка данных из табличного документа»: как загрузить таблицу Excel туда, где нет кнопки

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

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

  1. Откройте обработку через главное меню: Файл → Открыть и выберите .epf.
  2. Укажите режим: загрузка в справочник, в табличную часть объекта или в регистр сведений .
  3. Выберите вид объекта, например Справочник.Номенклатура.
  4. На закладке с табличным документом откройте файл Excel или вставьте данные через Ctrl+V.
  5. На закладке настройки колонок отметьте реквизиты, которые загружаете, и укажите для каждого номер колонки в файле.
  6. Отметьте поле поиска: по нему обработка найдёт существующий элемент вместо создания нового.
  7. Укажите номер первой строки с данными (обычно 2, если в первой — заголовки).
  8. Запустите контроль заполнения, если он есть в вашей версии обработки, и только потом загрузку.

Для реквизитов-ссылок (единица измерения, ставка НДС, группа) обработка ищет значение в базе по тексту ячейки. Если в Excel написано «шт.», а в 1С элемент называется «шт», ссылка останется пустой. Приведите написание к тому, что в справочнике.

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

Первую загрузку в рабочую базу делайте только после пробы на копии. Обработка пишет данные напрямую, и откатить сотню созданных элементов кнопкой «Отменить» нельзя.

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

Копирование подходит для небольших таблиц и разовых задач.

Что работает:

  • 📋 Вставка в табличный документ внутри обработки или формы загрузки. Выделите диапазон в Excel, Ctrl+C, затем щелчок по первой ячейке в 1С и Ctrl+V. Колонки и строки сохранятся.
  • 📋 Вставка одного значения в поле формы: наименование, ИНН, комментарий.

Что не работает :

  • ❌ Вставка блока из 50 строк прямо в табличную часть документа. Обычная табличная часть принимает только одно значение в текущую ячейку.
  • ❌ Копирование ячеек с формулами из закрытой книги-источника: вставятся значения, которые Excel успел вычислить, или ошибки #ССЫЛКА!.

Если 1С при вставке склеила всё в одну колонку, данные в Excel, скорее всего, лежат одной строкой текста с разделителями. Разбейте их в Excel через Данные → Текст по столбцам и скопируйте заново.

Импорт через XML и универсальный обмен: когда это оправдано

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

Как устроен этот способ:

  1. В источнике данные выгружают в XML обработкой «Универсальный обмен данными в формате XML» по правилам обмена.
  2. Правила обмена описывают, какой объект источника в какой объект приёмника превращается. Их готовят в конфигурации «Конвертация данных ».
  3. В приёмнике той же обработкой загружают файл.

Для Excel это имеет смысл в одном случае: внешняя программа отдаёт данные и в Excel, и в XML, а вам нужен регулярный перенос со сложной структурой — документы с табличными частями, связанные справочники. Тогда разработчик один раз пишет правила, и дальше обмен идёт без ручного сопоставления колонок.

Обратная задача — выгрузить табличный документ из 1С в Excel — решается проще. Любой отчёт или печатную форму сохраните через значок дискеты на панели формы или Ctrl+S и выберите тип «Лист Excel 2007-…» (.xlsx). Такую выгрузку удобно использовать как шаблон: выгрузили список номенклатуры, дописали цены, загрузили обратно с поиском по артикулу.

СпособКогда подходитРиски
Команда «Загрузить»Справочники и товары в документах типовых конфигурацийНет кнопки в нужном объекте
Обработка табличного документаЛюбой справочник, табличная часть, регистр сведенийПрямая запись, легко наплодить дубли
Буфер обменаДо сотни строк, разовоРучная работа, ошибки при сдвиге колонок
XML с правилами обменаРегулярный перенос сложных данныхНужен разработчик и правила
Своя обработка или расширениеПовторяющийся файл одного форматаПоддержка кода после обновлений

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

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

  • 🔐 Права. Открыть внешнюю обработку может пользователь с правом на интерактивное открытие внешних обработок. Обычно это администратор.
  • 🛡️ Защита от опасных действий. Платформа предупредит, что файл может быть небезопасен. Запускайте только обработки из известного источника.
  • 🧪 Совместимость. Обработка, написанная под обычные формы, в Такси может не открыться или работать с ошибками.

Расширение конфигурации (файл .cfe, доступно с платформы 8.3.6) подходит, когда загрузку нужно встроить прямо в интерфейс: кнопка в документе, своя команда в разделе. Расширение переживает обновления типовой конфигурации лучше, чем доработка самой конфигурации.

Подключают расширение в пользовательском режиме через Администрирование → Печатные формы, отчеты и обработки → Расширения. В Конфигураторе загрузка .cfe и обновление конфигурации базы данных — два отдельных шага.

Программная загрузка таблицы Excel в 1С и автоматизация

Своя обработка нужна, когда файл приходит регулярно в одном формате. Основа — объект ТабличныйДокумент: он читает .xlsx без установленного Excel. Старый способ через COMОбъект("Excel.Application") требует Excel на компьютере, работает только под Windows и медленный.

Пример: прочитать файл и создать или обновить номенклатуру по артикулу. Колонка A — артикул, B — наименование, данные со второй строки.

&НаСервере
Процедура ЗагрузитьНоменклатуруНаСервере(АдресФайла)

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

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

    Создано = 0;
    Обновлено = 0;

    Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл

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

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

        Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);

        Если Ссылка.Пустая() Тогда
            Объект = Справочники.Номенклатура.СоздатьЭлемент();
            Объект.Артикул = Артикул;
            Создано = Создано + 1;
        Иначе
            Объект = Ссылка.ПолучитьОбъект();
            Обновлено = Обновлено + 1;
        КонецЕсли;

        Объект.Наименование = Наименование;
        Объект.Записать();

    КонецЦикла;

    УдалитьФайлы(ИмяФайла);

    Сообщить(СтрШаблон("Создано: %1, обновлено: %2",
        Формат(Создано, "ЧГ=0"), Формат(Обновлено, "ЧГ=0")));

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

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

Что учесть в реальной обработке:

  • 🔢 Числа из ячеек приходят текстом. Перед Число() уберите пробелы и неразрывные пробелы, точку замените на запятую, а преобразование оберните в Попытка.
  • 📅 Даты читайте так же: текст ячейки зависит от формата в Excel.
  • 🧾 Записать() не запускает проверку заполнения формы. Обязательные для учёта реквизиты (вид номенклатуры, единица) заполните в коде сами.
  • 🔁 Для тысяч строк оберните запись в транзакцию порциями, чтобы сбой на строке 4000 не оставил базу в половинчатом состоянии.

Автоматизация. Если поставщик кладёт прайс в общую папку, код загрузки выносят в регламентное задание: по расписанию оно проверяет папку, загружает новый файл и переносит его в архив. В файловой базе регламентные задания выполняются только при работающем сеансе, поэтому для надёжной автоматизации нужна клиент-серверная база .

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

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

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

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

Нужен ли установленный Excel, чтобы загрузить файл в 1С?
Нет. Платформа 8.3 читает .xlsx сама через табличный документ. Excel нужен только для старых обработок, которые работают через COM-объект.
Можно ли загрузить в 1С файл CSV?
Да. Встроенная загрузка и табличный документ открывают CSV. Проверьте разделитель и кодировку: если вместо букв видите «кракозябры», пересохраните файл в Excel как CSV в UTF-8 или сразу как .xlsx.
Как загрузить остатки из Excel на начало работы в 1С?
Создайте документ ввода начальных остатков на нужном разделе учёта и загрузите товары в его табличную часть кнопкой Загрузить. Номенклатуру лучше загрузить в справочник заранее, отдельной операцией.
Работает ли загрузка из Excel в облачной 1С через браузер?
Да, встроенная команда Загрузить работает и в веб-клиенте. А вот запуск сторонних внешних обработок в облачных сервисах обычно ограничен, его разрешает провайдер.
Сколько строк можно загрузить за раз?
Жёсткого лимита у встроенной загрузки нет, ограничивает память и время. Большие файлы на десятки тысяч строк удобнее делить на части, чтобы при ошибке не начинать заново.