Справочники и Данные · 13 мин
Как загрузить данные из Excel в 1С:Предприятие
Способы загрузки данных из Excel в 1С:Предприятие: типовые обработки, универсальная загрузка, внешние обработки и код. Подготовка файла, сопоставление колонок, проверка результата.
Загрузка данных из Excel в 1С — одна из самых частых задач при внедрении программы, переходе с другой учётной системы или массовом обновлении справочников. Номенклатуру, контрагентов, остатки, цены и штрихкоды вручную вводить долго и рискованно: любая опечатка в цене или ИНН потом оборачивается ошибками в документах. Правильно организованная загрузка из файла Excel решает эту проблему за минуты.
В 1С нет единственного «правильного» способа: выбор зависит от конфигурации (Управление торговлей, Бухгалтерия, ERP, самописная), от объёма данных и от того, разовая это операция или регулярная. Ниже разобраны основные варианты — от типовых обработок, встроенных в конфигурацию, до универсальной загрузки с диска ИТС и программной загрузки через COM-объект.
Общий принцип у всех способов одинаков: сначала готовится и очищается файл Excel, затем настраивается соответствие колонок файла полям объектов 1С, выполняется загрузка и обязательная проверка результата. Ошибки чаще всего кроются не в инструменте, а в подготовке данных: лишние строки, объединённые ячейки, дубли и несовпадение форматов.
Подготовка файла Excel перед загрузкой
Качество загрузки на 80% определяется подготовкой файла. Стандартные обработки 1С читают данные построчно и не умеют «догадываться» о структуре: любая аномалия в файле приводит к пропуску строк или ошибочным значениям. Поэтому перед загрузкой файл приводят к виду простой плоской таблицы.
Основные требования к файлу: первая строка — заголовки колонок, дальше только данные, без пустых строк в середине, без объединённых ячеек, без промежуточных итогов и шапок документа. Формулы лучше заменить на значения (копировать → вставить как значения), потому что некоторые обработки читают результат формулы некорректно или не читают вовсе.
Отдельное внимание — форматам данных. Числа должны быть числами, а не текстом (признак проблемы — зелёный треугольник в углу ячейки в Excel). Даты — в формате даты Excel или текстом в одном едином формате на всю колонку. Артикулы и коды с ведущими нулями («001234») храните как текст, иначе Excel обрежет нули, и поиск по коду в 1С не сработает.
Способ 1. Типовая обработка «Загрузка данных из файла»
В большинстве современных конфигураций на платформе 8.3 (Управление торговлей 11, ERP, Комплексная автоматизация, УНФ) есть встроенный механизм загрузки из табличных файлов. Обычно он находится в разделе «НСИ и администрирование» → «Загрузка данных из файла» либо вызывается из списка справочника через кнопку «Ещё» → «Загрузить данные из файла».
Механизм работает в три шага. Сначала вы выбираете файл — обработка показывает его содержимое в виде таблицы. Затем для каждой колонки указываете, в какой реквизит объекта её загружать: наименование, артикул, цена, ИНН и так далее. Колонки, которые не нужны, помечаются как «не загружать». На последнем шаге обработка показывает, сколько элементов будет создано и обновлено, и выполняет загрузку.
Важная особенность типовой обработки — умение искать существующие элементы, чтобы не создавать дубли. Поиск обычно настраивается по ключевым полям: для номенклатуры — по артикулу или наименованию, для контрагентов — по ИНН и КПП. Перед массовой загрузкой проверьте на 5–10 строках, что существующие элементы находятся и обновляются, а не создаются заново.
- 1Сделайте архивную копию базы или убедитесь, что есть свежая резервная копия
- 2Откройте «НСИ и администрирование» → «Загрузка данных из файла» и выберите вид объектов (номенклатура, контрагенты и т.д.)
- 3Укажите файл Excel и дождитесь предпросмотра таблицы
- 4Сопоставьте каждую колонку файла реквизиту объекта, лишние колонки отметьте «не загружать»
- 5Проверьте настройки поиска существующих элементов (по артикулу, ИНН)
- 6Выполните пробную загрузку небольшого фрагмента и проверьте результат в справочнике
- 7Загрузите весь файл и сверьте количество созданных и обновлённых элементов с количеством строк в файле
Способ 2. Универсальная обработка «Загрузка данных из табличного документа»
Если в конфигурации нет встроенной загрузки (например, 1С:Бухгалтерия 8 в базовых версиях или старые конфигурации), используют внешнюю обработку «Загрузка данных из табличного документа». Она распространяется на диске ИТС и входит в состав конфигурации «Библиотека стандартных подсистем». Обработка открывается через меню «Файл» → «Открыть» и работает практически в любой конфигурации на управляемых и обычных формах.
Принцип работы: вы открываете файл Excel (или вставляете данные в табличное поле), на закладке «Настройка» выбираете тип загружаемого объекта — справочник, документ, регистр сведений — и настраиваете соответствие колонок реквизитам. Для каждого реквизита можно задать режим: «Искать» (колонка используется для поиска существующего элемента), «Устанавливать» (значение просто записывается), «Вычислять» (значение формируется выражением на встроенном языке).
Сильная сторона этой обработки — гибкость. Выражения позволяют на лету преобразовывать данные: склеивать фамилию, имя и отчество из трёх колонок в одну, заменять текстовые значения на ссылки, рассчитывать цены с наценкой. Слабая сторона — требуется понимание структуры конфигурации: нужно знать, как называются реквизиты и какие из них обязательные.
Способ 3. Программная загрузка через COM или чтение файла
Когда загрузка регулярная (например, ежедневный прайс поставщика) или требуется сложная логика, данные читают программно. Классический подход — COM-объект Excel.Application: код открывает файл, перебирает строки листа и создаёт объекты 1С. Способ требует установленного Excel на компьютере, где выполняется код, что ограничивает его применение на сервере.
Пример чтения через COM-объект:
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Open("C:\Данные\nomenklatura.xlsx");
Лист = Книга.Sheets(1);
Для НомерСтроки = 2 По Лист.UsedRange.Rows.Count Цикл
Артикул = СокрЛП(Лист.Cells(НомерСтроки, 1).Value);
Наименование = СокрЛП(Лист.Cells(НомерСтроки, 2).Value);
Элемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Элемент.Пустая() Тогда
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Артикул = Артикул;
НовыйЭлемент.Наименование = Наименование;
НовыйЭлемент.Записать();
КонецЕсли;
КонецЦикла;
Excel.Quit();
Альтернатива без Excel — сохранить лист в формате CSV и прочитать его как текстовый файл, либо использовать объект «ТабличныйДокумент», который умеет открывать файлы XLSX напрямую (метод Прочитать). Этот вариант работает на сервере без установленного Office и обычно быстрее на больших объёмах.
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("C:\Данные\price.xlsx");
Для Ном = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = ТабДок.Область(Ном, 1).Текст;
// далее поиск и запись объекта
КонецЦикла;Как выбрать способ под свою задачу
Разовая загрузка справочников в типовую конфигурацию — почти всегда встроенная обработка «Загрузка данных из файла»: она безопасна, показывает предпросмотр и не требует навыков программирования. Если конфигурация старая или нетиповая, а объекты нестандартные — универсальная обработка с диска ИТС.
Регулярные загрузки (прайсы, остатки поставщиков, курсы, выгрузки из других систем) имеет смысл автоматизировать: написать обработку или регламентное задание, которое читает файл из заданной папки. Это исключает ручные ошибки и позволяет вести журнал загрузок. Для документов с табличными частями (поступления, инвентаризации) типовые обработки часто не подходят — там почти всегда нужна специализированная загрузка.
Сравнение способов загрузки
Подходит для разовой загрузки справочников в типовых конфигурациях; ограничение — не все объекты и конфигурации поддерживаются
Подходит для любых справочников, документов и регистров; ограничение — требует понимания структуры конфигурации и аккуратной настройки поиска
Подходит для регулярных и сложных загрузок с преобразованиями; ограничение — нужен разработчик и тестирование на копии базы
Проверка результата и типичные проблемы
После загрузки сверьте количество строк в файле с количеством загруженных элементов — расхождение означает пропущенные строки или отказ в записи. Откройте несколько элементов выборочно и проверьте, что значения попали в правильные реквизиты, цены — в цены, а не в комментарий, а даты читаются корректно.
Отдельно проверьте дубли: отсортируйте справочник по наименованию или выполните поиск дублей штатными средствами («Администрирование» → «Поиск и удаление дублей» в типовых конфигурациях). Дубли контрагентов и номенклатуры — самое частое последствие загрузки без настроенного поиска, и чистить их потом труднее, чем перезагрузить правильно.
Если что-то пошло не так, не пытайтесь «догрузить поверх» — сначала удалите некорректно созданные элементы или восстановите базу из копии, разберитесь с причиной и повторите загрузку. Повторная загрузка поверх ошибочной почти всегда удваивает проблему.
Как проверить результат загрузки
Совпадает с числом строк данных в файле
Меньше — есть пропущенные строки; больше — созданы дубли или лишние элементы
Каждое поле содержит данные из своей колонки, форматы корректны
Смещение значений, текст в числовых полях, искажённые даты
Поиск по ключевому полю (артикул, ИНН) находит один элемент
Несколько одинаковых элементов — поиск при загрузке не сработал
Ограничения и когда привлекать специалиста
Самостоятельная загрузка безопасна для справочников в копии или рабочей базе при наличии резервной копии и небольших объёмах. Рискованные зоны: загрузка остатков и документов (влияет на учёт и отчётность), загрузка в регистры бухгалтерии, массовое изменение цен, работа в базе, где одновременно работают пользователи.
К специалисту стоит обращаться, когда нужно загружать документы с движениями по регистрам, настраивать регулярный обмен, связывать данные по нескольким ключам с преобразованиями или когда первая попытка загрузки уже создала дубли и мусор в учётных данных. Исправление последствий неудачной загрузки обычно обходится дороже самой загрузки.
Что важно запомнить
Успешная загрузка из Excel в 1С складывается из трёх вещей: чистый файл без объединённых ячеек и текстовых чисел, правильное сопоставление колонок с настроенным поиском существующих элементов и обязательная проверка результата на дубли и смещения. Перед любой массовой загрузкой делайте резервную копию и пробный прогон на нескольких строках.
Частые вопросы
Можно ли загрузить данные из Excel в 1С:Бухгалтерию 8?
Да, хотя встроенная загрузка там охватывает не все объекты. Для номенклатуры и контрагентов часто доступна загрузка из файла через список справочника, а для остальных случаев используют универсальную обработку «Загрузка данных из табличного документа» с диска ИТС или специализированные внешние обработки.
Файл большой, обработка зависает. Что делать?
Разбейте файл на части по несколько тысяч строк и загружайте порциями — это снижает нагрузку и упрощает поиск проблемного места. Также проверьте, нет ли в файле «фантомных» строк: Excel иногда считает использованными сотни тысяч пустых строк, и обработка честно их перебирает. Удалите пустые строки ниже данных и сохраните файл заново.
Почему после загрузки появились дубли номенклатуры?
Причина почти всегда в том, что поиск существующих элементов не сработал: колонка с ключом (артикул, код) не была помечена как поле поиска, либо значения в файле и базе различаются — лишние пробелы, обрезанные ведущие нули, разный регистр. Исправьте ключевую колонку в файле, удалите дубли и загрузите заново с включённым поиском.
Можно ли загрузить документы, например поступления товаров, из Excel?
Типовые обработки загрузки из файла в основном рассчитаны на справочники. Документы с табличными частями и движениями по регистрам обычно загружают универсальной обработкой (она умеет заполнять табличные части) или специализированными обработками. Такую загрузку обязательно тестируют на копии базы, потому что ошибка влияет на учётные данные.
В каком формате сохранять файл: XLSX, XLS или CSV?
Большинство обработок 1С работают с XLSX и XLS напрямую. CSV подходит как запасной вариант, но требует внимания к разделителю (точка с запятой или запятая) и кодировке — при неверной кодировке кириллица превращается в нечитаемые символы. Если обработка плохо читает XLSX, пересохраните файл в XLS или CSV и попробуйте снова.
Как загрузить цены номенклатуры из прайса поставщика?
Цены в типовых конфигурациях хранятся в регистре сведений и обычно устанавливаются документом «Установка цен номенклатуры». Практичный путь — загрузить прайс в табличную часть этого документа (во многих конфигурациях есть кнопка загрузки из файла или буфера обмена) либо использовать обработку загрузки прайсов, если она предусмотрено конфигурацией. Прямая запись в регистр в обход документа усложняет анализ истории цен.