Загрузка данных в 1С 8.3: импорт из Excel, обмен XML и внешние базы
Содержание
Самая частая ошибка при переносе — скопировать таблицу из Excel и вставить её прямо в документ 1С. На паре строк это работает, но на справочнике из нескольких тысяч позиций вылезают задвоения, пустые реквизиты и неверные типы. Чтобы загрузить данные в 1С без потерь, под каждый случай есть свой инструмент.
Коротко по выбору: номенклатуру и остатки из Excel закрывает обработка «Загрузка данных из табличного документа» либо встроенная кнопка загрузки в табличной части документа. Перенос между базами 1С идёт через выгрузку в XML и синхронизацию. Данные из сторонней СУБД подтягивают через внешние источники данных (ODBC) или COM-соединение. Ниже — как это сделать по шагам и что проверить, прежде чем жать «Загрузить».
Подготовка файла: без этого ничего не встанет
Загрузка ломается чаще всего не в 1С, а на исходном файле. Поэтому сначала приводим его в порядок.
- Уберите объединённые ячейки, пустые строки и строки с итогами — загрузчик видит их как обычные записи.
- Первую строку оставьте под заголовки колонок. Остальные — только данные.
- Колонки с артикулами, кодами, ИНН и телефонами переведите в Excel в текстовый формат. Иначе ведущие нули (
007) потеряются, а длинные номера превратятся в1,2E+11. - Даты приведите к одному виду. Если Excel хранит дату как текст, в 1С она не распознается.
- Сохраните файл как
.xlsx. Для.csv/.txtзаранее выберите кодировку: 1С корректно читает UTF-8, старые выгрузки часто идут в Windows-1251. Для.csvпроверьте ещё и разделитель — запятая или точка с запятой: если колонки «слиплись» в одну, дело в нём.
Сделайте копию файла перед правками. Исходник пригодится, если придётся перезагружать после разбора ошибок.
Отдельно продумайте, по какому полю программа будет искать существующие элементы. Если грузить справочник контрагентов с поиском по наименованию, любая опечатка породит дубль. Надёжнее искать по ИНН или коду — они уникальны.
Если справочник иерархический (номенклатура с папками, подразделения), заранее решите, как переносить группы. Либо добавьте в файл колонку с именем папки, либо создайте группы в 1С вручную и грузите элементы внутрь. Иначе всё ляжет в корень справочника одним плоским списком, и разбирать его потом тяжело.
Чтобы не держать соответствие колонок в голове, набросайте его заранее:
Загрузка из Excel через табличный документ
Универсальный способ для справочников и документов — обработка «Загрузка данных из табличного документа». Она поставляется фирмой 1С и работает в любой типовой конфигурации на 8.3.
Порядок действий:
- Откройте обработку через
Файл → Открытьи выберите файл.epfс диска. - В поле вида данных укажите, куда грузим: справочник, документ или табличную часть.
- Вставьте таблицу из Excel в верхнюю часть формы (
Ctrl+V) или откройте файл прямо в обработке. - В строке настройки колонок сопоставьте каждый столбец с реквизитом объекта. Для части колонок задайте признак «Поиск» — по ним программа находит существующие элементы.
- Задайте номер строки, с которой начинаются данные (обычно вторая — под шапкой).
- Нажмите «Загрузить» и дождитесь протокола. В нём видно, сколько записей создано, сколько обновлено и в какой строке возникла ошибка.
Пара моментов, которые экономят время. Для колонок, по которым идёт поиск, важен режим обработки найденных элементов: обновлять существующие или пропускать. Если прайс присылают регулярно, оставляйте обновление — тогда повторная загрузка не плодит дубли, а меняет цены у уже заведённых позиций. Для реквизитов-ссылок (единица измерения, ставка НДС, страна) в настройках колонки можно включить автоматическое создание недостающих значений: если в файле встретилась единица, которой нет в справочнике, 1С заведёт её сама.
В базах с профилями безопасности открытие внешних обработок может быть запрещено. Тогда администратор подключает файл через Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки, и обработка запускается уже оттуда.
Для типовых документов есть и встроенный путь. В табличной части (например, в поступлении или реализации товаров) рядом с кнопкой «Подбор» есть команда загрузки строк из внешнего файла. Она заполняет номенклатуру по колонкам «Артикул — Количество — Цена» без отдельной обработки — удобно для накладных.
Сначала прогоните загрузку на обрезанном файле в 5–10 строк. Убедитесь, что реквизиты встали правильно, и только потом грузите весь объём.
Обмен через XML и универсальные форматы
Когда данные нужно перенести из одной базы 1С в другую, Excel не нужен — работает выгрузка в XML.
Между базами одной конфигурации (например, две «Бухгалтерии 3.0») подойдёт обработка «Выгрузка и загрузка данных XML». В первой базе выбираете объекты — справочники, документы, регистры — и выгружаете в файл. Во второй базе той же обработкой загружаете. Конфигурации должны совпадать по структуре, иначе часть объектов не перенесётся.
Между разными конфигурациями прямой перенос не сработает: у документов разный состав реквизитов. Здесь используют формат EnterpriseData и механизм Администрирование → Синхронизация данных. Правила конвертации готовятся в «Конвертации данных», а обмен идёт по единому формату — он понимает, что «Контрагент» одной базы соответствует «Контрагенту» другой.
Синхронизацию можно запускать вручную по кнопке или настроить по расписанию — тогда базы обмениваются изменениями сами, без участия пользователя. Переносятся не только справочники, но и документы с движениями; при первой настройке обычно задают дату, с которой выгружать данные, чтобы не тянуть весь архив.
Про JSON стоит сказать прямо: штатной универсальной обработки для импорта JSON в 1С нет. JSON применяют в интеграциях через веб-сервисы и HTTP-запросы, а разбирают его в коде объектом ЧтениеJSON. Если поставщик отдаёт прайс в JSON, его либо конвертируют в Excel, либо пишут обработку под конкретную структуру файла.
Сравнение способов переноса между базами:
| Способ | Когда применять | Ограничение |
|---|---|---|
| Выгрузка/загрузка XML | Базы одной конфигурации | Структура должна совпадать |
| Синхронизация (EnterpriseData) | Разные конфигурации | Нужны правила конвертации |
| Загрузка из Excel | Данные из внешней системы | Ручное сопоставление колонок |
Массовая правка загруженных данных
После импорта часто выясняется, что у тысячи позиций не заполнен один реквизит — вид номенклатуры, ставка НДС, папка-группа. Перебивать вручную не нужно.
Используйте обработку «Групповое изменение реквизитов». Откройте нужный справочник или список документов, выделите строки и в командной панели списка вызовите команду изменения выделенных элементов. В форме укажите реквизит и новое значение — программа проставит его всем отмеченным объектам сразу.
Для документов, которые загрузились непроведёнными, пригодится групповое перепроведение. Оно доступно в разделе Администрирование → Обслуживание (название пункта может немного отличаться по релизам). Задайте период и виды документов — программа проведёт их по порядку и сформирует движения по регистрам.
Массовое перепроведение в рабочей базе лучше запускать в нерабочее время: оно нагружает систему и переформирует движения за весь период. Сделайте резервную копию перед запуском.
Так загрузка превращается из «залил и разбирайся» в управляемый процесс: сначала создали объекты, потом догрузили общие реквизиты, затем провели.
Как убедиться, что данные встали правильно
Протокол загрузки показывает только количество строк. Правильность данных он не гарантирует, поэтому после импорта делают сверку.
- Количество. Сравните число строк в файле с числом элементов в справочнике. Расхождение вниз — часть позиций слилась в дубли по неверному полю поиска. Расхождение вверх — наоборот, создались лишние.
- Суммы и остатки. Если грузили документы или ввод остатков , сформируйте оборотно-сальдовую ведомость по нужному счёту и сверьте итог с источником. Любая копейка расхождения — повод искать, где тип суммы или знак прочитался неверно.
- Заполненность реквизитов. Откройте список загруженных элементов и выведите в колонки ключевые реквизиты. Пустые ячейки сразу видны — их добивают групповым изменением.
Сверку удобно делать на следующий же день, пока помнишь, что и откуда грузил. Найденные пробелы закрываются повторной загрузкой с режимом обновления — создавать объекты заново не нужно.
Подключение внешних баз: ODBC и COM-соединение
Иногда данные нужно не разово импортировать, а читать из сторонней системы — склада, сайта, старой учётной программы. Для этого в 1С есть два механизма.
Внешние источники данных — это объект метаданных, который добавляется в Конфигураторе. Через него 1С подключается к внешней СУБД (MS SQL, PostgreSQL, MySQL и другим) по ODBC или напрямую. После настройки таблицы внешней базы доступны в 1С почти как обычные справочники — их можно читать в запросах и отчётах. Чаще источник настраивают на чтение, но платформа поддерживает и запись.
COM-соединение применяют, когда нужно связать две базы самой 1С программно. Объект V83.COMConnector подключается к другой информационной базе и позволяет читать её объекты из кода — например, перенести остатки или справочники. На сервере для этого регистрируется компонента comcntr.dll. Это уже уровень разработчика: без навыков встроенного языка такой перенос не сделать.
Данные из внешнего источника не обязательно хранить в 1С — их можно сразу выводить в отчёт на системе компоновки данных или использовать в запросе наравне с таблицами базы. Это удобно для витрин и сверок: цифры берутся из чужой СУБД в момент построения отчёта и всегда актуальны. Минус в том, что скорость зависит от внешней базы и сети, поэтому тяжёлые выборки по возможности ограничивают периодом или отбором.
На практике внешние источники и COM настраивает программист под конкретную задачу. Бухгалтеру чаще достаётся результат — готовый отчёт или кнопка загрузки. Если такой автоматизации нет, а данные нужны разово, обычно быстрее выгрузить их в Excel или XML и загрузить описанными выше способами, чем поднимать прямое подключение.
Если внешняя система умеет выгружать в Excel или XML по расписанию, часто проще настроить регулярную загрузку файла, чем поднимать прямое подключение к чужой СУБД.
Выбор между подходами:
Ошибки при загрузке и как их устранить
Большинство сбоев повторяется из раза в раз. Разберите протокол загрузки — там обычно указана строка и причина.
Отдельный случай — загрузка XML не находит часть объектов. Если базы на разных конфигурациях, прямая загрузка XML не предназначена для переноса: нужен механизм синхронизации с правилами конвертации, а не обработка выгрузки.
Перед любой массовой загрузкой в рабочую базу делайте резервную копию. Откатить неудачный импорт на тысячи строк иначе придётся вручную.
Частые вопросы
Можно ли загрузить данные в 1С без обработки, прямо копированием?
Ctrl+V из Excel, если колонки совпадают по порядку. Для справочников и больших объёмов так делать не стоит: нет поиска дублей и контроля типов.Где взять обработку «Загрузка данных из табличного документа»?
.epf открывается через Файл → Открыть; в базах с профилем безопасности — подключается в разделе дополнительных обработок.