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

· 10 мин

Содержание

Перенести Excel в 1С 8.3 проще всего встроенной командой Загрузить в списке справочника или в табличной части документа: в Бухгалтерии 3.0 и Управлении торговлей 11 она открывает форму, куда вставляется таблица из Excel, после чего программа сопоставляет колонки и создаёт или обновляет элементы. Для нетиповых объектов используют внешнюю обработку загрузки из табличного документа, для больших и регулярных переносов — обмен через XML или свою обработку с регламентным заданием.

Типичная ситуация: поставщик прислал прайс на 800 позиций, а накладная пришла в xlsx на 120 строк. Вбивать вручную — день работы и гарантированные опечатки. Импорт данных из Excel в 1С занимает 10–20 минут, если файл подготовлен правильно. Именно подготовка решает, загрузится таблица с первого раза или придётся чистить дубли.

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

Способов загрузить Excel в 1С пять. Они различаются тем, куда идут данные и как часто нужен перенос.

СпособКогда подходитРиски
1. Команда Загрузить в списке справочникаНоменклатура, контрагенты, разовая загрузкаДубли, если не настроен поиск по коду или артикулу
2. Загрузка в табличную часть документаНакладная, заказ, инвентаризация из xlsxСтроки без найденной номенклатуры пропускаются или создают новые элементы
3. Внешняя обработка загрузки из табличного документаЛюбые справочники, документы, регистры сведенийНужны права на внешние обработки, легко перезаписать реквизиты
4. Универсальный обмен данными в формате XMLПеренос между базами 1С по правиламНужны правила конвертации, Excel напрямую не читает
5. Своя обработка + регламентное заданиеЕжедневный прайс, выгрузка из сайта или складаТребует программиста и сопровождения

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

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

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

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

  1. 📄 Одна строка заголовков, данные начинаются сразу под ней. Шапку документа, логотип и подписи удалите.
  2. 🧱 Никаких объединённых ячеек. Выделите лист и снимите объединение.
  3. ➖ Без пустых строк внутри таблицы и без строк «Итого» — 1С примет их за позиции.
  4. 🔢 Одна колонка — один реквизит: артикул отдельно, наименование отдельно, единица отдельно.

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

  • 🔤 ИНН, КПП, артикулы и штрихкоды храните как текст. Иначе Excel срежет ведущий ноль у ИНН 0274... или превратит штрихкод в 4,6E+12.
  • 💰 Цены и количества — числа, без пробелов-разделителей и без «руб.» в ячейке. Разделитель дробной части должен совпадать с региональными настройками.
  • 📅 Даты — в формате даты, а не текстом «12 марта».
  • ✂️ Лишние пробелы уберите формулой =СЖПРОБЕЛЫ(A2), затем скопируйте колонку и вставьте как значения.
  • 🧮 Формулы замените значениями: выделите таблицу, Копировать, Специальная вставка → Значения.

Ключ поиска. Решите заранее, по какому полю 1С будет искать существующие элементы: артикул, код, ИНН или штрихкод. Колонка ключа должна быть заполнена у всех строк и не содержать повторов. Проверить повторы можно условным форматированием «Повторяющиеся значения».

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

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

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

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

Загрузка в справочник (номенклатура, контрагенты)

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

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

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

Если в файле поставщика наименования отличаются от ваших («Бумага А4 Снегурочка 500л» против «Бумага офисная А4»), автоматическое сопоставление по наименованию создаст новые карточки. Сопоставляйте по артикулу или штрихкоду, а остальное правьте вручную на шаге сопоставления.

Внешняя обработка «Загрузка данных из табличного документа»

Когда у объекта нет встроенной команды загрузки (нетиповой справочник, регистр сведений , табличная часть доработанного документа), используют универсальную внешнюю обработку. Её файл с расширением .epf распространяется для пользователей с сопровождением 1С, есть версии для обычных и управляемых форм. Для интерфейса «Такси» нужна версия под управляемые формы.

Как открыть обработку:

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

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

  1. Выберите режим загрузки: в справочник, в табличную часть или в регистр сведений.
  2. Укажите вид объекта, например справочник «Номенклатура».
  3. На закладке табличного документа откройте файл Excel или вставьте данные из буфера.
  4. На закладке настроек задайте для каждого реквизита номер колонки или фиксированное значение. Например, «Вид номенклатуры» = «Товар» для всех строк.
  5. Отметьте реквизит, по которому искать существующие элементы, и флажок «Не создавать новых», если нужно только обновить.
  6. Нажмите Контроль заполнения: обработка подсветит строки, где значения не найдены.
  7. Сохраните настройки в файл, чтобы при следующей загрузке не настраивать колонки заново.
  8. Нажмите Загрузить.

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

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

Сопоставление — шаг, на котором решается качество импорта. Проверяйте три вещи.

