Файлы формата DBF (Database File) до сих пор широко используются для обмена данными между 1С:Предприятие и внешними системами — от устаревших бухгалтерских программ до современных CRM. Несмотря на появление JSON, XML и других форматов, DBF остаётся единственным форматом, который гарантированно поддерживается всеми версиями 1С без дополнительных библиотек. Проблема в том, что стандартные механизмы платформы не всегда позволяют открыть такие файлы "в один клик" — требуется знание нюансов конфигураций, прав доступа и структуры данных.

В этой статье вы найдёте актуальные способы работы с DBF в 1С — от ручного импорта через конфигуратор до автоматизированных обработок для пакетной загрузки. Мы разберём:

  • 🔹 Как открыть DBF напрямую в 1С 8.3 и 1С 7.7 (да, она ещё жива!)
  • 🔹 Какие настройки конфигуратора влияют на успешность импорта
  • 🔹 Почему 1С может "не видеть" файл, хотя он лежит в правильной папке
  • 🔹 Альтернативные утилиты для конвертации DBF в читаемый формат

Особое внимание уделим типичным ошибкам — например, когда 1С выдаёт сообщение "Не является файлом базы данных dBase" или "Неверная структура таблицы". Эти проблемы часто связаны не с самим файлом, а с настройками кодировки или версией формата DBF (от dBase III до FoxPro 2.6).

📊 С какой версией 1С вы работаете?
1С 8.3 (управляемые формы)
1С 8.2 (обычные формы)
1С 7.7
Не знаю версию
Другая конфигурация

1. Открытие DBF через стандартный импорт в 1С 8.3

Самый очевидный способ — использовать встроенный механизм импорта данных. Он доступен во всех типовых конфигурациях (Бухгалтерия, УТ, ЗУП), но требует предварительной настройки.

Чтобы открыть DBF:

  1. Перейдите в раздел Администрирование → Обмен данными → Универсальный обмен данными (путь может отличаться в зависимости от конфигурации).
  2. Выберите Импорт данных и укажите формат DBF.
  3. Загрузите файл через диалоговое окно или укажите путь к папке с DBF.

Важный нюанс: 1С ожидает, что структура DBF-файла соответствует структуре справочника или документа, куда вы импортируете данные. Если поля не совпадают по имени или типу (например, в DBF поле DATE имеет формат строки, а в 1С — даты), импорт завершится ошибкой. В таких случаях поможет предварительная обработка файла во внешнем редакторе (например, DBF Viewer 2000).

Проверьте кодировку файла (должна быть Windows-1251 или UTF-8)

Убедитесь, что имена полей в DBF совпадают с реквизитами в 1С

Преобразуйте даты в формат ГГГГММДД (например, 20260515 для 15 мая 2026)

Удалите пустые строки в конце файла (они могут вызывать ошибки)

-->

⚠️ Внимание: Если вы работаете с 1С:Предприятие 8.3.20+, проверьте настройки безопасности в конфигураторе. С версии 8.3.20 по умолчанию заблокирован доступ к внешним файлам из недоверенных источников. Чтобы разблокировать импорт DBF, добавьте папку с файлами в список доверенных локаций через Администрирование → Настройки программы → Безопасность → Доверенные каталоги.

2. Использование конфигуратора для прямой работы с DBF

Если стандартный импорт не подходит (например, нужно прочитать DBF с нестандартной структурой), можно воспользоваться встроенными объектами платформы через конфигуратор. Этот метод требует базовых знаний 1С-программирования, но даёт полный контроль над процессом.

Алгоритм действий:

  1. Откройте конфигуратор (Файл → Конфигуратор или запустите 1С с ключом /config).
  2. Перейдите в Файл → Новая обработка и создайте простую обработку с кодом:
Процедура ОткрытьDBF(ПутьКФайлу)

DBF = Новый ЧтениеDBF(ПутьКФайлу);

Пока DBF.Прочитать() Цикл

Сообщить(DBF.ПолучитьСтроку());

КонецЦикла;

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

Этот код последовательно считывает все строки из DBF и выводит их в окно сообщений. Для практического использования его нужно доработать — например, добавить запись данных в справочник или документ. Готовые обработки для импорта DBF можно найти на портале Infostart или в каталоге 1С-Отчётность.

Метод объекта ЧтениеDBF Описание Пример использования
Прочитать() Переход к следующей строке. Возвращает Истина, если строка прочитана успешно. Пока DBF.Прочитать() Цикл ... КонецЦикла;
Получить(ИмяПоля) Возвращает значение указанного поля текущей строки. ДатаДок = DBF.Получить("ДАТА_D");
КоличествоПолей() Возвращает число полей в таблице DBF. КолПолей = DBF.КоличествоПолей();
ИмяПоля(Номер) Возвращает имя поля по его номеру (начиная с 0). Имя = DBF.ИмяПоля(0);
⚠️ Внимание: При работе с большими DBF-файлами (>100 000 строк) чтение через ЧтениеDBF может занимать несколько минут. В таких случаях целесообразно использовать пакетную обработку с разбивкой на порции по 10 000 строк или применять внешние утилиты для предварительной конвертации в CSV.

