Как импортировать данные из Excel в 1С 8.3 без ручного ввода
Содержание
Чтобы импортировать данные из Excel в 1С 8.3, откройте список нужного справочника, например Справочники → Товары и услуги → Номенклатура, нажмите команду загрузки из файла, вставьте таблицу или выберите файл .xlsx, сопоставьте колонки с реквизитами и подтвердите запись. Для товаров в документах команда загрузки есть прямо в табличной части «Товары» поступления и реализации.
Частое заблуждение: «для загрузки из Excel нужен программист и платная обработка». В типовых конфигурациях на современной платформе встроенного механизма хватает для справочников и строк документов. Внешняя обработка или код понадобятся, когда надо создавать целые документы с шапкой, грузить регистры или делать импорт по расписанию.
Подготовка таблицы Excel перед импортом в 1С
Половина неудачных загрузок решается ещё в Excel. Программа читает ячейки буквально: лишний пробел, объединённая ячейка или число, сохранённое как текст, дают пустые реквизиты и дубли.
Приведите файл к виду «одна строка — один объект, одна колонка — один реквизит»:
- 📄 Один лист, одна шапка. Первая строка — названия колонок, данные начинаются со второй. Без заголовков отчёта, логотипов и итоговых строк внизу.
- 🚫 Без объединённых ячеек. Разъедините их и заполните пустоты значениями.
- 🔢 Формулы — в значения. Скопируйте диапазон и вставьте через «Специальная вставка → Значения».
- ✂️ Чистка пробелов. Функция
СЖПРОБЕЛЫ(в английском ExcelTRIM) убирает пробелы по краям и двойные внутри. Неразрывные пробелы из выгрузок банков и маркетплейсов она не трогает — замените их через «Найти и заменить». - 🔤 ИНН, КПП, артикулы и штрихкоды — текстом. Задайте колонкам текстовый формат заранее, иначе Excel срежет ведущие нули. ИНН организаций из регионов с кодами 01–09 начинаются с нуля, и без него 1С не найдёт контрагента.
- 💰 Числа — числами. Цена
1 250,50с пробелом-разделителем может прочитаться как строка. Уберите разделители разрядов и проверьте десятичный знак. - 📅 Даты — в одном формате, без текста вроде «от 05.03».
Сохраните рабочую копию в формате .xlsx. Старый .xls тоже читается, но в .xlsx меньше сюрпризов с кодировкой и форматами.
Ещё один практический приём: добавьте в таблицу колонку с уникальным ключом (артикул для товаров, ИНН для контрагентов). По ключу 1С сопоставит строки с уже существующими элементами, и повторная загрузка обновит их, а не создаст копии.
Какой способ загрузки выбрать
В 1С 8.3 три рабочих пути. Выбор зависит от того, что именно вы загружаете.
| Способ | Когда подходит | Ограничения |
|---|---|---|
| Встроенная загрузка в списке справочника | Номенклатура, контрагенты и другие справочники, где есть команда загрузки | Только те справочники, где разработчик её включил |
| Загрузка в табличную часть документа | Товары и услуги в поступлении, реализации, заказах | Шапку документа заполняете вручную |
| Внешняя обработка или свой код | Целые документы, регистры, нестандартные реквизиты, импорт по расписанию | Нужны права на внешние обработки и проверка на копии базы |
Перед первой массовой загрузкой сделайте резервную копию базы . Отменить импорт тысячи строк одной кнопкой нельзя: созданные элементы придётся помечать на удаление и удалять вручную.
Копию делают в Конфигураторе через Администрирование → Выгрузить информационную базу (файл .dt) или средствами СУБД, если база клиент-серверная. Ещё лучше — сначала прогнать загрузку на копии и только потом в рабочей базе.
Встроенная загрузка данных из файла: пошагово
Механизм загрузки из файла входит в Библиотеку стандартных подсистем, поэтому выглядит одинаково в Бухгалтерии 3.0, Управлении торговлей 11, УНФ и других типовых решениях на управляемых формах.
Шаг 1. Откройте список и запустите загрузку
Перейдите в список справочника. Команду загрузки ищите на командной панели списка — кнопкой «Загрузить» или в меню «Ещё». Если её там нет, этот справочник встроенной загрузкой не поддерживается — переходите к внешней обработке.
Шаг 2. Передайте данные
Откроется форма с пустой таблицей-шаблоном, где уже подписаны колонки под реквизиты справочника. Варианты:
- Скопировать диапазон в Excel (без строки шапки) и вставить в шаблон через
Ctrl+V. - Выбрать файл командой загрузки из файла — тогда колонки сопоставляются на следующем шаге.
Вставка через буфер удобна для 50–200 строк. Для нескольких тысяч строк надёжнее загружать файл: так не обрежется буфер и не съедут колонки.
Шаг 3. Проверьте сопоставление с существующими данными
Программа ищет каждую строку среди уже созданных элементов и показывает результат: какие строки найдены, какие будут созданы как новые, где найдено несколько совпадений. Неоднозначные строки разберите вручную — выберите нужный элемент или исправьте ключ в таблице.
Шаг 4. Запишите и проверьте результат
Подтвердите загрузку. По итогу откройте 3–5 элементов из разных частей файла: начала, середины и конца. Проверьте единицы измерения, ставку НДС, вид номенклатуры. Ошибка в одной колонке обычно повторяется во всех строках, и её проще найти сразу.
Как сопоставить колонки Excel с реквизитами 1С
Сопоставление — главный шаг импорта. Здесь 1С узнаёт, какая колонка файла в какой реквизит пишется и по какому полю искать уже существующие элементы.
Несколько правил, которые экономят переделки:
- 🔑 Ключ поиска выбирайте один и надёжный. Для товаров — артикул или штрихкод, для контрагентов — ИНН (с КПП для обособленных подразделений). Наименование как ключ ломается на кавычках, «ООО» в начале и опечатках.
- 📏 Ссылочные реквизиты должны совпадать с данными базы. Если в файле «шт.», а в классификаторе единиц «шт», программа не найдёт единицу. Сделайте значения в колонке такими же, как в справочнике 1С.
- 🗂️ Группы справочника. Если товары надо разложить по папкам, создайте группы заранее и задайте колонку с группой — или загружайте частями, предварительно открыв нужную группу.
- ⚙️ Лишние колонки не сопоставляйте. Колонка «Примечание менеджера» без пары просто пропустится.
Если ставка НДС в файле записана как «20» без знака процента, а в 1С выбирается значение «20%», колонка может остаться пустой. Приведите значения к виду, который показан в выпадающем списке реквизита.
Импорт номенклатуры и контрагентов
Эти два справочника грузят чаще всего: при старте учёта, переходе с другой программы или после получения прайса от поставщика.
Номенклатура
В Бухгалтерии 3.0 список открывается через Справочники → Товары и услуги → Номенклатура, в Управлении торговлей 11 — через НСИ и администрирование → НСИ → Номенклатура.
Минимальный набор колонок для товаров:
- Наименование.
- Артикул (ключ для повторных загрузок).
- Единица измерения.
- Ставка НДС.
- Вид номенклатуры — товар, материал, услуга. Он влияет на счета учёта, поэтому не оставляйте его на усмотрение программы.
В Управлении торговлей вид номенклатуры обязателен и задаёт набор реквизитов карточки. Создайте нужные виды до загрузки, иначе часть колонок не к чему будет привязать.
Цены в карточку товара обычно не грузятся. В Бухгалтерии их задают документом «Установка цен номенклатуры», в Управлении торговлей — документом установки цен по видам цен. Табличную часть такого документа тоже заполняют из Excel — командой загрузки, если она есть, или внешней обработкой. Порядок такой: сначала создайте номенклатуру, затем отдельно загрузите цены.
Контрагенты
Список в Бухгалтерии 3.0: Справочники → Покупки и продажи → Контрагенты.
Колонки: наименование, ИНН, КПП, вид контрагента (юрлицо, ИП, физлицо), адрес и телефон при необходимости.
- ✅ Ключ — ИНН. Для филиалов одной организации ключом служит пара ИНН + КПП.
- ✅ После загрузки реквизиты можно дозаполнить по ИНН сервисом проверки контрагентов, если у вас подключена интернет-поддержка.
- ❌ Банковские счета вместе с контрагентами встроенная загрузка не создаёт: это отдельный справочник, подчинённый контрагенту. Их добавляют вручную или внешней обработкой.
Загрузка товаров в поступление и реализацию
Когда поставщик прислал накладную в Excel или покупатель — заказ на 300 позиций, не нужно набирать строки руками.
| Документ | Путь в Бухгалтерии 3.0 |
|---|---|
| Поступление товаров | Покупки → Поступление (акты, накладные, УПД) |
| Реализация товаров | Продажи → Реализация (акты, накладные, УПД) |
Порядок:
- Создайте документ и заполните шапку: организацию, контрагента, договор, склад.
- Перейдите на вкладку «Товары».
- На командной панели табличной части найдите команду загрузки — кнопку «Загрузить» или пункт в меню «Ещё».
- Вставьте строки из Excel: номенклатура (или артикул), количество, цена. Сумма и НДС посчитаются по ставке из карточки товара.
- Строки с ненайденными товарами программа покажет отдельно. Сопоставьте их с существующими позициями или создайте новые прямо из формы.
- Сверьте итог документа с итогом файла и только потом проводите.
Если поставщик работает через ЭДО, загрузка из Excel не нужна: входящий УПД сам создаст поступление, а номенклатуру поставщика достаточно один раз сопоставить со своей.
Шапку документа встроенный механизм не создаёт. Если нужно завести 200 реализаций из выгрузки интернет-магазина, это уже задача для внешней обработки или обмена.
Автоматизация: обработки и код на встроенном языке
Универсальная обработка с диска ИТС
Для объектов без встроенной загрузки используют внешнюю обработку
«Загрузка данных из табличного документа» (файл ЗагрузкаДанныхИзТабличногоДокумента.epf). Её версия для управляемых форм распространяется через ИТС. Она умеет загружать справочники, табличные части и регистры сведений.
Запуск: главное меню (кнопка с тремя полосками) → Файл → Открыть → выбрать файл .epf.
Для этого нужны права на открытие внешних обработок. В Бухгалтерии 3.0 при первом открытии появится предупреждение безопасности: администратор снимает защиту от опасных действий в карточке пользователя (Администрирование → Настройки пользователей и прав → Пользователи).
Открывайте только обработки из надёжного источника. Внешняя обработка выполняется с вашими правами и может изменить или удалить данные.
Свой код: чтение .xlsx без Excel
Современная платформа читает .xlsx в табличный документ сама, установленный Microsoft Excel не нужен. Старый путь через COM-объект Excel.Application требует Excel на компьютере, работает медленно и на сервере 1С обычно не используется.
Пример серверной процедуры, которая читает файл и создаёт элементы номенклатуры с поиском по артикулу:
&НаСервереБезКонтекста
Процедура ЗагрузитьНоменклатуру(ПутьКФайлу)
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПутьКФайлу);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Стр = Формат(НомерСтроки, "ЧГ=0");
Наименование = СокрЛП(ТабДок.Область("R" + Стр + "C1").Текст);
Артикул = СокрЛП(ТабДок.Область("R" + Стр + "C2").Текст);
Если ПустаяСтрока(Наименование) Тогда
Продолжить;
КонецЕсли;
Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Ссылка.Пустая() Тогда
Объект = Справочники.Номенклатура.СоздатьЭлемент();
Иначе
Объект = Ссылка.ПолучитьОбъект();
КонецЕсли;
Объект.Наименование = Наименование;
Объект.Артикул = Артикул;
Объект.Записать();
КонецЦикла;
КонецПроцедуры
Что важно в этом примере:
- 📌
Формат(НомерСтроки, "ЧГ=0")нужен, чтобы номер строки больше 999 не превратился в «1 000» с пробелом и адрес ячейки не сломался. - 📌 Цикл начинается со второй строки — первая занята шапкой.
- 📌 В клиент-серверной базе файл с компьютера пользователя сначала передают на сервер через временное хранилище (
ПоместитьФайлилиНачатьПомещениеФайлана клиенте), а на сервере сохраняют во временный файл. - 📌 Для боевой загрузки добавьте заполнение обязательных реквизитов (вид номенклатуры, единица, ставка НДС) и обработку ошибок записи, чтобы одна плохая строка не прерывала весь импорт.
Такой код удобно оформить внешней обработкой. Если загрузка нужна регулярно — по файлу, который каждую ночь кладёт другая система, — процедуру переносят в расширение конфигурации и вызывают регламентным заданием. В типовую конфигурацию код лучше не встраивать: обновления станут сложнее.
Ошибки при импорте и что с ними делать
Отдельно о переносе из другой 1С. Выгружать справочники в Excel из одной базы и загружать в другую — плохая идея для большой номенклатуры: теряются связи, счета учёта и подчинённые справочники. Между типовыми конфигурациями надёжнее перенос через обмен по формату EnterpriseData или стандартный перенос данных. Excel хорош для данных, которые пришли извне 1С.