Загружаем таблицу из Excel в базу 1С 8.3: четыре рабочих способа
Содержание
Быстрее всего подгрузить Excel в 1С через встроенную команду «Загрузить» в списке справочника или в табличной части документа: выбираете файл .xlsx, сопоставляете колонки с реквизитами и жмёте загрузку. Если такой команды нет, подойдёт внешняя обработка «Загрузка данных из табличного документа» с диска ИТС, которую открывают через Файл → Открыть.
Обычно задача звучит так: есть прайс поставщика, список контрагентов или остатки на 2 000 строк, и вбивать их руками не хочется. Выбор способа зависит от трёх вещей: есть ли в вашей конфигурации встроенная загрузка, разовая это операция или регулярная, и куда идут данные — в справочник, документ или регистр.
Подготовка таблицы Excel перед импортом в 1С
Большая часть проблем с загрузкой рождается в самом файле: лишняя шапка, текст вместо чисел, объединённые ячейки. Чистая таблица избавит от ручной правки сотен элементов после.
Приведите лист к простому виду:
- 📄 Одна строка — одна запись. Никаких шапок на три строки, подытогов и пустых строк-разделителей внутри данных.
- 🔗 Без объединённых ячеек. Объединение ломает нумерацию колонок, и данные съезжают.
- 🏷️ Заголовки в первой строке. Короткие и понятные: «Артикул», «Наименование», «Цена», «Ед. изм.».
- 🔢 Числа — числами. Цена
1 250,50с неразрывным пробелом Excel может хранить как текст. Уберите пробелы через «Найти и заменить» и задайте формат «Числовой». - 📅 Даты — датами. Строка «05.03.2026» в текстовом формате загрузится как пустая дата.
- 0️⃣ Ведущие нули. Артикулы вида
00125, ИНН и коды ОКВЭД делайте текстовыми, иначе Excel срежет нули. - 👁️ Скрытые строки и фильтры. Снимите фильтр и покажите скрытое: обработка видит все строки, а не только видимые.
Сохраните файл в формате .xlsx. Старый .xls 1С тоже читает, но с ним чаще бывают сюрпризы с кодировкой и большими объёмами.
Сделайте отдельный столбец с ключом поиска: артикул для номенклатуры, ИНН для контрагентов. По нему 1С найдёт уже существующий элемент и не создаст дубль.
Встроенная загрузка из файла в типовых конфигурациях
В актуальных релизах Бухгалтерии 3.0, УТ 11, ЗУП 3.1 и других конфигурациях на БСП загрузка из Excel встроена. Отдельная обработка не нужна.
Где искать команду:
| Что загружаем | Где команда |
|---|---|
| Номенклатура, контрагенты и другие справочники | Форма списка справочника → кнопка «Загрузить» в командной панели или в меню «Ещё» |
| Товары в документ (поступление, реализация, заказ) | Табличная часть документа → кнопка «Загрузить» над таблицей или в её меню «Ещё» |
| Цены в установку цен | Табличная часть документа установки цен → та же команда загрузки |
Набор объектов с этой командой зависит от конфигурации и релиза. Если в списке справочника её нет — переходите к обработке из следующего раздела.
Как проходит загрузка
- Нажмите «Загрузить». Откроется окно с пустой таблицей-шаблоном.
- Скопируйте строки из Excel и вставьте в шаблон через
Ctrl+Vлибо выберите файл кнопкой загрузки из файла. Подходят.xlsx,.xls,.ods,.csv,.mxl. - Нажмите «Далее». 1С сопоставит колонки с реквизитами по заголовкам. Проверьте, что «Артикул» попал в артикул, а не в наименование.
- На шаге сопоставления программа покажет, какие строки нашла в базе, а какие создаст новыми. Строки с ошибками будут подсвечены.
- Исправьте несопоставленные значения вручную прямо в таблице или вернитесь в файл.
- Нажмите «Загрузить» и дождитесь итогового отчёта.
Перед первой загрузкой в рабочую базу сделайте её копию. Отменить импорт одной кнопкой нельзя: тысячу созданных элементов придётся помечать на удаление вручную.
Этот способ хорош тем, что учитывает логику конфигурации: заполняет обязательные реквизиты, проверяет ставки НДС и единицы измерения.
Обработка «Загрузка данных из табличного документа»
Классический инструмент для случаев, когда встроенной команды нет или нужно загрузить данные в нетиповой справочник, регистр сведений или табличную часть.
Обработка распространяется с диском ИТС и в каталоге стандартных обработок. Для 8.3 с управляемыми формами берите версию для управляемого приложения. Файл называется ЗагрузкаДанныхИзТабличногоДокумента.epf или похоже.
Порядок работы
- Откройте обработку:
Главное меню (☰) → Файл → Открытьи выберите.epf. Если пункта «Открыть» нет, у пользователя не хватает прав на внешние обработки — нужна роль администратора или отдельное право. - Выберите режим загрузки: в справочник, в табличную часть документа или в регистр сведений.
- Укажите вид объекта, например справочник «Номенклатура».
- На вкладке табличного документа откройте файл Excel или вставьте данные из буфера.
- Укажите номер первой строки с данными. Если заголовки в строке 1, данные начинаются со строки 2.
- Перейдите к настройкам колонок. Для каждого реквизита задайте:
- галочку загрузки — грузить реквизит или нет;
- номер колонки Excel, откуда брать значение;
- режим: искать по колонке, устанавливать значение по умолчанию или вычислять выражением;
- поле поиска — по нему обработка ищет существующий элемент.
- Сначала выполните контроль заполнения. Обработка пометит строки, где не нашлось ссылочное значение или не прошло преобразование типа.
- После исправления ошибок запустите загрузку.
Настройки колонок можно сохранить в файл и переиспользовать для следующего прайса того же поставщика.
Если колонки «Единица измерения» в файле нет, задайте для реквизита значение по умолчанию, например «шт». Так обязательное поле заполнится у всех строк сразу.
Внешние источники данных: когда Excel нужно читать регулярно
Если таблица обновляется каждый день — остатки на складе партнёра, курсы, график выпуска — ручная загрузка утомляет. Здесь помогает механизм внешних источников данных платформы 8.3. Он подключает файл Excel к 1С как таблицу базы данных через ODBC.
Как это устроено:
- В Конфигураторе в ветке «Общие» создаётся объект «Внешний источник данных». Это изменение конфигурации, на поддержке его делают с включённой возможностью изменения.
- В источнике описывается таблица: какие колонки листа читаются и с какими типами.
- В режиме Предприятия задаётся строка подключения через ODBC-драйвер Excel:
Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=C:\Обмен\ostatki.xlsx;
- После этого данные листа читаются запросом, как обычная таблица, и их можно переносить в справочники или регистры регламентным заданием.
Чего ждать на практике:
- 🖥️ Драйвер ставится там, где работает код. В клиент-серверной базе — на сервере 1С, а не у пользователя.
- ⚙️ Разрядность должна совпадать. 64-битному серверу 1С нужен 64-битный драйвер (пакет Microsoft Access Database Engine). Несовпадение разрядности — частая причина ошибки «источник данных не найден».
- 📁 Путь к файлу виден серверу. Сетевая папка должна быть доступна учётной записи, от которой запущена служба 1С.
- 🔒 Файл не должен быть открыт с блокировкой в момент чтения.
Способ требует навыков разработчика и доступа к Конфигуратору. Для разовой загрузки он избыточен.
Отличия между версиями платформы и интерфейсами
От версии платформы зависит, каким инструментом и каким кодом читать Excel.
| Ситуация | Что работает | На что смотреть |
|---|---|---|
| Платформа 8.3, управляемые формы, «Такси» | Встроенная загрузка, обработка для управляемых форм | Обработка для обычных форм не откроется в тонком клиенте |
| Платформа 8.3, номер версии не ниже 8.3.6 | Чтение .xlsx средствами самой платформы | Excel на компьютере не нужен |
| Платформа ниже 8.3.6 или обычные формы 8.2 | Чтение через COM-объект Excel.Application | Нужен установленный Excel, только Windows, медленно на больших файлах |
| Сервер 1С на Linux | Чтение средствами платформы | COM недоступен в принципе |
Программное чтение файла
Если пишете свою обработку, на 8.3 удобнее всего прочитать файл в табличный документ. Метод Прочитать выполняется на сервере, поэтому файл сначала передают на сервер через временное хранилище.
&НаСервереБезКонтекста
Функция ПрочитатьПрайс(АдресФайла)
ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
ДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла);
ДанныеФайла.Записать(ИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Артикул");
Результат.Колонки.Добавить("Наименование");
Результат.Колонки.Добавить("Цена");
// Строка 1 — заголовки, данные начинаются со второй
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Стр = Формат(НомерСтроки, "ЧГ=0");
Артикул = СокрЛП(ТабДок.Область("R" + Стр + "C1").Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = Результат.Добавить();
НоваяСтрока.Артикул = Артикул;
НоваяСтрока.Наименование = СокрЛП(ТабДок.Область("R" + Стр + "C2").Текст);
НоваяСтрока.Цена = ТабДок.Область("R" + Стр + "C3").Значение;
КонецЦикла;
УдалитьФайлы(ИмяФайла);
Возврат Результат;
КонецФункции
На клиенте файл помещают в хранилище методом НачатьПомещениеФайлаНаСервер или ПоместитьФайл в зависимости от режима использования модальности. Дальше полученную таблицу значений разбирают: ищут номенклатуру по артикулу и создают недостающие элементы.
Формат(НомерСтроки, "ЧГ=0") нужен, чтобы номер 1000 не превратился в строку «1 000» с пробелом и адрес ячейки не сломался.
Перенос через универсальный обмен данными в формате XML
Обработка «Универсальный обмен данными в формате XML» переносит данные между базами 1С по правилам, созданным в конфигурации «Конвертация данных ». Excel она напрямую не читает.
Когда этот путь всё же имеет смысл:
- 🔁 данные из Excel нужно разнести сразу в несколько баз с разными конфигурациями;
- 🧩 у вас уже есть промежуточная база, куда Excel грузится обычной загрузкой, а дальше нужна выгрузка в рабочую базу со сложными связями;
- 🏗️ нужно загрузить документы с движениями, а не только справочники.
Схема выглядит так:
- Загрузите Excel в промежуточную или тестовую базу любым способом из разделов выше.
- Проверьте и почистите данные там, не трогая рабочую базу.
- В промежуточной базе выгрузите нужные объекты обработкой универсального обмена по правилам обмена в файл
.xml. - В рабочей базе откройте ту же обработку, на вкладке загрузки выберите файл и загрузите.
Сохранить книгу Excel как «Таблица XML 2003» и скормить её обмену не получится: формат файла обмена 1С совсем другой.
Для одной базы и одного справочника схема с XML избыточна. Она оправдана при миграции или при регулярной синхронизации нескольких баз.
Как выбрать способ загрузки
| Способ | Когда подходит | Риски |
|---|---|---|
| Встроенная команда «Загрузить» | Справочники и товары в документы в типовой конфигурации | Почти нет: учитывает логику программы |
| Обработка с ИТС | Нетиповые справочники, регистры сведений, нет встроенной команды | Можно записать данные в обход проверок конфигурации |
| Внешний источник данных | Один и тот же файл читается регулярно | Нужен Конфигуратор, ODBC-драйвер на сервере |
| Своя обработка с кодом | Нестандартная структура файла, сложная логика сопоставления | Нужен программист, ошибки в коде пишут ошибки в базу |
| Универсальный обмен XML | Миграция, несколько баз, документы с движениями | Сложная настройка правил |
Ошибки при импорте Excel в 1С и как их исправить
Если ничего не помогло
Сохраните лист как .csv в кодировке UTF-8 и загрузите его. В CSV нет форматов ячеек, скрытых строк и объединений — уходит половина источников ошибок.
Второй вариант — разбить файл. Прайс на 50 000 строк грузите частями по 5–10 тысяч, чтобы найти строку, на которой падает загрузка, и не упираться в память клиента.
Частые вопросы
Можно ли подгрузить Excel в 1С, если Excel не установлен на компьютере?
.xlsx своими средствами. Excel нужен только для старого способа через COM.