Импорт данных в 1С:Предприятие 8.3 из Excel, CSV, XML и выписок банка
Содержание
Загрузить файл в 1С можно четырьмя путями, и выбор зависит от формата. Таблицу Excel в справочник или документ грузят кнопкой Загрузить в списке или над табличной частью. Выписку банка — через Банк и касса → Банковские выписки → Загрузить. XML из другой базы — обработкой «Универсальный обмен данными в формате XML» или синхронизацией данных. Файл .dt — в Конфигураторе, Администрирование → Загрузить информационную базу.
Типичная ситуация: поставщик прислал прайс на 800 позиций в Excel, а программист соседнего отдела — выгрузку контрагентов в XML. Руками это не перебить. Ниже по порядку: как подготовить файл, какой механизм выбрать для импорта данных и что делать, когда загрузка обрывается на середине.
Какой файл и куда загружать в 1С
Сначала определите, что у вас за файл. От этого зависит инструмент, а не наоборот.
| Файл | Что внутри | Чем загружать | Где |
|---|---|---|---|
.xlsx, .xls, .ods, .mxl | Таблица: номенклатура, цены, строки накладной | Встроенная загрузка из файла | Список справочника или табличная часть документа |
.csv, .txt с разделителями | Та же таблица в тексте | Встроенная загрузка (через Excel) или своя обработка | Там же |
kl_to_1c.txt (1CClientBankExchange) | Выписка из клиент-банка | Обмен с банком | Банк и касса → Банковские выписки |
.xml формата EnterpriseData | Данные из другой типовой конфигурации | Синхронизация данных | Администрирование → Синхронизация данных |
.xml из универсальной обработки | Данные по правилам Конвертации данных | «Универсальный обмен данными в формате XML» | Обработка из меню Все функции |
.dt | Вся информационная база целиком | Конфигуратор | Администрирование → Загрузить информационную базу |
.epf, .erf | Внешняя обработка или отчёт | Открытие файла или подключение в справочник обработок | Файл → Открыть или раздел администрирования |
Загрузка .dt полностью заменяет данные базы, в которую грузите. Перед загрузкой .dt сделайте выгрузку текущей базы — это единственный способ откатиться.
Подготовка файла перед загрузкой
Большая часть сбоев при импорте рождается в исходном файле, а не в 1С. Пять минут на подготовку сэкономят повторную загрузку и чистку дублей.
Таблица Excel
- 📌 Одна строка — один объект. Без объединённых ячеек, промежуточных итогов и пустых строк в середине.
- 📌 Шапка в первой строке. Названия колонок короткие: «Наименование», «Артикул», «Цена», «Количество».
- 📌 Числа должны быть числами. Если в ячейке зелёный треугольник «число сохранено как текст», 1С может прочитать ноль или пропустить значение.
- 📌 ИНН, КПП, артикулы с ведущими нулями храните как текст. Иначе
0274012345превратится в274012345, и контрагент не найдётся. - 📌 Единицы измерения и ставки НДС пишите так, как они называются в базе: «шт», «20%». Расхождение в одну букву создаёт новый элемент справочника.
- 📌 Закройте файл в Excel перед загрузкой. Открытая книга заблокирована, и 1С не сможет её прочитать.
Текстовые файлы CSV и TXT
Для CSV главное — кодировка и разделитель. Excel по умолчанию сохраняет CSV в Windows-1251 с разделителем ;, выгрузки из сайтов и маркетплейсов чаще приходят в UTF-8 с разделителем ,. Если вместо русских букв видны «кракозябры», дело в кодировке.
Дробную часть проверьте отдельно: 1250,50 и 1250.50 1С прочитает по-разному в зависимости от того, как разбирается файл.
Файл выписки банка
Файл клиент-банка начинается со строки 1CClientBankExchange, а в заголовке есть строка Кодировка=Windows или Кодировка=DOS. Если банк выгрузил в другом формате (например, только PDF или XLS), загрузить такую выписку штатным обменом не выйдет — нужно переключить формат выгрузки в самом клиент-банке.
Загрузка из Excel в справочники и документы
В Бухгалтерии 3.0, Управлении торговлей 11 и других конфигурациях на БСП есть встроенный помощник загрузки табличных данных. Отдельные обработки для этого не нужны.
В справочник номенклатуры
- Откройте
Справочники → Товары и услуги → Номенклатура(в БП 3.0). - Нажмите
Загрузитьна панели списка. - Вставьте данные из Excel в открывшуюся таблицу через буфер обмена или выберите файл.
- Сопоставьте колонки: укажите, какая колонка — наименование, какая — артикул, единица, ставка НДС.
- Выберите, в какую группу класть новые позиции и какой вид номенклатуры им назначить.
- Проверьте предпросмотр. Строки, которые программа нашла в базе, и новые строки обычно показаны раздельно.
- Нажмите кнопку завершения загрузки и откройте список, чтобы проверить пару позиций.
💡 Сначала загрузите 5–10 строк на пробу. Если сопоставление полей неверное, удалить 10 элементов проще, чем 800.
В табличную часть документа
Строки поступления, реализации или инвентаризации грузят прямо в документ:
- Создайте документ и заполните шапку: контрагента, склад, договор.
- Над табличной частью «Товары» нажмите
Загрузить. В части релизов эта команда спрятана в менюЕщё. - Вставьте строки из Excel: номенклатура, количество, цена.
- Укажите, как искать номенклатуру — по наименованию, артикулу или штрихкоду.
- Решите, что делать с позициями, которых нет в базе: создать новые или пропустить.
- Завершите загрузку и проверьте суммы по документу с итогом файла.
Поиск по артикулу или штрихкоду надёжнее поиска по наименованию: «Бумага А4 Снегурочка» и «Бумага А4 “Снегурочка”» для программы разные строки.
Встроенные помощники загрузки в разделах программы
Часть данных 1С умеет принимать из файла без всякой настройки — у каждой такой функции свой помощник.
Выписка банка
- Выгрузите в клиент-банке файл в формате 1С (чаще всего он называется
kl_to_1c.txt). - В 1С откройте
Банк и касса → Банковские выпискии нажмитеЗагрузить. - Выберите банковский счёт организации и укажите путь к файлу.
- Программа покажет список платежей. Нераспознанные контрагенты и договоры подсвечены — их можно создать или указать вручную.
- Нажмите загрузку. Документы «Поступление на расчётный счёт» и «Списание с расчётного счёта» создадутся и проведутся.
💡 Путь к файлу выписки 1С запоминает в настройках обмена с банком. Если клиент-банк каждый раз кладёт файл в одну и ту же папку, указывать путь заново не придётся.
Обмен в формате EnterpriseData
Между типовыми конфигурациями (например, УТ 11 и БП 3.0) данные передают файлом формата EnterpriseData — это XML с общей схемой для всех типовых решений. Настраивают обмен в Администрирование → Синхронизация данных: включают флаг синхронизации, создают новую настройку и выбирают вариант обмена через файл или каталог. Правила конвертации здесь уже встроены в конфигурации, писать их не нужно.
Информационная база целиком
Файл .dt загружают только через Конфигуратор:
- Запустите базу в режиме «Конфигуратор» под пользователем с правами администратора.
- Выберите
Администрирование → Загрузить информационную базу. - Укажите файл
.dtи подтвердите замену данных.
Для этой операции нужен монопольный доступ: все пользователи должны выйти из базы, иначе загрузка не начнётся. Делайте это вне рабочего времени и предупредите коллег — их сеансы придётся завершить.
Универсальный обмен данными в формате XML
Когда конфигурации нетиповые или сильно доработаны, EnterpriseData не подходит. Тогда используют обработку «Универсальный обмен данными в формате XML» и правила, подготовленные в конфигурации «Конвертация данных ».
Порядок работы:
- В базе-источнике откройте обработку, на закладке выгрузки укажите файл правил обмена и путь к файлу данных, выгрузите.
- В базе-приёмнике откройте ту же обработку, перейдите на закладку загрузки.
- Укажите файл данных и запустите загрузку. Правила выгрузки записываются в сам файл обмена, поэтому отдельно загружать их в приёмник обычно не требуется.
- Посмотрите протокол обмена: какие объекты загружены, какие пропущены и почему.
В типовых конфигурациях обработку открывают через Все функции → Обработки. Если пункта Все функции нет в главном меню, включите его в параметрах: Сервис и настройки → Параметры → Отображать команду "Все функции".
Версия обработки должна соответствовать платформе и быть одинаковой в обеих базах. Обработка для 8.2 в базе 8.3 работает нестабильно или не открывается вовсе.
Перед первой загрузкой в рабочую базу прогоните файл на копии. Ошибку в правилах сопоставления видно только по результату, и исправлять её на рабочих данных дорого.
Правила конвертации и свои обработчики
Если стандартных средств не хватает, у вас два пути: поправить правила обмена или написать свою обработку загрузки.
Правила обмена
Правила создают в конфигурации «Конвертация данных» (редакция 2.x для универсального обмена). В них задают:
- 🔗 соответствие объектов: какой справочник источника становится каким справочником приёмника;
- 🔍 правила поиска: искать контрагента по ИНН, номенклатуру по артикулу, документ по номеру и дате;
- ⚙️ обработчики событий на встроенном языке: «перед загрузкой», «после загрузки», «при выгрузке».
Правило поиска — самое важное место. Если поиск задан только по наименованию, каждая опечатка порождает дубль. Поиск по ИНН+КПП для контрагентов и по артикулу для номенклатуры почти исключает задвоение.
Своя внешняя обработка
Для простого CSV проще написать обработку, чем настраивать правила. Пример чтения CSV по строкам с разбором полей:
Чтение = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
Строка = Чтение.ПрочитатьСтроку(); // шапка, пропускаем
Строка = Чтение.ПрочитатьСтроку();
НомерСтроки = 1;
Пока Строка <> Неопределено Цикл
НомерСтроки = НомерСтроки + 1;
Поля = СтрРазделить(Строка, ";", Истина);
Если Поля.Количество() < 3 Тогда
Сообщить("Строка " + Формат(НомерСтроки, "ЧГ=0") + ": мало полей, пропущена");
Иначе
Артикул = СокрЛП(Поля[0]);
Наименование = СокрЛП(Поля[1]);
Цена = Число(СтрЗаменить(СокрЛП(Поля[2]), ",", "."));
// здесь поиск по артикулу и запись элемента
КонецЕсли;
Строка = Чтение.ПрочитатьСтроку();
КонецЦикла;
Чтение.Закрыть();
Excel обработка может прочитать через табличный документ — так не нужен установленный Excel на компьютере:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = ТабДок.Область(НомерСтроки, 1).Текст;
Наименование = ТабДок.Область(НомерСтроки, 2).Текст;
// обработка строки
КонецЦикла;
Чтение .xlsx табличным документом доступно в платформе с номером не ниже 8.3.6. Подключают обработку через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки или открывают разово через Файл → Открыть.
Автоматическая загрузка файлов по расписанию
Если файл приходит каждый день (остатки от поставщика, заказы с сайта), загрузку можно запускать без участия человека.
Через командную строку и планировщик Windows
Платформа запускает базу с внешней обработкой параметром /Execute (в пути подставьте номер своей установленной версии). Строку в /C обработка получает через ПараметрЗапуска:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Trade" /N"Обмен" /P"пароль" /Execute"D:\Scripts\load_price.epf" /C"D:\Inbox\price.xlsx" /DisableStartupMessages
Обработка читает файл, пишет результат в журнал и в конце вызывает ЗавершитьРаботуСистемы(Ложь), чтобы сеанс закрылся сам. Строку запуска ставят в планировщик заданий Windows на нужное время.
💡 Заведите для автоматики отдельного пользователя 1С с минимальными правами. Пароль в bat-файле лучше не держать: ограничьте доступ к папке со скриптом.
Регламентное задание в клиент-серверной базе
В клиент-серверном варианте загрузку оформляют регламентным заданием в расширении или доработке конфигурации. Код выполняется на сервере 1С, поэтому путь к файлу должен быть доступен серверу и пользователю, под которым работает служба 1С. Папка C:\Users\Иван\Desktop на компьютере бухгалтера серверу не видна — используйте сетевой ресурс с правами на чтение для этой учётной записи.
Через COM-соединение
Внешний скрипт (VBScript, PowerShell, Python) подключается к базе через V83.COMConnector и вызывает экспортные процедуры общего модуля. Способ удобен, когда файл уже разбирает внешняя система. Компонента должна быть зарегистрирована той же разрядности, что и вызывающий скрипт.
Ошибки при загрузке файла и как их найти
Ошибку импорта проще всего локализовать по протоколу: универсальный обмен ведёт свой протокол, остальные механизмы пишут в Администрирование → Обслуживание → Журнал регистрации. Отфильтруйте журнал по пользователю и времени загрузки.
Если загрузка оборвалась на середине, часть объектов уже записана. Перед повторным запуском найдите их по дате создания или по протоколу, иначе получите задвоение.