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

· 10 мин

Содержание

Вставить данные из Excel в 1С 8.3 проще всего через встроенную загрузку: откройте список справочника (например, Справочники → Товары и услуги → Номенклатура в 1С:Бухгалтерии 3.0) или табличную часть документа, нажмите команду «Загрузить», скопируйте строки в Excel через Ctrl+C и вставьте их в открывшуюся таблицу через Ctrl+V. Дальше программа сама предложит сопоставить колонки, найдёт уже существующие элементы и покажет, что создано, что обновлено, а что не загрузилось.

Механизм входит в типовые конфигурации на управляемых формах: Бухгалтерию 3.0, ЗУП 3.1, УТ 11, КА и ERP. Внешние обработки и программирование нужны только для нестандартных объектов и регулярного обмена.

1. Готовим файл Excel, чтобы загрузка прошла с первого раза

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

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

  • 📋 Одна строка заголовков. Шапка в одну строку, без объединённых ячеек сверху, без «шапки отчёта» с датой и названием фирмы.
  • 🧱 Без объединённых ячеек в данных. Объединение ломает разбор строк: значение попадает только в первую строку блока.
  • 🔢 Числа — числами. Цена «1 250,00 руб.» не загрузится в числовое поле. Уберите текст валюты, лишние пробелы-разделители, проверьте десятичный разделитель (запятая).
  • 🧮 Формулы — в значения. Если колонка считается формулой, скопируйте её и вставьте как значения (Специальная вставка → Значения). Иначе при ошибке ссылки в 1С уйдёт #ЗНАЧ!.
  • ✂️ Лишние пробелы. «Гвоздь 50 » с пробелом в конце 1С посчитает новым товаром. В Excel помогает функция СЖПРОБЕЛЫ().
  • 🆔 ИНН, КПП, артикулы с ведущими нулями — текстом. Excel превращает «0274051582» в число 274051582. Задайте колонке текстовый формат до ввода данных.
  • 📅 Даты — в формате ДД.ММ.ГГГГ, без времени, если оно не нужно.
  • 📐 Единицы измерения и ставки НДС пишите так, как они называются в 1С: «шт», а не «штук»; «20%», а не «0,2».

Загружайте частями. Первую партию сделайте из 5–10 строк, проверьте результат в карточках и только потом заливайте остальные 3000.

Какие колонки обычно нужны:

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

2. Где в 1С находится загрузка из Excel и как её открыть

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

Где искать в 1С:Бухгалтерии 3.0:

  1. Справочник номенклатуры: Справочники → Товары и услуги → Номенклатура, кнопка «Загрузить» в командной панели списка.
  2. Контрагенты: Справочники → Покупки и продажи → Контрагенты, та же команда.
  3. Табличная часть документа: откройте, например, поступление или реализацию, перейдите на закладку «Товары» — над таблицей есть кнопка «Загрузить».

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

Загрузка в справочник создаёт и меняет реальные элементы. Перед первой загрузкой в рабочую базу сделайте резервную копию (выгрузка .dt или копия каталога файловой базы). Откатить тысячу созданных карточек вручную долго.

Вставка через буфер обмена

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

  1. В Excel выделите диапазон данных без строки заголовков (или с ней, если порядок колонок совпадает — тогда шапку потом удалите).
  2. Нажмите Ctrl+C.
  3. В 1С щёлкните в первую ячейку первой колонки и нажмите Ctrl+V.
  4. Проверьте, что данные встали в свои колонки. Если порядок колонок в Excel другой, переставьте колонки в Excel и вставьте заново — это быстрее, чем править по одной ячейке.
  5. Нажмите «Далее».

Загрузка из файла целиком

В той же форме есть команда загрузки из файла: можно выбрать .xlsx, .xls, .ods, .csv или .mxl. Этот путь удобен для больших таблиц — буфер обмена на десятках тысяч строк работает медленно.

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

Если вы грузите файл, а не вставляете в готовую таблицу, программа попросит указать, какая колонка Excel соответствует какому реквизиту. Названия колонок 1С пытается сопоставить сама по заголовкам. Где не угадала — выберите поле вручную.

Сопоставление полей
Наименование товара→Наименование
Код поставщика→Артикул
Ед.→Единица измерения
НДС→Ставка НДС
Цена без НДС→Цена

Тонкие места сопоставления:

  • 🔗 Ссылочные поля (единица, ставка НДС, группа) 1С ищет по представлению. Текст в Excel должен совпасть с названием элемента в справочнике символ в символ.
  • 🗂️ Группа (папка) справочника. Чтобы элементы легли в нужную папку, выделите её в списке перед нажатием «Загрузить» или задайте группу в форме загрузки, если такое поле есть.
  • 🚫 Лишние колонки не сопоставляйте — оставьте пустыми. Они просто не загрузятся.

Если одна и та же раскладка колонок используется регулярно (прайс от постоянного поставщика), приведите шаблон Excel к порядку колонок 1С один раз и храните как образец. Тогда каждая следующая загрузка — это Ctrl+C / Ctrl+V.

4. Как 1С находит существующие элементы и когда создаёт новые

Главная развилка любой загрузки: строка из Excel — это новый элемент или обновление старого. Ошибка здесь даёт дубли, поэтому разберитесь с ней до нажатия «Загрузить данные».

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

Как поступить с каждым случаем:

Результат поискаЧто сделать
Найден один элементОставить сопоставление — реквизиты элемента будут обновлены
Найдено несколько (неоднозначно)Выбрать нужный элемент вручную в строке
Не найденРазрешить создание нового или выбрать существующий вручную

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

