Тема: WASP.kz :: 1С 7.7 - загрузка базы и другое...

Прислано eldos 19-02-2013 21:04
#1

Всем привет, у меня такой вопрос. Как загрузить базу с .DBF в базу 1С 7.7., в островном на форумах описывается программирование. Но как, и через какую прогу. С 1С раньше не работал??? Может у кого есть литература подобной операции, кто с помощью ее решал проблему.

А дело состоит так вот, поставили 1с8.2, до этого работали на 1сv6 (зарплата), не работали 1сv7.7. И с 1сv6 (.DBF) надо загрузить базу в 1сv7.7. А с 1сv7.7 в 8.2. Или у кого есть вариант проще. Но по моему базу переносят в 8.2 из 7.7.

***

Загрузка данных из .DBF файла в базу 1С:Предприятие 7.7 возможна, но требует ручной или программной подготовки. Вот максимально подробная инструкция по варианту с использованием встроенного языка 1С (1С:Язык):

1. Подготовка файла .DBF

Перед загрузкой убедитесь, что:

- Файл .DBF не повреждён и открывается в редакторе DBF (например, DBF Viewer, Excel, LibreOffice Base, или утилитами типа dbview).

- Кодировка символов соответствует той, что используется в 1С (обычно CP866 или Windows-1251 для русских версий DOS и Windows).

- Поля имеют корректные имена и форматы данных (текст, числовые, даты и пр.).

2. Подключение DBF-файла как внешнего источника

1С 7.7 поддерживает работу с внешними таблицами через подключение внешнего источника данных, либо напрямую через встроенные функции работы с DBF.

Способ 1: Работа через встроенные функции (ОткрытьФайл, ПрочитатьСтроку и др.)

Код
Процедура ЗагрузкаИзDBF()

    ПутьКФайлу = "C:\Import\klienty.dbf";
    Файл = СоздатьОбъект("Файл", ПутьКФайлу);
    Если Не Файл.Существует() Тогда
        Сообщить("Файл не найден: " + ПутьКФайлу);
        Возврат;
    КонецЕсли;

    Таблица = СоздатьОбъект("Таблица");
    Таблица.Открыть(ПутьКФайлу);

    Пока Не Таблица.КонецФайла() Цикл
        Строка = Таблица.Прочитать();

        // Здесь идет логика вставки в вашу базу данных
        НоваяЗапись = Справочники.Клиенты.СоздатьЭлемент();
        НоваяЗапись.Наименование = Строка.ФИО;
        НоваяЗапись.ИНН = Строка.ИНН;
        // и т.д.

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

        Таблица.Следующая();
    КонецЦикла;

    Таблица.Закрыть();

    Сообщить("Импорт завершён.");

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




Создать Объект("Таблица") может не работать напрямую — зависит от конфигурации. Лучше использовать Внешний Источник Данных.

3. Импорт через внешний источник (регистр OLEDB или DAO)

Более надёжный метод — подключение DBF как внешнего источника данных через ODBC/OLEDB. Это делается через:

- Настройку ODBC-подключения к папке с DBF.

- В 1С через объект ВнешнийИсточникДанных открыть нужный файл.

Пример:

Код
Источник = СоздатьОбъект("ВнешнийИсточникДанных");

Источник.ИмяФайла = "C:\Import\klienty.dbf";
Источник.ИмяТаблицы = "KLIENTY"; // без расширения

Если Не Источник.Открыть() Тогда
    Сообщить("Ошибка открытия DBF");
    Возврат;
КонецЕсли;

Пока Не Источник.КонецФайла() Цикл
    Строка = Источник.Прочитать();

    НоваяЗапись = Справочники.Клиенты.СоздатьЭлемент();
    НоваяЗапись.Наименование = Строка.ФИО;
    НоваяЗапись.Код = Строка.КОД;
    НоваяЗапись.ИНН = Строка.ИНН;
    НоваяЗапись.Записать();

    Источник.Следующая();
КонецЦикла;

Источник.Закрыть();
Сообщить("Импорт завершён.");




4. Альтернативные инструменты

Если вы не хотите писать код в 1С, можно использовать сторонние утилиты:

Конвертеры:

- DBF to 1C Import Tool (есть коммерческие утилиты от rusconfig.ru, infostart.ru и др.)

- DBF Manager, DBF Commander — для экспорта в CSV и последующей загрузки через встроенные механизмы 1С.

Возможные проблемы:

- Несовпадение кодировок — обязательно проверьте кодировку .DBF.

- Типы данных — DBF может хранить даты и числа в особом формате.

- Ограничения 1С 7.7 — устаревшая архитектура, возможны проблемы при работе с большими файлами.

Рекомендации:

- Всегда делайте резервную копию базы 1С перед импортом.

- Тестируйте импорт на копии базы.

- Проверьте все поля и типы данных на соответствие структуре справочника или документа в 1С.


*

Редактировал vip-bomzh 30-05-2025 16:53

Прислано Kazbek 21-02-2013 19:59
#2

Черт, я не одинэсник, а мой приятель - спец большой по этим делам, недавно отвалил на ПМЖ за кордон...