Загрузка справочников в 1С 8.3: четыре рабочих способа

· 9 мин

Содержание

Для разового переноса номенклатуры или контрагентов из Excel в 1С 8.3 проще всего встроенная кнопка загрузки в самом справочнике или типовая обработка ЗагрузкаДанныхИзТабличногоДокумента. Если переносите справочник целиком из одной базы 1С в другую — работает выгрузка-загрузка через XML. Регулярный импорт по расписанию закрывают внешней обработкой с кодом.

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

Что проверить в файле перед загрузкой

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

  • 📋 Один лист, одна шапка. Данные на первом листе, первая строка — заголовки колонок, дальше без пустых строк и промежуточных итогов.
  • 🔢 Коды и ИНН — текстом. Excel режет ведущие нули и переводит длинные числа в формат 1,2E+10. Задайте колонкам с кодом, ИНН, артикулом текстовый формат заранее.
  • 🧹 Чистые значения. Уберите лишние пробелы по краям, переносы строк внутри ячеек, двойные пробелы. Единицы измерения и ставки НДС приведите к тем же названиям, что в базе («шт», «20%»).
  • 🔑 Поле для поиска дублей. Решите, по какому реквизиту 1С будет отличать новый элемент от существующего: для номенклатуры это артикул или наименование, для контрагентов — ИНН+КПП.

Перед массовой загрузкой в рабочую базу сделайте резервную копию. Через Администрирование → Обслуживание → Резервное копирование и восстановление. Откатить сотни ошибочно созданных элементов вручную — долго и опасно.

Сохраните файл в .xlsx или .ods — эти форматы 1С читает напрямую. Старый .xls тоже подходит, но с ним чаще бывают проблемы кодировки.

Готовность файла к загрузке
Выполнено: 0 / 6

Загрузка из Excel встроенной кнопкой справочника

В «1С:Бухгалтерии 8» (ред. 3.0) номенклатуру и цены можно загрузить без всяких обработок — прямо из списка справочника.

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

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

Сопоставление полей
Наименование→Наименование (полное и для печати)
Артикул→Артикул
Единица измерения→Единица (справочник ЕИ)
Ставка НДС→Ставка НДС
Группа / категория→Папка справочника
Цена→Регистр «Цены номенклатуры» (отдельный документ)

Цена — это не реквизит номенклатуры, а запись в регистре. Встроенная загрузка умеет сразу создать документ установки цен, но для этого в базе должен быть заведён нужный тип цен (Справочники → Цены → Виды цен).

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

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

Для контрагентов отдельной такой кнопки в типовой «Бухгалтерии» нет. Их грузят либо универсальной обработкой (следующий раздел), либо по одному через сервис проверки по ИНН. Это ограничение самой конфигурации, а не ошибка настройки.

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

Это рабочая лошадка для любого справочника, у которого нет своей кнопки загрузки. Обработка ЗагрузкаДанныхИзТабличногоДокумента.epf входит в комплект поставки и лежит на диске ИТС.

Как открыть обработку:

  • Разово — через Файл → Открыть выбрать файл .epf на диске.
  • Постоянно — зарегистрировать как дополнительную в Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. Тогда она будет доступна из меню без ручного открытия файла.

Открытие внешних обработок должно быть разрешено. Если Файл → Открыть не предлагает .epf, проверьте право профиля пользователя и флаг разрешения внешних обработок в настройках безопасности базы.

Порядок настройки внутри обработки:

  1. На вкладке режима загрузки выберите тип данных — Справочник — и конкретный вид справочника (Номенклатура, Контрагенты, Физические лица и т. д.).
  2. Загрузите исходный файл Excel в табличную часть обработки.
  3. Сопоставьте колонки файла с реквизитами справочника: напротив каждого реквизита укажите номер колонки.
  4. Для реквизитов-ссылок (единица измерения, страна, вид контрагента) задайте режим поиска: по какому полю искать существующее значение и что делать, если не нашли — создавать или пропускать.
  5. Обязательно настройте поиск существующих элементов по уникальному реквизиту (код, артикул, ИНН), иначе при повторном запуске получите дубли.
  6. Запустите загрузку и посмотрите на служебные сообщения: обработка пишет, сколько строк загружено и где были ошибки.

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

Перенос справочника через выгрузку и загрузку XML

Когда данные нужно перенести не из Excel, а из другой базы 1С, таблица — лишний посредник. Справочник выгружают в XML и загружают целиком, со всеми реквизитами и ссылками.