3. Внешние обработки для импорта DBF

Если вам нужно регулярно загружать данные из DBF, имеет смысл использовать готовые внешние обработки. Они позволяют:

  • 🔹 Настраивать соответствие полей DBF и реквизитов 1С визуально (без программирования).
  • 🔹 Обрабатывать файлы с нестандартными кодировками (например, KOI8-R или IBM866).
  • 🔹 Автоматически конвертировать даты и числа в нужный формат.
  • 🔹 Вести лог ошибок для последующего анализа.

Популярные обработки:

  • 📌 "Универсальный обмен данными для 1С 8.3" (от 1С-Рарус) — поддерживает DBF, Excel, XML.
  • 📌 "Загрузка из DBF в 1С" (бесплатная, с портала Infostart) — простой интерфейс для одноразовых загрузок.
  • 📌 "DBF Мастер" — плагин с расширенными настройками для работы с устаревшими форматами.

Пример настройки в "Универсальном обмене данными":

  1. Установите обработку через Файл → Открыть в 1С.
  2. Выберите источник данных — DBF-файл.
  3. Укажите целевой объект в 1С (например, справочник "Контрагенты").
  4. Настройте соответствие полей вручную или используйте автосопоставление.
  5. Запустите импорт и проверьте результаты в журнале операций.
💡

Если обработка выдаёт ошибку "Неверный формат файла", попробуйте открыть DBF в Excel через меню Данные → Из текста и сохранить обратно в формате DBF 4 (dBase IV). Это часто решает проблемы с совместимостью.

4. Конвертация DBF в другие форматы для 1С

Если ни один из вышеперечисленных методов не сработал, можно пойти обходным путём — конвертировать DBF в промежуточный формат, который 1С читает без проблем. Наиболее надёжные варианты:

  • 🔹 CSV — универсальный формат, поддерживаемый всеми версиями 1С. Для конвертации подойдёт LibreOffice Calc или DBF Commander.
  • 🔹 Excel (XLSX) — удобен для ручной правки данных перед импортом. В 1С 8.3 есть встроенный механизм загрузки из Excel.
  • 🔹 XML — если нужна сложная структура данных (например, иерархические справочники).

Пошаговая инструкция для конвертации в CSV:

  1. Откройте DBF в Excel или LibreOffice Calc.
  2. Сохраните файл как CSV (разделители — запятые).
  3. В 1С используйте обработку "Универсальный обмен данными" с источником CSV.
  4. Укажите разделитель (запятая или точка с запятой) и кодировку (UTF-8 или Windows-1251).
⚠️ Внимание: При конвертации DBF в CSV обратите внимание на:
  • 🔸 Разделитель десятичных знаков (в DBF может использоваться запятая, а в 1С ожидается точка).
  • 🔸 Формат дат (в CSV даты сохраняются как строки, их нужно будет преобразовать в 1С).
  • 🔸 Кодировку символов — если в DBF были кириллические символы, при сохранении в CSV выберите Windows-1251.
Как исправить ошибку "Неверное количество полей в строке" при импорте CSV?

Эта ошибка возникает, если в CSV-файле есть строки с разным количеством столбцов (например, из-за лишних разделителей).

Решение:

1. Откройте CSV в текстовом редакторе (например, Notepad++).

2. Включите отображение символов переноса строк (View → Show Symbol → Show End of Line).

3. Удалите пустые строки в конце файла и исправьте строки с неверным количеством разделителей.

4. Сохраните файл и повторите импорт.

5. Работа с DBF в 1С 7.7

Хотя 1С:Предприятие 7.7 считается устаревшей системой, многие организации до сих пор используют её для ведения учёта. В этой версии работа с DBF имеет свои особенности:

  • 🔹 В 7.7 нет встроенного объекта ЧтениеDBF — вместо него используется функция ОткрытьФайлDBF().
  • 🔹 Поддерживаются только форматы dBase III и FoxPro 2.6 (более новые версии DBF могут не открываться).
  • 🔹 Для импорта данных требуется ручное сопоставление полей через Конфигуратор → Обмен данными.

Пример кода для чтения DBF в 7.7:

Процедура ЧтениеDBF()

ФайлDBF = ОткрытьФайлDBF("C:\data\dbf\clients.dbf");

Пока НЕ ФайлDBF.КонецФайла() Цикл

Сообщить(ФайлDBF.Поле("НАИМЕНОВ"));

КонецЦикла;

ЗакрытьФайлDBF(ФайлDBF);

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

Для автоматизации обмена в 7.7 часто используют внешние утилиты, такие как "DBF Converter" или "1С:Конвертация данных" (поставляется отдельно). Эти инструменты позволяют настраивать правила преобразования данных между разными версиями 1С и внешними системами.

💡

