Как загрузить в 1С базу данных из Excel, XML и JSON

· 10 мин

Содержание

Чтобы загрузить данные в 1С 8.3, выберите способ по источнику. Таблица Excel со списком товаров или контрагентов — кнопка Загрузить прямо в списке справочника или над табличной частью документа. Другая база 1С — универсальный обмен данными в формате XML с правилами конвертации. Файл JSON или XML от сайта и внешней системы — обработка с кодом на встроенном языке.

Перед любой загрузкой сделайте резервную копию базы . Массовый импорт за минуту создаёт сотни объектов, а «отменить» его одной кнопкой нельзя. Поэтому первые 10–20 строк всегда грузите на пробу и смотрите, что получилось.

Подготовка данных перед загрузкой в 1С

Больше половины проблем при импорте возникает не в 1С, а в исходном файле. Полчаса на чистку таблицы экономят день на удаление дублей.

Резервная копия

Файловая база: закройте все сеансы и скопируйте каталог базы целиком или выгрузите её в файл .dt через Конфигуратор → Администрирование → Выгрузить информационную базу. Для выгрузки .dt пользователи должны выйти из базы — предупредите их заранее и делайте это вне рабочего времени.

Клиент-серверная база : попросите администратора сделать резервную копию средствами СУБД. Это быстрее и не требует выгонять пользователей.

Чистка таблицы

📌 Что проверить в Excel до загрузки:

  • 🧹 Одна строка — один объект. Без объединённых ячеек, промежуточных итогов и пустых строк посреди данных.
  • 🏷️ Шапка в одну строку. Заголовки колонок понятные: «Наименование», «Артикул», «ИНН», «Цена».
  • 🔢 Числа — числами. Цена 1 250,00 с неразрывным пробелом или с текстом «руб.» не превратится в число. Уберите пробелы заменой и задайте числовой формат.
  • 📅 Даты — в одном формате. 05.03.2025, а не вперемешку с 5 марта и 2025-03-05.
  • 🆔 Ключ для поиска заполнен везде. Если 1С будет искать контрагента по ИНН, пустой ИНН у трёх строк даст три новых контрагента вместо обновления.
  • 🔁 Дубли убраны. Отсортируйте по ключевой колонке и проверьте соседние строки.

Пробная база

Первую загрузку прогоните на копии. В клиент-серверном варианте администратор разворачивает копию из бэкапа, в файловом — достаточно загрузить .dt в новую пустую базу. Посмотрели результат, поправили файл — тогда загружайте в рабочую.

Какой способ загрузки данных в 1С выбрать

ИсточникСпособКогда подходитРиски
Excel, список элементовКнопка Загрузить в списке справочникаНоменклатура, контрагенты, до нескольких тысяч строкДубли при плохом ключе поиска
Excel, строки документаЗагрузить над табличной частьюПоступление, реализация, инвентаризацияНесопоставленные позиции
Excel, нестандартный объектУниверсальная обработка загрузки из табличного документаСправочники и регистры без встроенной загрузкиОшибки в настройке колонок
Другая база 1СУниверсальный обмен данными XMLПеренос между разными конфигурациямиНужны правила конвертации
Та же конфигурация, частичноСинхронизация данных или выгрузка/загрузка XMLСправочники и остатки между копиямиЗатирание существующих данных
JSON, XML от внешней системыСвоя обработка на встроенном языкеСайт, маркетплейс, CRMНужен программист

💡 Если нужно перенести базу целиком, со всеми данными и конфигурацией, — это не импорт, а загрузка файла .dt через Конфигуратор. Она полностью заменяет данные приёмника.

Загрузка из Excel в 1С встроенными средствами

В типовых конфигурациях на БСП (Бухгалтерия 3.0, УТ 11, КА 2, ERP) загрузка из таблицы встроена в списки справочников и табличные части многих документов. Внешние обработки не нужны.

Загрузка в справочник

На примере номенклатуры в Бухгалтерии 3.0:

  1. Откройте Справочники → Номенклатура.
  2. Нажмите Загрузить в командной панели списка. Если кнопки не видно, проверьте меню Ещё.
  3. В открывшейся форме вставьте данные: скопируйте диапазон в Excel и вставьте в таблицу формы через Ctrl+V. Либо выберите файл кнопкой загрузки из файла.
  4. На следующем шаге сопоставьте колонки: укажите, в какой колонке наименование, в какой артикул, единица, ставка НДС.
  5. 1С покажет, какие строки найдены в базе, а какие будут созданы. Проверьте этот список внимательно.
  6. Нажмите кнопку завершения загрузки и откройте пару созданных элементов — все ли реквизиты заполнились.

Так же работает загрузка контрагентов: ключом поиска лучше сделать ИНН, а не наименование. «ООО Ромашка» и «Ромашка ООО» для 1С — разные строки.

Загрузка в табличную часть документа

