Импорт данных в 1С 8.3: какой способ выбрать и как не испортить базу

· 9 мин

Содержание

Импортировать данные в 1С 8.3 чаще всего можно без программиста: в списках справочников «Номенклатура» и «Контрагенты» и в табличных частях документов есть штатная загрузка из файла, банковские выписки грузятся кнопкой «Загрузить» в разделе Банк и касса → Банковские выписки. Обработки и правила обмена нужны, только когда данных много, структура сложная или загрузка повторяется каждый день.

Частая ошибка — сразу искать «универсальную обработку» в интернете и запускать её в рабочей базе. Сначала проверьте, что умеет ваша конфигурация, и подготовьте файл: половина проблем при загрузке данных в 1С возникает из-за кривых колонок, а не из-за программы.

Подготовка файла и базы перед импортом

Сначала решите, что именно загружаете. От этого зависит способ:

  • 📦 Справочники — номенклатура, контрагенты, договоры, сотрудники. Здесь главное — не наплодить дублей.
  • 📄 Документы — поступления, реализации, остатки. Нужны уже заполненные справочники, иначе строки не к чему привязать.
  • 🏦 Банковские выписки — файл обмена из клиент-банка, отдельный штатный механизм.
  • 🔁 Данные из другой базы 1С — тут Excel лишний, нужен XML или синхронизация.

Требования к таблице Excel и CSV

  1. Одна строка — один объект. Без объединённых ячеек, промежуточных итогов и пустых строк посередине.
  2. В первой строке — заголовки колонок, данные начинаются со второй.
  3. ИНН, КПП, коды и артикулы храните как текст. Excel превращает ИНН 0274012345 в число 274012345 — ведущий ноль пропадает, и контрагент уже не находится.
  4. Даты — в одном формате (ДД.ММ.ГГГГ), без текста вроде «от 05.03».
  5. Числа — без пробелов-разделителей тысяч и без «руб.» в ячейке. Десятичный разделитель — запятая, как в русской локали.
  6. Сохраните файл в .xlsx. Для CSV проверьте кодировку и разделитель: Excel в русской Windows сохраняет CSV через точку с запятой и в кодировке Windows-1251.
  7. Закройте файл в Excel перед загрузкой — открытый файл может быть заблокирован для чтения.

Что сделать с базой

Перед массовым импортом сделайте резервную копию базы или потренируйтесь на копии. Ошибочно загруженные 3 000 позиций номенклатуры удалять дольше, чем загружать: на них успевают сослаться документы.

Ещё до старта проверьте, по какому полю программа будет искать уже существующие элементы: у товаров — артикул или наименование, у контрагентов — ИНН. Если в базе уже есть дубли по этому полю, загрузка сопоставит строку не с тем элементом.

Как загрузить данные в 1С из Excel штатными средствами

В типовых конфигурациях на 8.3 (Бухгалтерия 3.0, Управление торговлей 11 и других на базе БСП) загрузка из табличных файлов встроена в сами формы. Отдельные обработки для этого не нужны.

Справочники: номенклатура и контрагенты

Путь в Бухгалтерии 3.0:

Что загружаемГде открыть список
НоменклатураСправочники → Товары и услуги → Номенклатура
КонтрагентыСправочники → Покупки и продажи → Контрагенты

Порядок:

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

💡 Новым элементам часто нужны общие реквизиты, которых нет в файле: вид номенклатуры, ставка НДС, единица измерения. Удобнее загрузить их сразу в нужную группу или заполнить колонку в Excel одним значением на все строки.

Табличные части документов

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

Несопоставленные строки — сигнал, что товара нет в справочнике. Создайте его или поправьте наименование в файле, иначе строка не попадёт в документ.

Банковские выписки

Клиент-банк выгружает файл в формате 1CClientBankExchange — обычно kl_to_1c.txt. В Бухгалтерии 3.0:

  1. Откройте Банк и касса → Банковские выписки.
  2. Нажмите «Загрузить» и укажите файл.
  3. Проверьте банковский счёт организации и период.
  4. Просмотрите список операций: документы, у которых не определён контрагент или договор, подсвечиваются — их стоит разобрать до загрузки.

Если подключён прямой обмен с банком, файл не нужен: выписка приходит через сервис. Но формат 1CClientBankExchange по-прежнему работает в любом банке.

Импорт из другой базы: XML и правила обмена

Когда данные лежат в другой базе 1С, Excel — лишнее звено. Теряются ссылки, виды, связи между объектами. Здесь три варианта.

СпособКогда подходитЧто нужно
Синхронизация данных (EnterpriseData)Обмен между типовыми: БП ↔ УТ, ЗУП → БПНастройка в Администрирование → Синхронизация данных в обеих базах
«Выгрузка и загрузка данных XML»Две базы с одинаковой конфигурациейВнешняя обработка, одинаковые метаданные
«Универсальный обмен данными в формате XML»Конфигурации разные или нетиповыеФайл правил обмена, сделанный в «Конвертации данных» 2.x

Универсальный обмен по правилам