В 1С 7.7 при работе с DBF обязательно проверяйте длину строковых полей. Если в DBF поле имеет тип Character(50), а в 1С — Строка(30), данные будут обрезаны без предупреждения.

6. Типичные ошибки и их решения

Даже при правильной настройке импорта пользователи часто сталкиваются с ошибками. Рассмотрим самые распространённые:

Ошибка Вероятная причина Решение
"Не является файлом базы данных dBase" Файл повреждён или имеет несовместимый формат (например, Visual FoxPro 9.0). Откройте файл в DBF Viewer и сохраните в формате dBase IV.
"Неверная структура таблицы" Не совпадает количество или порядок полей в DBF и целевом объекте 1С. Проверьте соответствие полей в настройках импорта или отредактируйте DBF.
"Ошибка преобразования значения" Несовпадение типов данных (например, строка вместо числа). Используйте функцию ЗначениеЗаполнено() для проверки данных перед записью.
"Файл заблокирован другим пользователем" Файл открыт в другой программе (например, в Excel). Закройте все программы, использующие DBF, и повторите попытку.

Если ошибка не устраняется, проверьте:

  • 🔹 Права доступа — у пользователя 1С должны быть права на чтение файлов в указанной папке.
  • 🔹 Антивирус — некоторые антивирусы блокируют доступ к DBF-файлам как к "потенциально опасным".
  • 🔹 Разрядность системы — если 1С 32-битная, а DBF создан в 64-битной программе, могут возникать ошибки чтения.

7. Автоматизация импорта DBF: расписание и обработки

Если вам нужно регулярно загружать данные из DBF (например, ежедневные выгрузки от поставщиков), имеет смысл настроить автоматический импорт. Для этого можно:

  • 🔹 Использовать регламентные задания в 1С 8.3.
  • 🔹 Создать внешнюю обработку с таймером.
  • 🔹 Интегрировать 1С с планировщиком задач Windows (Task Scheduler).

Пример настройки регламентного задания:

  1. В 1С перейдите в Администрирование → Поддержка и обслуживание → Регламентные задания.
  2. Создайте новое задание с типом "Выполнение обработки".
  3. Укажите обработку для импорта DBF и настройте расписание (например, ежедневно в 2:00).
  4. В параметрах задания укажите путь к папке с DBF-файлами.

Для более гибкой автоматизации можно использовать 1С:EDT (Enterprise Development Tools) или написать скрипт на Python с библиотекой dbfread, который будет предварительно обрабатывать файлы перед загрузкой в 1С.

💡

Если DBF-файлы приходят по email, настройте правило в почтовом клиенте для автоматического сохранения вложений в папку, которую отслеживает регламентное задание 1С.

FAQ: Частые вопросы по работе с DBF в 1С

Можно ли открыть DBF напрямую в 1С без импорта?

Нет, 1С не поддерживает прямое открытие DBF как таблицу (в отличие от Excel). Данные нужно импортировать в справочник, документ или регистр. Однако в конфигураторе можно просмотреть содержимое DBF через объект ЧтениеDBF (см. раздел 2).

Почему 1С не видит DBF-файл, хотя он лежит в правильной папке?

Вероятные причины:

  • 🔸 Файл заблокирован другим процессом (например, антивирусом).
  • 🔸 Не хватает прав доступа к папке (проверьте настройки безопасности Windows).
  • 🔸 В пути к файлу есть кириллические символы — замените их на латиницу.
  • 🔸 Файл сохранён в несовместимой кодировке (попробуйте пересохранить в Windows-1251).

Как импортировать DBF с иерархической структурой (например, справочник с подчиненными элементами)?

Стандартный импорт не поддерживает иерархию. Решения:

  • 🔹 Используйте "Универсальный обмен данными" с настройкой родительских связей.
  • 🔹 Предварительно конвертируйте DBF в XML с сохранением иерархии.
  • 🔹 Напишите обработку на 1С-программировании, которая будет создавать элементы с учетом родительских кодов.

Какая максимальная длина строки в DBF для импорта в 1С?

В формате dBase IV максимальная длина строкового поля — 254 символа. В 1С ограничение зависит от типа реквизита:

  • 🔸 Строка(неограниченная) — до 2 ГБ текста (но при импорте из DBF будет обрезка до 254 символов).
  • 🔸 Строка(N) — до N символов (рекомендуется не более 250 для совместимости).

Если нужно импортировать длинные тексты, предварительно разбейте их на несколько полей в DBF или используйте CSV.

Можно ли экспортировать данные из 1С обратно в DBF?

Да, для этого используйте:

  • 🔹 Встроенный экспорт через Универсальный обмен данными (формат DBF).
  • 🔹 Объект ЗаписьDBF в конфигураторе для программного создания файлов.
  • 🔹 Внешние обработки, например, "Выгрузка в DBF" с Infostart.

При экспорте учитывайте ограничения формата DBF:

  • 🔸 Имена полей — до 10 символов, без спецсимволов.
  • 🔸 Числовые поля — максимум 18 знаков до запятой и 4 после.