Типичный случай — поставщик прислал накладную на 300 позиций в Excel.

  1. Создайте документ поступления, заполните шапку: контрагент, договор, склад.
  2. Над табличной частью «Товары» нажмите Загрузить (или найдите команду в меню Ещё табличной части).
  3. Вставьте строки из Excel, сопоставьте колонки: номенклатура, количество, цена, сумма, ставка НДС.
  4. Строки, для которых 1С не нашла номенклатуру, будут отмечены. Сопоставьте их вручную или разрешите создать новые элементы.
  5. После загрузки сверьте итоговую сумму документа с итогом накладной.

Если в накладной поставщика названия товаров отличаются от ваших, не создавайте новые элементы автоматически. Иначе через месяц в справочнике будет «Бумага А4 Снегурочка» и «Бумага офисная А4 Снегурочка 500л» с разными остатками.

Универсальная обработка загрузки из табличного документа

Если встроенной кнопки нет — например, нужно загрузить данные в регистр сведений или в справочник отраслевой конфигурации, — используют внешнюю обработку загрузки из табличного документа. Её распространяют для управляемых форм 8.3 вместе с материалами методической поддержки.

Как запустить

Откройте файл обработки через Файл → Открыть (в меню с тремя полосками). Для этого нужны права на открытие внешних обработок; у обычного пользователя их часто нет. Безопасный вариант — администратор добавляет обработку в Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки.

Как настроить

  1. Выберите режим: в справочник, в табличную часть или в регистр сведений.
  2. Укажите объект — например, справочник «Контрагенты».
  3. Обработка покажет список реквизитов объекта. Для каждого нужного реквизита задайте номер колонки в таблице.
  4. Отметьте реквизит, по которому искать существующие элементы.
  5. Для реквизитов, которых нет в файле, можно задать значение по умолчанию: например, вид контрагента «Юридическое лицо».
  6. Вставьте данные на закладку с табличным документом или прочитайте файл.
  7. Запустите контроль заполнения, исправьте ошибки и только потом загружайте.

💡 Сохраните настройку в файл. При следующей загрузке того же формата не придётся заново расставлять колонки.

Сопоставление полей
Наименование (колонка B)→Наименование
Артикул (колонка A)→Артикул (поле поиска)
Ед. изм. (колонка C)→Единица измерения — поиск по наименованию
НДС, % (колонка D)→Ставка НДС
Группа (колонка E)→Родитель (папка справочника)

Универсальный обмен данными XML: перенос между базами 1С

Когда данные надо загрузить из одной базы 1С в другую с иной структурой — скажем, из старой самописной конфигурации в Бухгалтерию 3.0, — используют связку из двух частей:

  • 📄 Правила обмена — XML-файл, в котором описано, какой объект источника во что превращается в приёмнике. Правила разрабатывают в конфигурации «Конвертация данных » редакции 2.
  • ⚙️ Обработка «Универсальный обмен данными в формате XML» — выполняет выгрузку по этим правилам и загрузку в приёмник. В конфигурациях на БСП она обычно доступна через Все функции → Обработки. Меню Все функции включается в параметрах программы.

Порядок переноса

  1. В базе-источнике откройте обработку, на закладке выгрузки укажите файл правил и файл данных.
  2. Задайте период и отметьте нужные правила выгрузки: справочники, остатки, документы.
  3. Выполните выгрузку. Получится XML-файл с данными.
  4. В базе-приёмнике откройте ту же обработку, закладку загрузки, укажите файл данных.
  5. Запустите загрузку. Документы по умолчанию приходят непроведёнными — проведите их отдельно, когда проверите.
  6. Просмотрите протокол обмена: в нём перечислены объекты, которые не удалось записать.

Для переноса между двумя типовыми конфигурациями (например, из УТ в Бухгалтерию) сначала посмотрите встроенную синхронизацию в Администрирование → Синхронизация данных. Она работает через формат EnterpriseData, а правила уже готовы. Писать свои правила под такую задачу — лишняя работа.

Если обе базы на одной и той же конфигурации и одной версии, правила не нужны: подойдёт выгрузка-загрузка данных XML. Эта обработка переносит объекты «как есть», вместе с внутренними идентификаторами. Работает она грубо: при совпадении идентификатора объект в приёмнике перезаписывается. Пробный прогон на копии здесь обязателен.

Как 1С ищет и обновляет объекты при загрузке

Главный вопрос любой загрузки: что делать, если такой объект в базе уже есть. Ответ задают правила поиска.

Варианты поиска

Ключ поискаГде уместенЧем опасен
Уникальный идентификаторПеренос между базами, где объекты созданы обменомВ чужой базе совпадений нет — всё создастся заново
КодСправочники с ручной нумерациейКоды в разных базах часто пересекаются
ИНН + КППКонтрагентыУ ИП и обособленных подразделений свои нюансы
АртикулНоменклатураПустой артикул у части позиций
НаименованиеПоследний вариантПробел, кавычки, регистр — и это уже другой элемент