Обработка V8Exchan83.epf («Универсальный обмен данными в формате XML») сама ничего не знает о ваших конфигурациях. Всю логику — какой объект куда переносить, по каким полям искать — задаёт файл правил .xml.

  1. В базе-источнике откройте обработку через Файл → Открыть.
  2. На вкладке выгрузки укажите файл правил, период и нужные объекты, затем выгрузите данные в файл.
  3. В базе-приёмнике откройте ту же обработку, перейдите на вкладку загрузки, выберите файл данных и запустите загрузку.
  4. Сверьте результат: остатки по ключевым счетам, количество элементов справочников.

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

Внешние обработки и расширения для загрузки

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

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

Известная обработка «Загрузка данных из табличного документа» позволяет залить Excel в любой справочник, документ или регистр сведений . Вы сами указываете, какая колонка в какой реквизит идёт и по какому полю искать ссылки.

Минусы: она обходит часть логики конфигурации. Документы загружаются, но их надо проводить отдельно, а обязательные реквизиты, которые типовая форма заполняет автоматически, остаются пустыми. Для справочников это терпимо, для документов — рискованно.

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

Своя обработка: чтение CSV и Excel

Для повторяющейся загрузки из одного и того же файла проще написать короткую обработку. Пример чтения CSV с разделителем «;»:

Чтение = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
Строка = Чтение.ПрочитатьСтроку(); // заголовки пропускаем
Строка = Чтение.ПрочитатьСтроку();
Пока Строка <> Неопределено Цикл
    Поля = СтрРазделить(Строка, ";", Истина);
    Артикул      = СокрЛП(Поля[0]);
    Наименование = СокрЛП(Поля[1]);
    Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
    Если Ссылка.Пустая() Тогда
        Объект = Справочники.Номенклатура.СоздатьЭлемент();
        Объект.Артикул = Артикул;
        Объект.Наименование = Наименование;
        Объект.Записать();
    КонецЕсли;
    Строка = Чтение.ПрочитатьСтроку();
КонецЦикла;
Чтение.Закрыть();

Файл Excel платформа 8.3 читает без установленного Excel — через табличный документ:

ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
    Адрес = "R" + Формат(НомерСтроки, "ЧГ=0") + "C1";
    Артикул = СокрЛП(ТабДок.Область(Адрес).Текст);
    // дальше — так же, как в примере с CSV
КонецЦикла;

Если файл из Excel сохранён в Windows-1251, во втором параметре ЧтениеТекста укажите "windows-1251" — иначе вместо кириллицы получите «кракозябры».

Почему лучше расширение, а не правка конфигурации

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

Регулярная загрузка по расписанию

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

  • ⏰ Дополнительная обработка с расписанием. В конфигурациях на БСП внешнюю обработку можно зарегистрировать в Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки и задать расписание запуска её команды. Обработку нужно писать с поддержкой этого механизма.
  • 🧩 Регламентное задание в расширении. Самый надёжный вариант для клиент-серверной базы: задание выполняется на сервере 1С по расписанию, без открытых сеансов.
  • 🌐 HTTP-сервис или OData. Внешняя система (сайт, WMS) сама отправляет данные в 1С. Стандартный интерфейс OData включается в разделе синхронизации данных и требует публикации базы на веб-сервере.

💡 В файловой базе регламентные задания выполняются только внутри запущенного клиентского сеанса. Если ночью никто не открыл 1С, загрузка не пройдёт. Для автоматизации по расписанию нужна клиент-серверная база или запуск 1С на отдельном компьютере, который не выключают.

При автоматической загрузке обязательно пишите журнал: сколько строк прочитано, сколько создано, какие пропущены и почему. Без него об ошибке узнают через неделю, от кладовщика.

Перед запуском автоматического импорта
Выполнено: 0 / 6

Почему данные не загружаются в 1С

Ошибки при импорте почти всегда сводятся к нескольким причинам. Разберите свою по симптому:

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

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

Можно ли загрузить в 1С файл .xls старого формата?
Платформа 8.3 читает и .xls, и .xlsx. Если старый файл открывается с ошибкой, пересохраните его в Excel как .xlsx — это снимает большинство проблем.
Как загрузить в 1С начальные остатки из старой программы?
Штатно — документом ввода остатков в Бухгалтерии 3.0, табличную часть которого можно заполнить из файла. Если старая программа — тоже 1С, надёжнее перенести остатки через обмен XML с правилами.
Нужен ли установленный Excel на компьютере?
Нет. Платформа читает файлы Excel сама через табличный документ. Excel нужен только для того, чтобы подготовить файл.
Как отменить неудачную загрузку?
Отдельной кнопки отмены нет. Восстановите базу из копии, сделанной перед импортом, или пометьте созданные элементы на удаление и удалите их через Администрирование → Обслуживание → Удаление помеченных объектов.
Сколько строк можно загрузить за один раз?
Жёсткого ограничения нет, но на 10–20 тысячах строк штатная форма работает медленно. Большие объёмы делите на части по несколько тысяч строк или грузите своей обработкой на сервере.