Информационные системы
Экспорт и импорт данных
 

1С:Предприятие

Курс лекций

1. Введение в 1С
2. Бухгалтерский учет
3. Встроенный язык

4. Справочники и документы
5. Запросы и отчеты
6. Компонента "Бух. учет"
7. Бухгалтерские итоги
8. Таблица для ввода данных
9. Экспорт / импорт данных

Приложения

1. Вопросы к экзамену
2. Обязательные навыки
3. Практические задания
4. Франчайзи Новосибирска

Об авторе курса


Учебник
Рассылка
Статьи
Программы
Ссылки

Информационные технологии

Интересное

Форум

mista.ru / 1С:Предприятие / Курс лекций / Экспорт и импорт данных

  На практике очень часто возникает необходимость в осуществлении переноса данных из одной программы в другую. Система 1С:Предприятие предоставляет мощные механизмы для выполнения таких операций.

9.1. Использование текстовых файлов для переноса данных

   9.1.1. Чтение текста
   9.1.2. Запись текста


9.1. Использование текстовых файлов для переноса данных

Для работы с файлами в системе используется специальный агрегатный тип данных – «ФС». По умолчанию в системе всегда доступен уже существующий объект с именем «ФС», к которому можно применять методы объекта типа «ФС». Кроме того, можно создать произвольное число объектов типа «ФС» при помощи функции «СоздатьОбъект(«ФС»)».

У объекта типа «ФС» имеются стандартные функции для работы с файлами: «ВыбратьФайл()» – открывает диалог выбора файла, «ВыбратьКаталог()»– открывает диалог выбора каталога, «СуществуетФайл()» – проверяет, существует ли файл с указанным именем, «КопироватьФайл()», «УдалитьФайл()», «ПереименоватьФайл()» и др.

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

  • Открыть(<ИмяФайла>) – открывает файл.
  • КодоваяСтраница(<Режим>) – получить/установить режим кодировки. <Режим> = 0 – Windows-кодировка, 1 – DOS-кодировка
  • Показать(<Заголовок>,<ИмяФайла>) – открыть окно редактирования текста.
  • Записать(<ИмяФайла>) – записывает текст в файл.

9.1.1. Чтение текста

  • КоличествоСтрок() – количество строк в тексте.
  • ПолучитьСтроку(<НомерСтроки>) – получить строку текста по номеру

Пример. Из файла «exp_imp.txt» загружается справочник номенклатуры

Спр=СоздатьОбъект(«Справочник.Номенклатура»);
Текст = СоздатьОбъект(«Текст»);
Список = СоздатьОбъект(«СписокЗначений»);
Текст.Открыть(«exp_imp.txt»);

Для Ном=1 По Текст.КоличествоСтрок() Цикл
Стр = Текст.ПолучитьСтроку(Ном);
Список.ИзСтрокиСРазделителями(Стр); //преобразуем строку в список значений
Если Спр.НайтиПоКоду(Список.ПолучитьЗначение(1))=0 Тогда Спр.Новый();
Спр.Код= Список.ПолучитьЗначение(1);
Спр.Наименование= Список.ПолучитьЗначение(2);
Спр.Записать();
КонецЕсли;

КонецЦикла;

9.1.2. Запись текста

  • ВставитьСтроку(<НомерСтроки>,<Строка>) – вставить строку с указанным номером.
  • ЗаменитьСтроку(<НомерСтроки>,<Строка>) – заменить строку с указанным номером.
  • УдалитьСтроку(<НомерСтроки>) – удалить строку с указанным номером.
  • ДобавитьСтроку(<Строка>) – добавить строку в конец текста.
  • Очистить() –удалить все строки текста.

Пример. В файл «exp_imp.txt» выгружается справочник номенклатуры

Текст = СоздатьОбъект(«Текст»);
Список = СоздатьОбъект(«СписокЗначений»);
Спр=СоздатьОбъект(«Справочник.Номенклатура»);
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Список.ДобавитьЗначение(Спр.Код);
Список.ДобавитьЗначение(Спр.Наименование);
// и другие поля…

// выводим список в текст
Текст.ДобавитьСтроку(Список.ВСтрокуСРазделителями());
Список.УдалитьВсе();// очищаем список
КонецЦикла;
Текст.Записать(«exp_imp.txt»);

9.2. Работа с файлами в формате «DBF»

Для работы с базами данных в формате «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 Тогда
Предупреждение("Ошибка открытия информационной базы");
Возврат;
КонецЕсли;
Импорт = V7.CreateObject("Справочник.Контрагенты");
Импорт.ВыбратьЭлементы();
Пока Импорт.ПолучитьЭлемент() = 1 Цикл
Если Импорт.ЭтоГруппа() = 0 Тогда
Сообщить(Импорт.Наименование);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
© Станислав Митичкин
www.mista.ru
, 1997-2003
1C:TOP-100
Волшебный форум