Обновление существующих элементов перезапишет их реквизиты значениями из Excel. Если в файле колонка «Ставка НДС» пустая, а в карточке ставка была, проверьте результат на пробной партии: поведение при пустой ячейке лучше увидеть на 5 строках, чем на 500.

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

  1. Сначала загрузите только то, чего точно нет в базе, — с созданием новых.
  2. Обновление цен и реквизитов делайте отдельной загрузкой, где новые элементы не создаются.

Так опечатка в наименовании не породит дубль: строка просто останется несопоставленной, и вы её увидите.

Загрузка в документ

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

5. Протокол загрузки: что пошло не так и как это исправить

После загрузки форма показывает итог по каждой строке: создан, обновлён, пропущен, ошибка. Не закрывайте её сразу — это единственное место, где видно, какие именно строки не попали в базу.

Типовые причины и решения:

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

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

  • 🔍 Откройте 3–4 карточки, созданные из разных частей файла: начало, середину, конец.
  • 📊 Сравните количество: строк в Excel, «создано + обновлено» в протоколе, новых элементов в списке (отбор по дате создания или по папке).
  • 🧾 В документе сверьте итог суммы с итогом колонки в Excel.

6. Другие способы загрузки из Excel в 1С и автоматизация

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

СпособКогда подходитОграничения
Встроенная «Загрузка данных из файла»Номенклатура, контрагенты, товары в документахТолько объекты, где команда есть
Внешняя обработка загрузки из табличного документаЛюбой справочник, документ или регистр сведенийНужны права на внешние обработки, аккуратная настройка
Открыть Excel в 1С как табличный документПосмотреть файл, сохранить в .mxlСам по себе ничего не загружает
Своя обработка на встроенном языкеРегулярная загрузка одного и того же форматаНужен программист
Обмен через EnterpriseData, КДПеренос между базами 1СExcel не участвует

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

Универсальная обработка загрузки из табличного документа распространяется через ИТС и у франчайзи. Открывают её через главное меню: Файл → Открыть, выбрать файл .epf. При первом запуске программа может предупредить о безопасности — разрешить открытие внешних обработок может администратор в настройках пользователей и прав.

Чем она удобнее встроенной: вы сами выбираете объект (любой справочник, документ, регистр), колонку для поиска существующих элементов и режим «искать/создавать». Риск тот же — дубли и перезапись, поэтому сначала пробная партия.

Своя обработка на встроенном языке

Платформа 8.3 умеет читать .xlsx в табличный документ методом Прочитать(). Excel на компьютере для этого не нужен. Вот минимальный пример: читаем файл и проходим строки со второй (первая — заголовки).

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

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

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

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

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

        Объект.Наименование = Наименование;
        Объект.Артикул      = Артикул;
        Объект.Записать();
    КонецЦикла;

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

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

Файл на клиенте предварительно помещают во временное хранилище (НачатьПомещениеФайлаНаСервер или ПоместитьФайл), адрес передают в процедуру. В типовой конфигурации у номенклатуры есть обязательные реквизиты (вид номенклатуры, единица) — их нужно заполнить до Записать(), иначе запись упадёт с ошибкой.

Для разовой загрузки свой код писать невыгодно. Он окупается, когда один и тот же поставщик присылает прайс каждую неделю.

Связь с открытым Excel через COM

Старый приём — Новый COMОбъект("Excel.Application") — работает только на Windows с установленным Excel и только там, где выполняется код. На сервере 1С под Linux и в веб-клиенте он не сработает. Для новых разработок берите чтение через табличный документ.

7. Частые ошибки при переносе таблиц из Excel

Эти ошибки не про формат ячеек, а про порядок работы:

  • ❌ Загрузка сразу в рабочую базу всего файла. Пробная партия 5–10 строк, затем остальное.
  • ❌ Создание новых и обновление в одном проходе на «грязном» файле. Даёт дубли, которые потом приходится объединять.
  • ❌ Загрузка документа до справочника. Товары, которых нет в номенклатуре, в документ не встанут.
  • ❌ Разные названия одной единицы в файле: «шт», «шт.», «штука». Приведите к одному виду до загрузки.
  • ❌ Перезапуск загрузки после частичной ошибки с тем же файлом и с созданием новых. Уже загруженные строки задвоятся, если поиск по ключу не сработает. Удалите из файла загруженные строки или отключите создание новых.

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

Можно ли вставить данные из Excel в 1С без обработок и программиста?
Да. В типовых конфигурациях на управляемых формах есть встроенная команда «Загрузить» в списках справочников и в табличных частях документов. Данные вставляются через Ctrl+V.
Нужен ли установленный Excel, чтобы загрузить файл .xlsx в 1С 8.3?
Нет. Платформа 8.3 читает .xlsx сама. Excel нужен только если загрузка устроена через COM-объект.
Как загрузить остатки из Excel?
Сначала загрузите номенклатуру и контрагентов в справочники. Затем создайте документ ввода остатков и заполните его табличную часть через загрузку, если она там доступна, или вставкой из буфера.
Почему при вставке через Ctrl+V всё попадает в одну колонку?
Вы скопировали не диапазон ячеек, а текст из одной ячейки или из редактора. Выделите в Excel именно диапазон ячеек и скопируйте его заново.
Можно ли так загрузить картинки товаров?
Нет, загрузка из табличного файла переносит только значения ячеек. Изображения прикрепляют к карточкам отдельно или своей обработкой.