Загрузка данных из Excel в 1С 8.3: от подготовки файла до автообмена

· 9 мин

Содержание

Импортировать таблицу из Excel в 1С 8.3 можно тремя способами: встроенной командой «Загрузить» в списке справочника или в табличной части документа, универсальной внешней обработкой «Загрузка данных из табличного документа» или собственным кодом, который читает файл через ТабличныйДокумент. Для разовой загрузки до нескольких тысяч строк хватает первых двух, для регулярного обмена нужен третий.

Типичная ситуация: поставщик прислал прайс на 800 позиций, а новый клиент — список из 300 контрагентов из старой программы. Вбивать руками — два рабочих дня. Загрузка из Excel занимает 15–30 минут, но только если файл подготовлен. Большинство проблем при импорте данных возникает именно на этом шаге, поэтому начнём с него.

Как подготовить файл Excel к загрузке в 1С

1С читает ячейки буквально. Всё, что человек видит «на глаз», программа может не увидеть: объединённые ячейки, формулы, лишние пробелы.

Приведите таблицу к виду «одна строка — один элемент, один столбец — один реквизит»:

  1. Оставьте одну строку заголовков — первую. Шапки из нескольких уровней, логотипы и строки «Итого» удалите.
  2. Разъедините объединённые ячейки. Значение остаётся только в левой верхней, остальные после загрузки окажутся пустыми.
  3. Замените формулы значениями: выделите столбец, скопируйте и вставьте через «Специальная вставка → Значения».
  4. Уберите лишние пробелы функцией =СЖПРОБЕЛЫ(A2) в соседнем столбце, затем снова вставьте как значения. Пробел в конце артикула — частая причина того, что 1С «не находит» существующую позицию.
  5. Числа храните как числа. Цена 1 250,00 руб. текстом не распознается. Нужно 1250 или 1250,00 без единиц измерения.
  6. ИНН, КПП, коды и артикулы с ведущими нулями храните как текст. Иначе ИНН 0274012345 превратится в число 274012345 и не пройдёт проверку.
  7. Удалите пустые строки внутри таблицы и скрытые столбцы.
  8. Сохраните файл в формате .xlsx.

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

Отдельно продумайте, какие значения ссылочные. Единица измерения, ставка НДС, группа номенклатуры, страна — это элементы справочников. В файле они должны быть записаны так же, как в 1С: шт, а не шт. и не штука.

Встроенная загрузка в типовых конфигурациях

В БП 3.0, УТ 11, КА 2 и ERP загрузку из файла уже встроили в формы. Это самый безопасный способ: внешняя обработка не нужна, права проверяет сама программа.

Что загружаемГде искать команду (БП 3.0)
НоменклатураСправочники → Номенклатура, кнопка «Загрузить» в командной панели списка
КонтрагентыСправочники → Контрагенты, команда загрузки в списке или в меню «Ещё»
Товары в документТабличная часть документа, например «Поступление (акты, накладные)», кнопка «Загрузить» над таблицей

В УТ 11 и ERP порядок тот же, но справочник находится в разделе НСИ и администрирование.

Как проходит загрузка в справочник:

  1. Нажмите «Загрузить». Откроется форма с пустой таблицей-шаблоном.
  2. Скопируйте данные из Excel (без строки заголовков или вместе с ней — форма предложит сопоставить столбцы) и вставьте в шаблон через Ctrl+V. Либо выберите файл кнопкой загрузки из файла.
  3. Укажите, какой столбец файла чему соответствует в 1С.
  4. Перейдите к сопоставлению. Программа покажет, какие строки нашла в базе, а какие будут созданы как новые.
  5. Проверьте спорные строки и запустите загрузку.

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

Обработка «Загрузка данных из табличного документа»

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

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

  1. Запустите 1С в режиме «1С:Предприятие» под пользователем с полными правами.
  2. Откройте главное меню (кнопка с тремя полосками в левом верхнем углу) → Файл → Открыть и выберите файл .epf.
  3. Подтвердите открытие в окне предупреждения безопасности.

