Справочники и Данные · 11 мин
Как загрузить DBF-файл в 1С: практическое руководство
Как загрузить DBF-файл в 1С: встроенные обработки, объект XBase, типовые решения, типичные ошибки при импорте и проверка результата загрузки.
Формат DBF (dBase) до сих пор активно используется для обмена данными: банковские выписки, выгрузки из старых учётных систем, справочники контрагентов и номенклатуры нередко приходят именно в этом виде. В 1С загрузить DBF можно несколькими способами — от типовых обработок «загрузка данных из табличного документа» до программной работы через объект XBase. Выбор зависит от версии платформы, конфигурации и того, разовая это задача или регулярный обмен.
Главная сложность при работе с DBF — не сама загрузка, а подготовка файла: кодировка, типы полей, ограничения на длину имён колонок. Если файл подготовлен правильно, импорт занимает минуты. Если нет — вы получите кракозябры вместо текста, обрезанные строки или ошибки преобразования типов. Поэтому половина этой статьи посвящена проверке и подготовке исходного файла.
Ниже разобраны три рабочих способа загрузки: через типовую обработку, через универсальную обработку с диска ИТС и программно через XBase. Для каждого приведены точные шаги, ограничения и способы проверить результат.
Что проверить в DBF-файле перед загрузкой
DBF — старый формат с жёсткими ограничениями. Имена полей не могут быть длиннее 10 символов, строковые поля имеют фиксированную длину, а кодировка чаще всего либо DOS (CP866), либо Windows (CP1251). Если открыть файл в Excel и увидеть вопросительные знаки или иероглифы вместо русского текста — проблема именно в кодировке, и её нужно решить до загрузки в 1С.
Откройте файл в Excel, LibreOffice Calc или специализированном просмотрщике DBF и проверьте: читаемость текста, соответствие типов данных содержимому (числа не содержат букв, даты выглядят как даты), отсутствие пустых обязательных колонок. Заодно убедитесь, что первая строка данных не «съехала» — иногда в DBF попадают служебные строки-заголовки.
Если файл открывается с неправильной кодировкой, пересохраните его в LibreOffice Calc с явным указанием кодировки или используйте конвертер. Пытаться чинить кодировку уже на этапе загрузки в 1С можно только при программном способе — там она задаётся явно.
Попробуйте открыть файл с кодировкой CP866 или CP1251
Проверьте, не урезаны ли длинные наименования ещё при выгрузке
Потребуется преобразование при загрузке
Проверьте расширение и размер, запросите файл повторно
Способ 1: типовая обработка «Загрузка данных из табличного документа»
В конфигурациях на базе Библиотеки стандартных подсистем (УТ 11, ERP, КА, БП 3.0 и других) есть встроенная обработка загрузки из табличного документа. Она не читает DBF напрямую, поэтому файл сначала конвертируют: открывают DBF в Excel и сохраняют как XLSX или MXL, либо сразу открывают табличный документ в 1С.
Найдите обработку в разделе «Администрирование» → «Загрузка данных из табличного документа» (в некоторых конфигурациях — через «Все функции» → «Обработки»). Далее порядок такой: выберите вид загружаемого объекта (например, «Номенклатура» или «Контрагенты»), откройте подготовленный табличный файл, сопоставьте колонки файла реквизитам объекта и запустите загрузку.
Ключевой этап — сопоставление колонок. Обработка пытается определить соответствие автоматически по заголовкам, но для DBF с короткими именами полей (NAME, KOD, INN) автоматика часто не срабатывает. Назначьте соответствие вручную: каждой колонке укажите реквизит объекта 1С. Колонки без соответствия просто не загрузятся.
- 1Сделайте резервную копию информационной базы
- 2Откройте DBF в Excel, проверьте данные и сохраните как XLSX
- 3Откройте обработку «Загрузка данных из табличного документа»
- 4Выберите вид объекта и загрузите файл
- 5Сопоставьте колонки файла реквизитам объекта
- 6Запустите загрузку в режиме тестирования, затем — реальную
- 7Проверьте загруженные элементы в справочнике
Способ 2: универсальные обработки для DBF
Для конфигураций без БСП или когда нужна прямая работа с DBF используются внешние обработки. Классический вариант — обработка загрузки данных, которая читает DBF через встроенный в платформу объект XBase и заполняет справочники или документы по настраиваемому соответствию полей.
Подобные обработки распространяются на диске ИТС и в типовых поставках старых конфигураций (например, обработка «Загрузка данных из DBF» встречалась в комплектах торговых решений). Если ваша конфигурация самописная или сильно доработанная, такой вариант часто оказывается быстрее, чем адаптация БСП-обработки.
При использовании внешних обработок из сторонних источников соблюдайте осторожность: обработка исполняет код в вашей базе с полными правами текущего пользователя. Открывайте файлы только из доверенных источников и сначала тестируйте на копии базы.
Способ 3: программная загрузка через XBase
Объект XBase — встроенный механизм платформы 1С для прямого чтения и записи DBF-файлов. Это самый гибкий способ: вы полностью контролируете кодировку, типы полей, фильтрацию записей и логику поиска существующих элементов. Подходит для регулярных обменов и нестандартных структур данных.
Минимальный пример чтения DBF выглядит так:
ДБФ = Новый XBase;
ДБФ.Кодировка = КодировкаXBase.Windows; // или DOS
ДБФ.ОткрытьФайл("C:\Обмен\sprav.dbf");
Пока ДБФ.Следующая() Цикл
Наименование = СокрЛП(ДБФ.NAME);
ИНН = СокрЛП(ДБФ.INN);
// поиск или создание элемента справочника
Контрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", ИНН);
Если Контрагент.Пустая() Тогда
НовыйЭлемент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйЭлемент.Наименование = Наименование;
НовыйЭлемент.ИНН = ИНН;
НовыйЭлемент.Записать();
КонецЕсли;
КонецЦикла;
ДБФ.ЗакрытьФайл();
Обратите внимание на свойство Кодировка: значение КодировкаXBase.Windows соответствует CP1251, КодировкаXBase.DOS — CP866. Если после загрузки русский текст нечитаем — смените кодировку и повторите на тестовой копии. Также помните, что поля DBF обращаются по имени, и имя должно точно совпадать с именем поля в файле, включая регистр в некоторых случаях.
Для регулярной загрузки код оформляют как внешнюю обработку или регламентное задание. Обязательно добавьте обработку ошибок: запись в журнал регистрации номера строки, на которой произошёл сбой, иначе при падении на середине файла вы не поймёте, что загрузилось, а что нет.
Сравнение способов загрузки
Выбор способа зависит от частоты задачи, конфигурации и наличия навыков программирования на встроенном языке 1С.
| Критерий | Типовая обработка БСП | Внешняя обработка DBF | XBase (код) |
|---|---|---|---|
| Прямое чтение DBF | Нет, нужна конвертация | Да | Да |
| Нужны навыки программирования | Нет | Нет | Да |
| Контроль кодировки | Через Excel | Зависит от обработки | Полный |
| Подходит для регулярного обмена | Плохо | Средне | Да |
| Гибкость логики поиска дублей | Ограниченная | Средняя | Полная |
Какой способ выбрать
Разовая загрузка справочников в УТ, ERP, БП. Ограничение — нужна конвертация DBF в табличный формат
Разовая загрузка в конфигурации без БСП. Ограничение — риск использования непроверенного кода
Регулярный обмен, нестандартная логика, контроль кодировки. Ограничение — нужен разработчик
Типичные ошибки при загрузке DBF
Самая частая проблема — дубли элементов справочника. Она возникает, когда поиск существующих элементов настроен по наименованию, а в файле наименования отличаются пробелами, регистром или сокращениями. Всегда ищите по ключевому реквизиту: ИНН для контрагентов, артикулу или коду для номенклатуры.
Вторая группа ошибок — типы данных. Числовое поле DBF может содержать значения с плавающей точкой, которые при загрузке в целочисленный реквизит округлятся или вызовут ошибку. Даты в старых DBF иногда хранятся как пустые значения, что приводит к дате «01.01.0001» в 1С — такие записи нужно отфильтровывать.
Как проверить результат загрузки
После загрузки сверьте количество записей: число строк в DBF (с учётом отфильтрованных) должно сходиться с числом созданных и обновлённых элементов. В типовых обработках есть отчёт о результатах загрузки — изучите его, а не просто закройте.
Затем выборочно откройте 5–10 загруженных элементов и сверьте ключевые поля с исходным файлом: наименование, ИНН, коды, числовые значения. Особое внимание — русскому тексту и датам: именно они первыми показывают проблемы с кодировкой и типами.
Как проверить результат
Совпадает с числом строк файла минус отфильтрованные
Расхождение без объяснимой причины
Наименования читаемы
Кракозябры или вопросительные знаки
Реальные даты из файла
Пустые даты или 01.01.0001
Поиск по ИНН/коду не даёт повторов
Несколько элементов с одним ИНН
Часто задаваемые вопросы
Можно ли загрузить DBF в 1С:Бухгалтерию 3.0 без программирования?
Да. Откройте DBF в Excel, сохраните как XLSX, затем используйте обработку «Загрузка данных из табличного документа» (доступна через «Все функции» → «Обработки»). Она позволяет загружать справочники и табличные части без написания кода.
Почему после загрузки русский текст отображается нечитаемыми символами?
Причина в несовпадении кодировки файла и кодировки чтения. DBF-файлы обычно созданы в CP866 (DOS) или CP1251 (Windows). При программной загрузке смените значение свойства Кодировка объекта XBase. При загрузке через Excel пересохраните файл с правильной кодировкой.
Как загрузить только часть записей из DBF?
При программном способе добавьте условие внутри цикла обхода записей — например, пропускать строки с пустым кодом. Также объект XBase поддерживает индексы и фильтры. В типовой обработке можно удалить лишние строки ещё в Excel до загрузки.
Что делать, если в DBF есть помеченные на удаление записи?
Формат DBF поддерживает пометку удаления без физического удаления записи. При чтении через XBase проверяйте признак удалённой записи и пропускайте такие строки, иначе в 1С попадут данные, которые источник считает удалёнными.
Можно ли настроить автоматическую регулярную загрузку DBF?
Да, через регламентное задание, которое программно открывает файл через XBase с сервера и выполняет загрузку. Учтите, что файл должен лежать в каталоге, доступном серверу 1С, а в коде нужны обработка ошибок и запись результатов в журнал регистрации.
Конвертация DBF в Excel теряет данные — в чём причина?
Excel может неверно определить типы колонок: коды с ведущими нулями превращаются в числа и теряют нули, даты меняют формат. Чтобы избежать этого, задавайте текстовый формат колонок при открытии файла или загружайте DBF напрямую через XBase без промежуточной конвертации.
Что важно запомнить
Перед загрузкой DBF проверьте кодировку и типы полей, сделайте резервную копию базы. Для разовой задачи в типовой конфигурации используйте обработку загрузки из табличного документа, для регулярного обмена — программную загрузку через XBase. Поиск дублей ведите по ключевым реквизитам (ИНН, код, артикул), а результат проверяйте по количеству записей и выборочной сверке.