Перенос таблицы Excel в справочники и документы 1С 8.3
Содержание
Вставить данные из 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:
- Справочник номенклатуры:
Справочники → Товары и услуги → Номенклатура, кнопка «Загрузить» в командной панели списка. - Контрагенты:
Справочники → Покупки и продажи → Контрагенты, та же команда. - Табличная часть документа: откройте, например, поступление или реализацию, перейдите на закладку «Товары» — над таблицей есть кнопка «Загрузить».
Если кнопки не видно, откройте меню «Ещё» той же панели: при узком окне команды уходят туда. Если и там пусто, у пользователя может не быть прав на добавление элементов этого справочника — проверьте профиль доступа.
Загрузка в справочник создаёт и меняет реальные элементы. Перед первой загрузкой в рабочую базу сделайте резервную копию (выгрузка .dt или копия каталога файловой базы). Откатить тысячу созданных карточек вручную долго.
Вставка через буфер обмена
После нажатия «Загрузить» открывается форма с пустой таблицей. Колонки в ней уже названы так, как поля в 1С.
- В Excel выделите диапазон данных без строки заголовков (или с ней, если порядок колонок совпадает — тогда шапку потом удалите).
- Нажмите
Ctrl+C. - В 1С щёлкните в первую ячейку первой колонки и нажмите
Ctrl+V. - Проверьте, что данные встали в свои колонки. Если порядок колонок в Excel другой, переставьте колонки в Excel и вставьте заново — это быстрее, чем править по одной ячейке.
- Нажмите «Далее».
Загрузка из файла целиком
В той же форме есть команда загрузки из файла: можно выбрать .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С подбирает номенклатуру из уже существующей. Строки, для которых товар не найден, подсвечиваются — их нужно сопоставить вручную или сначала загрузить недостающие товары в справочник. Порядок для поступления от нового поставщика поэтому такой: справочник → документ.
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?
.xlsx сама. Excel нужен только если загрузка устроена через COM-объект.