Импорт таблиц из Excel в базу 1С 8.3: от подготовки файла до автоматизации
Содержание
Загрузить документ 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С
Встроенный помощник — часть Библиотеки стандартных подсистем, поэтому выглядит одинаково во всех свежих типовых конфигурациях.
Загрузка в справочник
- Откройте список справочника, например
Справочники → Товары и услуги → Номенклатурав БП 3.0. - Нажмите
Загрузитьна панели списка. В отдельных релизах команда спрятана в менюЕщё. - Откроется форма с пустым шаблоном таблицы. Её колонки — это реквизиты, которые можно заполнить.
- Заполните шаблон: скопируйте столбцы из Excel и вставьте через
Ctrl+V, либо выберите загрузку из файла (.xlsx,.ods,.csv,.mxl). - Нажмите
Далее. Помощник сравнит строки с тем, что уже есть в базе. - Посмотрите результат сопоставления: какие строки найдены, какие новые, какие с ошибками.
- Укажите, что делать с найденными элементами — обновлять или пропускать, и нажмите
Загрузить.
Загрузка в табличную часть документа
- Создайте документ, например поступление товаров, и заполните шапку: контрагента, договор, склад.
- На закладке
ТоварынажмитеЗагрузить(команда находится на панели табличной части). - Вставьте строки из Excel в шаблон. Минимальный набор — наименование или артикул, количество, цена.
- Нажмите
Далее, проверьте, какие позиции не найдены в номенклатуре. - Для ненайденных выберите товар из справочника вручную или создайте новый.
- Завершите загрузку, проверьте суммы и ставку НДС в строках, затем проведите документ.
Копирование через буфер обмена быстрее, чем выбор файла: не нужно выравнивать порядок колонок. Вставляйте столбец за столбцом в нужные колонки шаблона.
4. Универсальная обработка «Загрузка данных из табличного документа»
Когда встроенной команды нет — например, в нетиповой базе или для собственного справочника, — используют внешнюю обработку
ЗагрузкаДанныхИзТабличногоДокумента.epf. Она входит в набор стандартных обработок, которые поставляются с ИТС. Для интерфейса «Такси» нужна версия для управляемого приложения.
Как запустить
- Откройте обработку через
Файл → Открыть(меню с тремя полосками в левом верхнем углу окна). - Платформа покажет предупреждение безопасности о запуске внешнего файла. Подтвердите, если файл получен из надёжного источника.
- Если открыть не даёт — у пользователя нет права на интерактивное открытие внешних обработок. Его выдаёт администратор, либо обработку регистрируют в
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.
Основные настройки
- 🎯 Режим загрузки — в справочник, в табличную часть или в регистр сведений.
- 📍 Объект — какой справочник или какую табличную часть заполнять. Для табличной части сначала выбирают сам документ.
- 📄 Табличный документ — сюда открывают файл Excel или вставляют данные.
- 🔢 Первая строка данных — обычно
2, если в первой строке заголовки. - ✋ Ручная нумерация колонок — включите, если порядок колонок в файле не совпадает с порядком реквизитов.
5. Сопоставление колонок Excel и реквизитов 1С
Это главный шаг загрузки. В обработке на закладке настройки реквизитов для каждой строки задают:
- ☑️ Пометку — загружать ли реквизит вообще;
- 🔢 Номер колонки в файле Excel;
- ⚙️ Режим:
Искать— найти значение в базе,Устанавливать— подставить одно значение во все строки,Вычислять— рассчитать выражением; - 🔍 Поле поиска для ссылочных реквизитов — по коду, наименованию, артикулу или ИНН;
- 📝 Значение по умолчанию — для пустых ячеек.
Пример сопоставления для прайса поставщика:
Ключ поиска решает всё
Ключ определяет, найдёт обработка существующий элемент или создаст дубль. Порядок надёжности такой:
- Код или артикул — уникален, если в базе нет повторов.
- ИНН (для контрагентов) — надёжен, но у обособленных подразделений один ИНН на несколько карточек; добавляйте КПП.
- Наименование — самый ненадёжный: лишний пробел или другая кавычка, и появится второй элемент.
Если в базе уже есть элементы, сначала выгрузите их список в Excel, подставьте коды из 1С в свой файл через ВПР и загружайте по коду.
Режим «Вычислять»
В режиме Вычислять пишут выражение на встроенном языке. Значение ячейки доступно в переменной ТекущиеДанные, результат кладут в переменную Результат. Например, наценку 30% к закупочной цене из колонки 5 можно получить так:
Результат = Окр(Число(ТекущиеДанные["Колонка5"]) * 1.3, 2);
Имена переменных в выражении зависят от версии обработки — сверьте их с подсказкой на форме, прежде чем грузить весь файл.
Сохраните готовую настройку в файл кнопкой сохранения настроек на форме обработки. При следующей загрузке того же прайса не придётся сопоставлять колонки заново.
6. Ошибки при загрузке Excel и как читать протокол
Перед записью нажмите Контроль заполнения. Обработка пройдёт по строкам и выведет в окно сообщений строки, где что-то не нашлось или не преобразовалось, с номером строки файла. Встроенный помощник показывает то же самое цветом и счётчиками прямо в таблице сопоставления.
Разбор типичных сообщений:
Как проверить результат после загрузки
- 🔎 Откройте список справочника, отберите элементы по дате создания или по группе и сверьте количество со строками файла.
- 💰 В документе сравните сумму табличной части с итогом в Excel — расхождение в копейках обычно означает округление цены.
- 🧾 Проверьте ставку НДС и счета учёта в нескольких строках: при загрузке номенклатуры они берутся из настроек по умолчанию, а не из файла.
7. Автоматический импорт из Excel по расписанию
Если поставщик каждый день присылает остатки или прайс, ручная загрузка быстро надоедает. Варианты по возрастанию сложности:
- Сохранённая настройка обработки. Раз настроили — дальше открываете файл, загружаете настройку и жмёте
Загрузить. Подходит, если формат файла не меняется. - Своя внешняя обработка, зарегистрированная как дополнительная. Механизм дополнительных обработок в БСП позволяет назначить ей расписание, и она будет запускаться регламентным заданием без участия пользователя.
- Доработка в расширении конфигурации — когда загрузка часть бизнес-процесса и должна жить при обновлениях.
Основа любой программной загрузки — чтение файла в табличный документ:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
ТекстЦены = СокрЛП(ТабДок.Область(НомерСтроки, 3, НомерСтроки, 3).Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
Попытка
Цена = Число(СтрЗаменить(ТекстЦены, " ", ""));
Исключение
Сообщить("Строка " + Формат(НомерСтроки, "ЧГ=0") + ": цена не число");
Продолжить;
КонецПопытки;
// поиск номенклатуры по артикулу и запись цены
КонецЦикла;
Регламентное задание выполняется на сервере 1С. Путь к файлу должен быть доступен именно серверу и пользователю, от имени которого работает служба, а не папке «Загрузки» на компьютере бухгалтера. Используйте сетевую папку с правами на чтение для этой учётной записи.
Старый приём с Новый COMОбъект("Excel.Application") на сервере лучше не использовать: он требует установленного Excel, медленный и зависает на диалогах. Метод Прочитать табличного документа делает то же самое без Excel.
8. Особенности импорта в БП, УТ, ЗУП и нетиповые базы
Механика везде одна, различаются объекты и места команд:
| Конфигурация | Что обычно грузят из Excel | Где команда |
|---|---|---|
| Бухгалтерия предприятия 3.0 | Номенклатура, контрагенты, строки поступления и реализации | Загрузить в списке справочника и на закладке Товары документа |
| Управление торговлей 11 | Номенклатура, строки заказов, поступлений, прайсы | Загрузить в списке и в табличной части, при её наличии |
| Зарплата и управление персоналом 3.1 | Суммы разовых начислений, показатели расчёта | Встроенной загрузки нет в большинстве документов — используют обработку или внешнюю обработку заполнения |
| Самописные и старые конфигурации | Любые объекты | Только универсальная обработка или своя доработка |
Пара тонкостей:
- 🏷️ В УТ 11 у номенклатуры есть вид номенклатуры и, при включённых характеристиках, характеристики. Без указания вида строка не загрузится — задайте его в режиме
Устанавливать. - 👥 В ЗУП сотрудника нельзя просто «загрузить в справочник»: кадровые данные появляются через документ приёма на работу. Загрузка в справочник
Сотрудникисоздаст карточки без кадровой истории. - 💼 Начальные остатки по счетам из Excel в БП удобнее переносить через документы ввода остатков с загрузкой в их табличную часть, а не напрямую в регистры.