В правилах конвертации можно задать цепочку: сначала искать по идентификатору, не нашли — по ИНН, затем по наименованию. Это сильно снижает число дублей.

Что делать с найденным объектом

Для каждого правила решают отдельно:

  • ✏️ Обновлять реквизиты найденного объекта значениями из файла. Подходит для цен и описаний.
  • 🔒 Не замещать существующий объект. Подходит, когда в приёмнике данные уже поправлены вручную и их жалко.
  • 🚫 Не создавать, если не найден. Подходит для загрузки строк документа: лишняя номенклатура в справочнике не нужна.

Режим «обновлять всё» на рабочей базе — частая причина затёртых реквизитов. Например, загрузили прайс, а вместе с ценой обнулилась ставка НДС, потому что колонка в файле была пустой.

Загрузка данных в 1С из XML и JSON программно

Когда данные приходят регулярно — заказы с сайта, остатки с маркетплейса, ответы API, — ручной импорт не годится. Пишут обработку или регламентное задание на встроенном языке.

Чтение JSON

Объект ЧтениеJSON появился в платформе 8.3.6. Пример — прочитать файл с товарами и создать недостающие элементы:

Чтение = Новый ЧтениеJSON;
Чтение.ОткрытьФайл("C:\import\goods.json");
Данные = ПрочитатьJSON(Чтение, Истина); // Истина — читать в Соответствие
Чтение.Закрыть();

Для Каждого Строка Из Данные.Получить("items") Цикл
    Артикул = Строка.Получить("sku");
    Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
    Если Ссылка.Пустая() Тогда
        Объект = Справочники.Номенклатура.СоздатьЭлемент();
        Объект.Артикул = Артикул;
        Объект.Наименование = Строка.Получить("name");
        Объект.Записать();
    КонецЕсли;
КонецЦикла;

Это скелет. В рабочем коде добавляют транзакцию, обработку исключений, заполнение обязательных реквизитов (вид номенклатуры, единица) и журнал загрузки.

Чтение XML

Для XML есть три уровня:

  • ЧтениеXML — потоковое чтение узел за узлом. Подходит для больших файлов, расходует мало памяти.
  • ЧтениеDOM и ПостроительDOM — загрузить документ целиком и ходить по дереву. Удобно для небольших файлов сложной структуры.
  • ФабрикаXDTO — чтение по XSD-схеме. Подходит для формализованных форматов, где схема известна заранее.

Пример потокового чтения:

Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл("C:\import\orders.xml");
Пока Чтение.Прочитать() Цикл
    Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента
        И Чтение.Имя = "order" Тогда
        Номер = Чтение.ПолучитьАтрибут("number");
        // создание или поиск документа по номеру
    КонецЕсли;
КонецЦикла;
Чтение.Закрыть();

💡 Не трогайте код типовой конфигурации ради загрузки. Внешняя обработка или расширение не ломается при обновлении релиза.

Ошибки при загрузке данных в 1С и как их устранить

Диагностика: выберите симптом

Как не создать проблем на ровном месте

  • 🧪 Грузите сначала 10–20 строк, а не весь файл. Проверили — загружайте остальное.
  • 📆 Не загружайте документы в закрытый период: даты запрета изменения не пропустят запись, а снятие запрета ради импорта ломает сданную отчётность.
  • 🧾 Остатки на начало работы вводите документами ввода остатков на дату перед началом учёта, а не поступлениями.
  • 🗑️ Неудачную загрузку убирайте пометкой на удаление и Администрирование → Обслуживание → Удаление помеченных объектов. Удаление помеченных лучше запускать, когда в базе нет пользователей.

Частые вопросы

Как загрузить в 1С базу целиком из файла .dt?
Откройте базу в Конфигураторе, выберите Администрирование → Загрузить информационную базу и укажите файл. Текущие данные базы будут полностью заменены, поэтому загружайте .dt в новую пустую базу или после резервной копии.
Нужен ли Excel на компьютере, чтобы загрузить таблицу в 1С?
Нет. Платформа 8.3 сама читает файлы XLSX. Можно также скопировать диапазон из любого табличного редактора и вставить его в форму загрузки.
Можно ли загрузить данные в 1С в облаке или веб-клиенте?
Да, встроенная загрузка из таблицы работает и в веб-клиенте: файл передаётся через браузер. Внешние обработки в облачных сервисах часто запрещены — уточните у провайдера.
Сколько строк можно загрузить за один раз?
Жёсткого предела нет, но встроенная загрузка в форме удобна до нескольких тысяч строк. Для десятков тысяч лучше разбить файл на части или использовать обработку с записью на сервере.
Как загрузить остатки из старой программы, а не только справочники?
Сначала перенесите справочники, затем остатки документами ввода начальных остатков на одну дату. Обороты прошлых периодов обычно не переносят: это долго и редко нужно.