Случай 1. Конфигурации одинаковые (из копии БП 3.0 в другую БП 3.0). Подойдёт типовая обработка ВыгрузкаЗагрузкаДанныхXML.epf с диска ИТС:

  1. В базе-источнике откройте обработку, на вкладке выгрузки отметьте нужный справочник (можно с отбором по группе или периоду).
  2. Выгрузите в файл .xml.
  3. В базе-приёмнике той же обработкой загрузите этот файл.

Объекты переносятся с теми же внутренними идентификаторами (GUID), поэтому ссылки между справочниками не рвутся: если вместе с номенклатурой выгрузить единицы измерения и виды, в приёмнике всё свяжется автоматически. При выгрузке можно задать отбор — по группе, дате создания или произвольному условию, — чтобы перенести не весь справочник, а только нужную часть.

Случай 2. Конфигурации разные (например, из УТ 11 в БП 3.0). Прямая выгрузка не сработает — структуры объектов отличаются. Нужны правила обмена:

  • Правила создаются в конфигурации Конвертация данных (отдельный продукт 1С) и сохраняются в файл .xml.
  • Выгрузку и загрузку по этим правилам выполняет обработка УниверсальныйОбменДаннымиXML.epf: сначала выгрузка из источника по правилам, затем загрузка в приёмник.

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

СитуацияИнструментНужны правила
Из копии той же конфигурацииВыгрузкаЗагрузкаДанныхXMLНет
Между разными конфигурациямиУниверсальныйОбменДаннымиXML + Конвертация данныхДа
Регулярный обмен типовыхСинхронизация (EnterpriseData)Нет (формат встроен)

Загрузка справочника внешней обработкой и автоматизация

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

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

НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтрагент.Наименование = "ООО Ромашка";
НовыйКонтрагент.ИНН         = "7701234567";
НовыйКонтрагент.КПП         = "770101001";
НовыйКонтрагент.Записать();

Чтобы не плодить дубли, перед созданием ищите существующий элемент по уникальному реквизиту и пишите только новые:

Отбор = Новый Структура("ИНН, КПП", ИНН, КПП);
НайденныеСтроки = Справочники.Контрагенты.Выбрать(, , Отбор);
Если НайденныеСтроки.Следующий() Тогда
    Элемент = НайденныеСтроки.ПолучитьОбъект(); // обновляем существующий
Иначе
    Элемент = Справочники.Контрагенты.СоздатьЭлемент(); // создаём новый
КонецЕсли;

Готовую обработку регистрируют в Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки и привязывают к расписанию: там же, в карточке обработки, задаётся регламентное задание с нужной периодичностью.

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

Для разбора исходного файла Excel в коде обычно читают его как табличный документ или через COM-подключение к Excel. Если такого опыта нет — начните с типовой обработки загрузки из табличного документа, а к собственному коду переходите, когда понадобится автоматизация.

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

Почему загрузка срывается: разбор частых сбоев

Большинство ошибок — это несовпадение данных файла и структуры справочника, а не поломка механизма. Диагностика по симптому:

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

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

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

Можно ли загрузить справочник, не открывая внешние обработки?
Для номенклатуры и цен в «Бухгалтерии 3.0» — да, встроенной кнопкой Загрузить в списке справочника. Для остальных справочников встроенной загрузки из Excel обычно нет, понадобится типовая обработка с диска ИТС.
Как при повторной загрузке не создать дубли, а обновить существующие?
Настройте в обработке поиск существующих элементов по уникальному реквизиту (код, артикул, ИНН) и режим «обновлять найденный». Тогда повторный запуск того же файла не создаст копии, а перезапишет данные.
Чем отличается загрузка через XML от загрузки из Excel?
XML переносит объекты между базами 1С целиком, со ссылками и идентификаторами, — это обмен между базами. Excel-загрузка создаёт элементы из плоской таблицы и подходит для данных из внешних систем.
Нужны ли права администратора для загрузки?
Для встроенной кнопки — нет, достаточно прав на изменение справочника. Для открытия внешних обработок нужно, чтобы в профиле пользователя было разрешено их использование, а в настройках базы — сняты ограничения на внешние обработки.
Как перенести справочник из УТ в Бухгалтерию?
Прямая XML-выгрузка не подойдёт — конфигурации разные. Используйте универсальный обмен по правилам из «Конвертации данных» или настройте синхронизацию через универсальный формат в разделе синхронизации данных.