Платформа 8.3 защищает от запуска внешних обработок. Если окно предупреждения не даёт продолжить, у пользователя не включена защита-исключение или нет права на внешние обработки. Права выдаёт администратор в Администрирование → Настройки пользователей и прав.

Основные настройки

В верхней части формы выберите режим загрузки:

  • 📁 в справочник — создать или обновить элементы;
  • 📄 в табличную часть — заполнить строки существующего документа;
  • 📊 в регистр сведений — например, загрузить цены или курсы.

Затем укажите объект: какой именно справочник или документ. Обработка покажет список его реквизитов.

На вкладке с табличным документом нажмите кнопку открытия файла и выберите Excel-файл. Либо вставьте данные из буфера. Укажите номер первой строки данных — обычно 2, если в первой строке заголовки.

Сопоставление полей и типов данных

Это главный экран обработки. Для каждого реквизита задаются четыре вещи.

ПараметрЧто значитПример
ПометкаЗагружать ли реквизит вообщеСнимите с полей, которых нет в файле
Поле поискаПо этому реквизиту ищется существующий элементАртикул для товаров, ИНН для контрагентов
Номер колонкиИз какого столбца файла брать значениеАртикул — колонка 1, наименование — 2
РежимИскать / Устанавливать / ВычислятьДля ссылочных полей — «Искать»

Как работает режим для ссылочных реквизитов

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

Не нашла — оставит поле пустым. Новую единицу измерения она сама не создаст. Поэтому все ссылочные значения должны заранее существовать в базе.

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

Режим «Вычислять» позволяет написать выражение на встроенном языке. Например, собрать полное наименование из двух колонок. Пользуйтесь им, только если уверены в синтаксисе.

Флаг «Не создавать новых элементов»

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

Перед финальной загрузкой нажмите «Контроль заполнения». Обработка подсветит строки, где не найдены ссылочные значения или не распознаны числа. Исправьте их в файле, перезагрузите файл в обработку и повторите контроль.

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

Перед загрузкой в рабочую базу сделайте резервную копию. Отменить массовую загрузку одной кнопкой нельзя: созданные элементы придётся помечать на удаление вручную.

Импорт номенклатуры и контрагентов: в чём разница

Номенклатура

Главный вопрос — по какому полю искать. Наименование для этого не годится: Бумага А4 Снегурочка и Бумага А4 "Снегурочка" — для 1С разные строки. Ищите по артикулу или коду. Если артикулов нет, сначала заведите их в Excel.

Что ещё учесть в БП 3.0:

  • 🏷 Вид номенклатуры определяет счёт учёта: товар, материал, услуга. Загружайте разные виды отдельными порциями или указывайте вид в отдельной колонке.
  • 📏 Единица измерения должна существовать в классификаторе базы.
  • 📂 Группы создайте заранее, иначе всё упадёт в корень справочника.
  • 💰 Цены в справочник не загружаются. Цены хранятся отдельно и задаются документом «Установка цен номенклатуры» — его табличную часть тоже можно заполнить из файла.

Контрагенты

Поле поиска — ИНН. Для обособленных подразделений одной организации ИНН совпадает, поэтому ищите по паре ИНН + КПП.

Особенности:

  • 👤 Укажите вид контрагента — юридическое или физическое лицо. От него зависят обязательные поля.
  • 🏦 Банковские счета — отдельный справочник, подчинённый контрагенту. Загружайте их вторым проходом, когда контрагенты уже есть в базе.
  • 📇 Контактную информацию (адреса, телефоны) универсальная обработка загружает плохо: она хранится в табличной части в особом формате. Адреса проще дозаполнить после загрузки.

В БП 3.0 при подключённой интернет-поддержке реквизиты контрагента заполняются по ИНН из ЕГРЮЛ. Если загрузить только ИНН и наименование, остальное можно дозаполнить командой заполнения по ИНН в карточке, без ручного ввода.

Ошибки при импорте из Excel и как их исправить

