На практике очень часто возникает необходимость в осуществлении переноса данных из одной программы в другую. Система 1С:Предприятие предоставляет мощные механизмы для выполнения таких операций.
9.1. Использование текстовых файлов для переноса данных
Для работы с файлами в системе используется специальный агрегатный тип данных – «ФС». По умолчанию в системе всегда доступен уже существующий объект с именем «ФС», к которому можно применять методы объекта типа «ФС». Кроме того, можно создать произвольное число объектов типа «ФС» при помощи функции «СоздатьОбъект(«ФС»)».
У объекта типа «ФС» имеются стандартные функции для работы с файлами: «ВыбратьФайл()» – открывает диалог выбора файла, «ВыбратьКаталог()»– открывает диалог выбора каталога, «СуществуетФайл()» – проверяет, существует ли файл с указанным именем, «КопироватьФайл()», «УдалитьФайл()», «ПереименоватьФайл()» и др.
Для работы с текстами в системе используется специальный тип данных «Текст». Средства языка позволяют выводить строк в текстовые файлы и считывать из имеющихся файлов текст с последующим разбором его по строкам.
Для работы с базами данных в формате «DBF» используется объект типа «XBase». При этом надо учитывать следующие ограничения:
1. Не поддерживаются поля типа memo.
2. База данных открывается монопольно
3. Поддерживаются только индексные файлы в формате “CDX”
Доступ к полям базы данных осуществляется через точку с именем поля.
Пример
БД=СоздатьОбъект(“XBase”);
БД.ОткрытьФайл(«data.dbf»);
Если БД.Открыта()=1 Тогда
БД.Первая();//встаем на первую запись
Пока 1=1 Цикл
// Обработка записи базы данных
Сообщить(Строка(БД.CODE) + « » + БД.Name);
Если БД.Следующая()=0 Тогда
// не удалось перейти к следующей записи
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
9.3. Обмен данными с помощью OLE Automation
Для запуска системы 1С:Предприятие в качестве OLE Automation сервера из внешнего приложения (например, из другой программы 1С), выполняется следующая последовательность действий:
- Создается объект с OLE идентификатором:
? V1СEnterprise.Application — версия независимый ключ;
? V77.Application — версия зависимый ключ;
? V77S.Application — версия зависимый ключ, SQL версия;
? V77L.Application — версия зависимый ключ, локальная версия;
? V77M.Application — версия зависимый ключ, сетевая версия.
- Выполняется инициализация системы 1С:Предприятие методом Initialize.
- Вызываются атрибуты и методы системы 1С:Предприятие как OLE Automation сервера
Пример.
Процедура Загрузить()
Если ФС.Существуетфайл(Путь + "\NUL") = 0 Тогда
Предупреждение("Путь информационной базы не найден!");
Иначе
V7 = СоздатьОбъект("V77.Application");
Открыта = V7.Initialize(V7.RMTrade, "/d" + Путь +
" /M /N" + Пользователь, "");
Если Открыта = 0 Тогда
Предупреждение("Ошибка открытия информационной базы");