Ссылочные реквизиты. Колонки «Единица», «Ставка НДС», «Группа», «Страна» в 1С — ссылки на другие справочники или перечисления. Текст из Excel должен совпадать с наименованием в 1С: «шт» найдётся, «шт.» с точкой — может не найтись. Ставку НДС пишите так, как она называется в программе, например «20%».

Ключ поиска. Для номенклатуры надёжнее артикул или код, для контрагентов — ИНН. Поиск по наименованию оставляйте на крайний случай.

Пустые колонки. Не сопоставляйте колонку, которую не хотите менять. Иначе пустые ячейки затрут реквизит у существующих элементов.

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

Сопоставление полей
Артикул→Номенклатура.Артикул (ключ поиска)
Наименование→Номенклатура.Наименование
Ед. изм.→Единица измерения (справочник единиц)
НДС→Ставка НДС
Группа→Родитель (группа номенклатуры)
Цена закупки→Цена в табличной части документа

Прогоните загрузку на 10–20 строках, проверьте 2–3 созданные карточки и только потом грузите весь файл. Ошибку в сопоставлении проще увидеть на десятке элементов, чем на восьмистах.

Перенос через «Универсальный обмен данными в формате XML»

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

Когда этот путь оправдан:

  • 🔁 данные из Excel уже однажды загружены в одну базу и их надо разнести ещё по нескольким;
  • 🏢 переносите справочники при переходе со старой конфигурации на новую, а часть данных хранится в таблицах;
  • 📦 нужен перенос со связанными объектами: номенклатура вместе с единицами, видами и ценами.

Схема работы:

  1. Загрузите Excel в базу-источник способами 1–3 выше (подойдёт и копия базы).
  2. В базе-источнике откройте обработку универсального обмена, на закладке выгрузки укажите файл правил и файл данных .xml, отметьте нужные правила выгрузки и запустите.
  3. В базе-приёмнике откройте ту же обработку, на закладке загрузки выберите полученный .xml и загрузите.
  4. Проверьте протокол обмена: в нём видно, какие объекты созданы, а какие не найдены.

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

Если данные из Excel не загрузились в 1С

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

Если ни одна подсказка не подошла, сохраните лист Excel как .csv или вставьте данные через буфер обмена прямо в форму загрузки. Так отсекается проблема формата файла: остаётся только сопоставление колонок.

Автоматизация регулярной загрузки и выгрузки

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

Основа — чтение файла средствами платформы. Начиная с версии 8.3.6 объект ТабличныйДокумент умеет читать .xlsx методом Прочитать(). Excel на сервере для этого не нужен, в отличие от старого способа через COM-объект Excel.Application.

Пример чтения файла и обхода строк:

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

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

Дальше логика зависит от задачи: найти номенклатуру по артикулу, записать цены документом установки цен, создать заказ.

Как запускать по расписанию:

  • ⏰ Регламентное задание в доработанной конфигурации или в расширении. Расширения конфигурации доступны с версии 8.3.6 и не снимают базу с поддержки.
  • 📂 Файл кладут в общую папку, к которой есть доступ у пользователя, от имени которого работает сервер 1С. Для файловой базы задание выполняется, только пока открыт хотя бы один сеанс или запущен сервис регламентных заданий.
  • 🧾 Обработка пишет протокол: сколько строк загружено, какие пропущены и почему. Без протокола ошибки в данных незаметно накапливаются.

Обратная задача — выгрузка из 1С в Excel. Любой отчёт или список сохраняется в xlsx через Файл → Сохранить как или кнопку сохранения в форме отчёта. Программно табличный документ записывается методом Записать() с типом файла ТипФайлаТабличногоДокумента.XLSX.

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

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

Можно ли загрузить из Excel начальные остатки?
Да. В Бухгалтерии 3.0 для этого есть помощник ввода начальных остатков: в его документах по разделам учёта тоже есть загрузка табличной части. Остатки по каждому счёту вводятся отдельным документом.
Сколько строк можно загрузить за один раз?
Жёсткого лимита у механизма нет. На практике несколько тысяч строк загружаются за минуты; файлы на десятки тысяч строк удобнее делить на части по 3–5 тысяч, чтобы ошибка не останавливала всю загрузку.
Как загрузить картинки товаров из Excel?
Картинки, вставленные в ячейки Excel, штатная загрузка не переносит. Сохраните изображения файлами с именем по артикулу и прикрепите их к карточкам отдельной обработкой или вручную.
Загрузка работает в облачной 1С через браузер?
Да, встроенная команда загрузки работает и в веб-клиенте: файл выбирается на компьютере пользователя или данные вставляются через буфер. Внешние обработки в облачных сервисах часто ограничены политикой провайдера.
Можно ли отменить загрузку, если всё пошло не так?
Кнопки отмены нет. Созданные элементы помечают на удаление и удаляют, изменённые реквизиты восстанавливают из резервной копии. Поэтому перед крупной загрузкой копия базы обязательна.