Большая часть сбоев видна ещё на этапе контроля заполнения. Ниже — те, что проявляются уже после загрузки.

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

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

Автоматизация регулярной загрузки

Если поставщик присылает прайс каждую неделю, ручная загрузка превращается в рутину. Варианты автоматизации — от простого к сложному:

СпособКогда подходитЧто нужно
Сохранённые настройки обработкиФормат файла не меняетсяСохранить настройки в обработке и выбирать их при загрузке
Своя обработка или расширениеНужна логика: наценка, фильтр, проверкаПрограммист 1С
Регламентное заданиеФайл регулярно появляется в сетевой папкеСерверная база, расширение с заданием
Обмен через EnterpriseData или веб-сервисДанные идут из другой системы, а не из ExcelНастройка обмена с обеих сторон

В универсальной обработке настройки сопоставления сохраняются в файл и загружаются обратно. Это первый и самый дешёвый шаг: сопоставление колонок делается один раз.

Пример кода для загрузки из файла

Ниже — основа для своей обработки или регламентного задания. Код читает файл, ищет номенклатуру по артикулу из первой колонки и обновляет наименование из второй. Новые элементы не создаёт: в БП и УТ у номенклатуры есть обязательные реквизиты, которые нужно заполнять по правилам конкретной конфигурации.

Процедура ОбновитьНаименованияИзExcel(ИмяФайла) Экспорт

    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);

    Обновлено = 0;
    НеНайдено = 0;

    Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл

        Артикул      = СокрЛП(ТабДок.Область(НомерСтроки, 1).Текст);
        Наименование = СокрЛП(ТабДок.Область(НомерСтроки, 2).Текст);

        Если ПустаяСтрока(Артикул) Или ПустаяСтрока(Наименование) Тогда
            Продолжить;
        КонецЕсли;

        Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
        Если Ссылка.Пустая() Тогда
            НеНайдено = НеНайдено + 1;
            Продолжить;
        КонецЕсли;

        Объект = Ссылка.ПолучитьОбъект();
        Если Объект.Наименование <> Наименование Тогда
            Объект.Наименование = Наименование;
            Объект.Записать();
            Обновлено = Обновлено + 1;
        КонецЕсли;

    КонецЦикла;

    Сообщить(СтрШаблон("Обновлено: %1, не найдено по артикулу: %2",
        Формат(Обновлено, "ЧН=0; ЧГ=0"), Формат(НеНайдено, "ЧН=0; ЧГ=0")));

КонецПроцедуры

Чтение .xlsx методом Прочитать выполняется на той стороне, где лежит файл. Для регламентного задания файл должен быть доступен серверу 1С — по пути, который видит пользователь, под которым работает служба сервера.

Отлаживайте такой код на копии базы. Ошибка в номере колонки за один запуск перезапишет наименования тысяч позиций.

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

Можно ли загрузить из Excel остатки на начало работы?
Да. Остатки вводят документами ввода начальных остатков, а их табличные части заполняются из файла той же командой «Загрузить» или универсальной обработкой в режиме загрузки в табличную часть.
Сколько строк можно загрузить за один раз?
Жёсткого лимита нет, но на 10–20 тысячах строк загрузка может идти десятки минут. Большой файл надёжнее разбить на части по 2–5 тысяч строк.
Нужен ли установленный Excel на компьютере?
Для чтения .xlsx платформой 8.3 — нет, табличный документ читает этот формат сам. Excel нужен только для подготовки файла.
Подойдёт ли CSV вместо Excel?
Встроенная загрузка и универсальная обработка работают с табличным документом, поэтому CSV проще сначала открыть в Excel и сохранить как .xlsx. Следите, чтобы при открытии не сбилась кодировка и не обрезались ведущие нули.
Как загрузить картинки товаров из Excel?
Изображения, вставленные в ячейки Excel, не загружаются. Картинки прикрепляют к номенклатуре отдельно, как присоединённые файлы, — вручную или обработкой, которая берёт их из папки по имени файла, совпадающему с артикулом.