Импорт данных из Excel в 1С 8.3: от подготовки файла до своей обработки
Содержание
Таблицу Excel в 1С 8.3 проще всего загрузить встроенной командой Загрузить в списке справочника или в табличной части документа: выбираете файл .xlsx, указываете, какая колонка в какой реквизит идёт, и подтверждаете загрузку. Так в типовых конфигурациях на современной платформе загружают номенклатуру, контрагентов, товары в поступление и реализацию. Если такой команды нет, используют внешнюю обработку
«Загрузка данных из табличного документа» или пишут свою.
Способ зависит от того, что вы грузите и сколько раз. Разовый список из 200 позиций — встроенная команда. Ежедневный прайс поставщика — своя обработка или расширение. Перенос из другой программы на 1С — обмен через XML с правилами конвертации. Главное во всех случаях — один: подготовленный файл. Плохой файл ломает любую загрузку.
Подготовка Excel-файла перед загрузкой в 1С
1С читает файл как табличный документ: строки и колонки, без формул, фильтров и форматирования. Чем проще лист, тем меньше ошибок.
Что сделать с файлом:
- 📄 Оставьте один лист с данными. Остальные листы удалите или вынесите в отдельный файл.
- 🔠 Первая строка — заголовки колонок, данные со второй строки. Никаких шапок «Прайс-лист ООО Ромашка» над таблицей.
- 🧩 Разъедините объединённые ячейки. Объединение сдвигает значения, и 1С читает пустоту.
- 🧮 Формулы замените значениями: выделите колонку, скопируйте и вставьте как значения.
- 🔢 Числа приведите к одному виду: без пробелов-разделителей тысяч, дробная часть через запятую, без «руб.» в ячейке.
- 0️⃣ ИНН, КПП, артикулы и штрихкоды с ведущими нулями задайте в Excel текстовым форматом, иначе
0012345превратится в12345. - ✂️ Уберите пробелы в начале и конце наименований (функция
СЖПРОБЕЛЫв Excel). - 🧹 Удалите пустые строки внутри таблицы и итоговую строку «Итого» в конце.
Сохраните файл в формате .xlsx. Старый .xls платформа тоже открывает, но с ним чаще бывают проблемы с кодировкой и датами. Файл перед загрузкой закройте в Excel: открытый файл может быть заблокирован для чтения.
Для справочников заранее решите, по какому полю 1С будет искать существующие элементы: по артикулу, ИНН или наименованию. Артикул и ИНН надёжнее. Поиск по наименованию плодит дубли из-за лишней точки или пробела.
| Что грузим | Поле для поиска | Обязательные колонки |
|---|---|---|
| Номенклатура | Артикул | Наименование, единица измерения |
| Контрагенты | ИНН (+ КПП для филиалов) | Наименование, ИНН |
| Товары в документ | Артикул или наименование | Номенклатура, количество, цена |
| Цены | Артикул | Номенклатура, цена |
Загрузка из Excel в 1С командой «Загрузить» в списках и документах
В Бухгалтерии 3.0, УТ 11 и других конфигурациях на свежей библиотеке стандартных подсистем загрузка из файла уже встроена. Ничего скачивать не надо.
Справочник: номенклатура, контрагенты
- Откройте список, например
Справочники → Номенклатурав Бухгалтерии 3.0. - Нажмите
Загрузитьна панели над списком. Если кнопки не видно, проверьте менюЕщё. - Выберите файл .xlsx на диске.
- 1С покажет таблицу с данными файла. Над каждой колонкой укажите реквизит, в который её загружать. Лишние колонки оставьте без сопоставления.
- Перейдите к следующему шагу. Программа сопоставит строки с элементами базы: найденные обновит, ненайденные предложит создать.
- Проверьте результат сопоставления и подтвердите загрузку.
Табличная часть документа
- Создайте документ, например поступление товаров или реализацию, и заполните шапку: контрагент, склад, договор.
- На вкладке с товарами нажмите
Загрузитьнад табличной частью. - Выберите файл или вставьте данные в открывшуюся таблицу.
- Сопоставьте колонки: номенклатура, количество, цена, сумма, ставка НДС.
- Строки, для которых 1С не нашла номенклатуру, будут отмечены. Сопоставьте их вручную или создайте новые элементы.
- Нажмите кнопку завершения загрузки. Товары появятся в документе.
Документ после загрузки не проводится сам. Проверьте суммы и НДС по строкам и только потом проводите. Расхождение на копейки от округления в Excel — обычная история.
Обработка «Загрузка данных из табличного документа»: как загрузить таблицу Excel туда, где нет кнопки
Когда встроенной команды нет, выручает универсальная внешняя обработка «Загрузка данных из табличного документа». Её версия для управляемых форм распространяется в материалах для пользователей с подпиской ИТС. Файл обработки имеет расширение .epf.
Порядок работы:
- Откройте обработку через главное меню:
Файл → Открытьи выберите .epf. - Укажите режим: загрузка в справочник, в табличную часть объекта или в регистр сведений .
- Выберите вид объекта, например
Справочник.Номенклатура. - На закладке с табличным документом откройте файл Excel или вставьте данные через
Ctrl+V. - На закладке настройки колонок отметьте реквизиты, которые загружаете, и укажите для каждого номер колонки в файле.
- Отметьте поле поиска: по нему обработка найдёт существующий элемент вместо создания нового.
- Укажите номер первой строки с данными (обычно
2, если в первой — заголовки). - Запустите контроль заполнения, если он есть в вашей версии обработки, и только потом загрузку.
Для реквизитов-ссылок (единица измерения, ставка НДС, группа) обработка ищет значение в базе по тексту ячейки. Если в Excel написано «шт.», а в 1С элемент называется «шт», ссылка останется пустой. Приведите написание к тому, что в справочнике.
Настройки колонок обработка умеет сохранять в файл. Если загружаете прайс одного поставщика каждый месяц, сохраните настройку один раз и подгружайте её.
Первую загрузку в рабочую базу делайте только после пробы на копии. Обработка пишет данные напрямую, и откатить сотню созданных элементов кнопкой «Отменить» нельзя.
Как перенести данные из Excel в 1С через буфер обмена
Копирование подходит для небольших таблиц и разовых задач.
Что работает:
- 📋 Вставка в табличный документ внутри обработки или формы загрузки. Выделите диапазон в Excel,
Ctrl+C, затем щелчок по первой ячейке в 1С иCtrl+V. Колонки и строки сохранятся. - 📋 Вставка одного значения в поле формы: наименование, ИНН, комментарий.
Что не работает :
- ❌ Вставка блока из 50 строк прямо в табличную часть документа. Обычная табличная часть принимает только одно значение в текущую ячейку.
- ❌ Копирование ячеек с формулами из закрытой книги-источника: вставятся значения, которые Excel успел вычислить, или ошибки
#ССЫЛКА!.
Если 1С при вставке склеила всё в одну колонку, данные в Excel, скорее всего, лежат одной строкой текста с разделителями. Разбейте их в Excel через Данные → Текст по столбцам и скопируйте заново.
Импорт через XML и универсальный обмен: когда это оправдано
XML-путь нужен не для таблиц Excel, а для переноса данных между базами 1С или из другой учётной программы. Excel умеет сохранять лист в XML, но 1С такой файл как «таблицу» не поймёт: ей нужен XML по правилам обмена.
Как устроен этот способ:
- В источнике данные выгружают в XML обработкой «Универсальный обмен данными в формате XML» по правилам обмена.
- Правила обмена описывают, какой объект источника в какой объект приёмника превращается. Их готовят в конфигурации «Конвертация данных ».
- В приёмнике той же обработкой загружают файл.
Для Excel это имеет смысл в одном случае: внешняя программа отдаёт данные и в Excel, и в XML, а вам нужен регулярный перенос со сложной структурой — документы с табличными частями, связанные справочники. Тогда разработчик один раз пишет правила, и дальше обмен идёт без ручного сопоставления колонок.
Обратная задача — выгрузить табличный документ из 1С в Excel — решается проще. Любой отчёт или печатную форму сохраните через значок дискеты на панели формы или Ctrl+S и выберите тип «Лист Excel 2007-…» (.xlsx). Такую выгрузку удобно использовать как шаблон: выгрузили список номенклатуры, дописали цены, загрузили обратно с поиском по артикулу.
| Способ | Когда подходит | Риски |
|---|---|---|
| Команда «Загрузить» | Справочники и товары в документах типовых конфигураций | Нет кнопки в нужном объекте |
| Обработка табличного документа | Любой справочник, табличная часть, регистр сведений | Прямая запись, легко наплодить дубли |
| Буфер обмена | До сотни строк, разово | Ручная работа, ошибки при сдвиге колонок |
| XML с правилами обмена | Регулярный перенос сложных данных | Нужен разработчик и правила |
| Своя обработка или расширение | Повторяющийся файл одного формата | Поддержка кода после обновлений |
Внешние обработки и расширения для загрузки Excel в 1С
Сторонние обработки загрузки прайсов, остатков и заказов продаются и раздаются бесплатно. Перед запуском такой обработки в рабочей базе проверьте три вещи:
- 🔐 Права. Открыть внешнюю обработку может пользователь с правом на интерактивное открытие внешних обработок. Обычно это администратор.
- 🛡️ Защита от опасных действий. Платформа предупредит, что файл может быть небезопасен. Запускайте только обработки из известного источника.
- 🧪 Совместимость. Обработка, написанная под обычные формы, в Такси может не открыться или работать с ошибками.
Расширение конфигурации (файл .cfe, доступно с платформы 8.3.6) подходит, когда загрузку нужно встроить прямо в интерфейс: кнопка в документе, своя команда в разделе. Расширение переживает обновления типовой конфигурации лучше, чем доработка самой конфигурации.
Подключают расширение в пользовательском режиме через Администрирование → Печатные формы, отчеты и обработки → Расширения. В Конфигураторе загрузка .cfe и обновление конфигурации
базы данных — два отдельных шага.
Программная загрузка таблицы Excel в 1С и автоматизация
Своя обработка нужна, когда файл приходит регулярно в одном формате. Основа — объект ТабличныйДокумент: он читает .xlsx без установленного Excel. Старый способ через COMОбъект("Excel.Application") требует Excel на компьютере, работает только под Windows и медленный.
Пример: прочитать файл и создать или обновить номенклатуру по артикулу. Колонка A — артикул, B — наименование, данные со второй строки.
&НаСервере
Процедура ЗагрузитьНоменклатуруНаСервере(АдресФайла)
ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
ДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла);
ДанныеФайла.Записать(ИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла);
Создано = 0;
Обновлено = 0;
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
Наименование = СокрЛП(ТабДок.Область(НомерСтроки, 2, НомерСтроки, 2).Текст);
Если ПустаяСтрока(Артикул) Или ПустаяСтрока(Наименование) Тогда
Продолжить;
КонецЕсли;
Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Ссылка.Пустая() Тогда
Объект = Справочники.Номенклатура.СоздатьЭлемент();
Объект.Артикул = Артикул;
Создано = Создано + 1;
Иначе
Объект = Ссылка.ПолучитьОбъект();
Обновлено = Обновлено + 1;
КонецЕсли;
Объект.Наименование = Наименование;
Объект.Записать();
КонецЦикла;
УдалитьФайлы(ИмяФайла);
Сообщить(СтрШаблон("Создано: %1, обновлено: %2",
Формат(Создано, "ЧГ=0"), Формат(Обновлено, "ЧГ=0")));
КонецПроцедуры
На клиенте файл предварительно помещают во временное хранилище (НачатьПомещениеФайла или ПоместитьФайл), а адрес передают в процедуру.
Что учесть в реальной обработке:
- 🔢 Числа из ячеек приходят текстом. Перед
Число()уберите пробелы и неразрывные пробелы, точку замените на запятую, а преобразование оберните вПопытка. - 📅 Даты читайте так же: текст ячейки зависит от формата в Excel.
- 🧾
Записать()не запускает проверку заполнения формы. Обязательные для учёта реквизиты (вид номенклатуры, единица) заполните в коде сами. - 🔁 Для тысяч строк оберните запись в транзакцию порциями, чтобы сбой на строке 4000 не оставил базу в половинчатом состоянии.
Автоматизация. Если поставщик кладёт прайс в общую папку, код загрузки выносят в регламентное задание: по расписанию оно проверяет папку, загружает новый файл и переносит его в архив. В файловой базе регламентные задания выполняются только при работающем сеансе, поэтому для надёжной автоматизации нужна клиент-серверная база .
Ошибки при загрузке данных из Excel в 1С и что с ними делать
После любой загрузки откройте список или документ и отсортируйте по дате создания либо по коду: свежие элементы окажутся вместе, и проверить их проще.
Частые вопросы
Нужен ли установленный Excel, чтобы загрузить файл в 1С?
Можно ли загрузить в 1С файл CSV?
Как загрузить остатки из Excel на начало работы в 1С?
Загрузить. Номенклатуру лучше загрузить в справочник заранее, отдельной операцией.Работает ли загрузка из Excel в облачной 1С через браузер?
Загрузить работает и в веб-клиенте. А вот запуск сторонних внешних обработок в облачных сервисах обычно ограничен, его разрешает провайдер.