К статье
Практический материал

Справочники и Данные · 10 мин

Как загрузить данные из табличного документа в 1С

Как загрузить данные из табличного документа в 1С: подготовка Excel-файла, типовые обработки, сопоставление колонок, проверка результата и типичные ошибки.

Загрузка данных из табличного документа — типовая задача при переходе на 1С, массовом обновлении цен, пополнении справочника номенклатуры или переносе остатков. Чаще всего исходником служит файл Excel (xlsx, xls) или таблица CSV, которую нужно превратить в элементы справочников, документы или записи регистров сведений.

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

Главные причины неудач при загрузке — неподготовленный файл (объединённые ячейки, формулы, лишние строки), неверное сопоставление колонок и отсутствие контроля дублей. Ниже разобраны подготовка файла, типовые и внешние инструменты, программная загрузка и проверка результата.

Подготовка файла Excel перед загрузкой

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

Перед загрузкой уберите объединённые ячейки, замените формулы значениями (копировать → вставить как значения), удалите скрытые листы с мусором и проверьте, что числа хранятся как числа, а не как текст. Коды и артикулы с ведущими нулями, наоборот, приведите к текстовому формату, иначе Excel обрежет нули и поиск в 1С не сработает.

Даты приводите к единому формату, понятному 1С (например, ДД.ММ.ГГГГ). Если в колонке встречаются разные типы данных — строки и числа вперемешку, — обработка может прочитать колонку целиком как текст, и сопоставление с числовым реквизитом даст ошибку или пустые значения.

Типовые средства загрузки в конфигурациях 1С

В конфигурациях на БСП (Библиотека стандартных подсистем) есть универсальная обработка «Загрузка данных из файла». Она находится в разделе «Администрирование» → «Переносы и загрузка данных» либо вызывается из формы списка конкретного справочника по кнопке «Загрузить данные из файла». Обработка умеет читать xlsx, xls, mxl, csv и сопоставлять колонки с реквизитами объекта.

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

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

Внешние обработки и когда они нужны

Когда типовой инструмент не покрывает задачу — например, нужно заполнить табличную часть документа, загрузить данные в регистр сведений или выполнить сложный поиск по нескольким полям — используют внешние обработки. Широко известна обработка «Загрузка данных из табличного документа» с диска ИТС: она открывается через «Файл» → «Открыть» и поддерживает гибкую настройку соответствия колонок, выражения для преобразования значений и режимы поиска.

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

Программная загрузка через встроенный язык

Для регулярных загрузок по расписанию или нестандартной логики пишут собственный код. Классический подход — чтение файла через COM-объект Excel (только на Windows с установленным Excel), более универсальный — через объект ТабличныйДокумент, который умеет читать xlsx, mxl и csv без внешних зависимостей.

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

ТабДок = Новый ТабличныйДокумент;

ТабДок.Прочитать("C:\data\nomenklatura.xlsx",

СпособЧтенияЗначенийТабличногоДокумента.Значение);

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

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

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

Если ПустаяСтрока(Наименование) Тогда

Продолжить;

КонецЕсли;

Элемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);

Если Элемент.Пустая() Тогда

Новый = Справочники.Номенклатура.СоздатьЭлемент();

Новый.Артикул = Артикул;

Новый.Наименование = Наименование;

Новый.Записать();

КонецЕсли;

КонецЦикла;

Для больших файлов чтение через ТабличныйДокумент может быть медленным и требовательным к памяти — в таких случаях файл предварительно конвертируют в CSV и читают через ЧтениеТекста построчно. Это заметно быстрее и позволяет обрабатывать файлы на сотни тысяч строк.

Сопоставление колонок и поиск существующих элементов

Ключевой этап — решить, как загрузчик поймёт, что строка файла соответствует уже существующему элементу базы. Для номенклатуры это обычно артикул или штрихкод, для контрагентов — ИНН и КПП, для физических лиц — ФИО в сочетании с датой рождения. Поиск только по наименованию ненадёжен: расхождения в пробелах, кавычках и регистре порождают дубли.

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

Типичные ошибки
01
Поиск элементов только по наименованию — получаются дубли из-за различий в написании
02
Загрузка чисел и дат как текста — реквизиты остаются пустыми или падают с ошибкой преобразования
03
Потеря ведущих нулей в артикулах и кодах из-за числового формата ячеек Excel
04
Загрузка всего файла без теста на 5–10 строках — ошибка сопоставления обнаруживается после создания тысяч записей
05
Игнорирование протокола загрузки — часть строк пропущена, а пользователь считает, что загружено всё

Проверка результата после загрузки

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

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

Контрольные точки

Как проверить результат

Счётчики в протоколе
Норма

Создано + обновлено + пропущено = числу строк файла

Тревожный признак

Строки «потерялись» без объяснения причины

Случайные элементы
Норма

Реквизиты заполнены, типы и значения корректны

Тревожный признак

Числа как текст, пустые обязательные реквизиты

Дубли
Норма

Поиск по ключевому полю даёт один элемент

Тревожный признак

Несколько элементов с одинаковым артикулом или ИНН

Ограничения и альтернативные способы

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

Учитывайте и технические ограничения: чтение больших xlsx-файлов целиком в память может завершиться ошибкой нехватки памяти, а на сервере Linux COM-объект Excel недоступен. В клиент-серверном режиме файл должен быть доступен с той стороны, где выполняется код, — частая ошибка, когда обработка на сервере пытается прочитать файл с диска C: пользователя.

Сравнение вариантов загрузки

Типовая обработка «Загрузка данных из файла»

Подходит для справочников и простых объектов; не требует программирования, но ограничена стандартными сценариями

Внешняя обработка с ИТС

Гибкое сопоставление, выражения, режимы поиска; требует права открытия внешних обработок

Собственный код

Любая логика и автоматизация по расписанию; нужны навыки разработки и тестирование на копии

CSV вместо xlsx

Быстро и надёжно для больших объёмов; нет форматирования, нужно контролировать разделители и кодировку

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

Почему обработка не видит мой файл Excel?

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

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

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

Что делать, если после загрузки появились дубли?

Не удаляйте элементы вручную по одному — используйте типовую обработку «Поиск и удаление дублей» (в разделе «Администрирование» → «Обслуживание»). Она объединяет элементы с заменой ссылок во всех документах. Перед запуском сделайте копию базы.

Можно ли загружать данные в 1С:Бухгалтерию 3.0 из Excel?

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

Какая кодировка нужна для CSV-файла?

Наиболее совместимый вариант — UTF-8. Если файл сохранён в ANSI (Windows-1251), при чтении через ЧтениеТекста укажите кодировку явно, иначе кириллица превратится в нечитаемые символы. Excel при сохранении в CSV позволяет выбрать «CSV UTF-8».

Обязательно ли делать резервную копию перед загрузкой?

Да, перед любой массовой загрузкой в рабочую базу. Для файловой базы достаточно скопировать каталог или сделать выгрузку в dt; для клиент-серверной — штатную резервную копию СУБД. Это единственный способ быстро откатить результат ошибочной загрузки.

Итог

Что важно запомнить

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