Заполнение справочников 1С 8.2 из DBF-файлов

Введение

Если вы раньше не работали с 1С:Предприятие и в определенный момент возникает такая необходимость вести учет в данной системе, то у многих возникает проблема с наполнением справочной информации. Проблема заключается в том, что во многих учетных системах начальная работа начинается с заполнения различных справочников. Так вот, в 1С также имеется множество различных справочников, которые необходимо заполнить для работы с данной системой.

Если у вас уже имеется информация по определенным справочникам в других системах (приложениях), то ее можно легко выгрузить и загрузить в 1С:Предприятие, и тогда вам не придется заполнять справочники вручную. Можно организовать выгрузку данных из вашей системы, например, в DBF или Excel-файл и с легкостью его загрузить в 1С.

Например, учет сотрудников (кадры) у вас велся в программе собственной разработки, сейчас необходимо учет вести в 1С, для этого необходимо в 1С:Предприятие заполнить справочник Физические лица. Так как у вас имеются уже эти данные, из своей системы организовываете выгрузку в DBF или Excel-файл и загружаете в 1С. В этой статье мы как раз и рассмотрим такую возможность. Рассматривать будем на основе выгрузки в формате DBF. С Excel-форматом проблем не должно также возникнуть.

Работа с DBF-файлами в 1C 8.2

Работа с DBF-файлами в 1С очень простая. Мне она нравится тем, что не требует никаких дополнительных установок компонент, драйверов и так далее. Например, в Delphi, чтобы работать с некоторыми форматами данных, необходимо устанавливать дополнительные компоненты и драйвера для доступа к данным (это касается не всех типов данных).

Принцип работы с DBF-файлами в 1С 8.2 следующий:

  1. Создаем объект XBase;
  2. Открываем сам DBF-файл;
  3. При необходимости указываем кодировку OEM или ANSI;
  4. Считываем нужную запись или же в цикле проходимся по всем записям файла;
  5. Закрываем DBF-файл.

В самой 1С 8.2 это будет выглядеть следующим образом:

DBFФайл = Новый XBase;
DBFФайл.ОткрытьФайл(ПутьКФайл,,Истина);
DBFФайл.Первая();
Пока Не DBFФайл.Вконце() Цикл
	Сообщить(DBFФайл.NAME);
DBFФайл.Следующая();
КонецЦикла;
DBFФайл.ЗакрытьФайл();

Как видите, довольно просто можно читать информацию из DBF-файла средствами 1С 8.2. Если же вы хотите выгрузить информацию из 1С, то необходимо будем средствами 1С создавать файл и записывать в него информацию, то это будем выглядеть следующим образом:

DBFФайл = Новый XBase;
DBFФайл.Кодировка = КодировкаXBase.ANSI;
DBFФайл.Поля.Добавить("NAME1","S",50);
DBFФайл.Поля.Добавить("NAME2","N",5);
ПутьФайла = "C:\Export.DBF";
DBFФайл.СоздатьФайл(ПутьФайла);
DBFФайл.Записать();

При добавлении нового поля, необходимо указать имя поля, тип данных и размер данного поля. После того как файл создан, мы можем в него записать необходимую нам информацию:

DBFФайл.NAME1 = Значение1;
DBFФайл.NAME2 = Значение2;
DBFФайл.Записать();
DBFФайл.ЗакрытьФайл;

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

Добавление элементов в справочник 1С 8.2 из DBF-файла

На основе предыдущего раздела, мы теперь попробуем заполнить какой-либо справочник информацией из DBF-файла, чтобы так сказать, закрепить информацию по предыдущему пункту.

Давайте заполним справочник Профессии рабочих. У нас имеется DBF-файл с двумя полями:

  1. Код профессии;
  2. Наименование профессии.

Сам DBF-файл выглядит следующим образом:

Профессии рабочих в DBF-файле
Профессии рабочих в DBF-файле

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

ФайлДБФ = Новый XBase;
ФайлДБФ.ОткрытьФайл(ФайлПрофессий,,Истина);
ФайлДБФ.Первая();
Пока Не ФайлДБФ.ВКонце() Цикл
	ПрофессииРабочих = Справочники.ПрофессииРабочих.НайтиПоКоду(ФайлДБФ.KOD);
	ДолжностиРабочих = Справочники.ДолжностиОрганизаций.НайтиПоКоду(ФайлДБФ.KOD);
	Если ПрофессииРабочих.Пустая() Тогда
		НоваяПрофессия = Справочники.ПрофессииРабочих.СоздатьЭлемент();
		НоваяПрофессия.Код = ФайлДБФ.KOD;
		НоваяПрофессия.Наименование = ФайлДБФ.NAME;
		НоваяПрофессия.Записать();
	Иначе
		РедактированиеПрофессии = ПрофессииРабочих.ПолучитьОбъект();
		РедактированиеПрофессии.Наименование = ФайлДБФ.NAME;
		РедактированиеПрофессии.Записать();
	КонецЕсли;
КонецЦикла;

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

Загруженный справочник профессий в 1С 8.2
Загруженный справочник профессий в 1С 8.2

Заключение

В 1С:Предприятие 8.2 не так уже и сложно работать с DBF-файлами. В дальнейшем мы рассмотрим возможность работу с Excel-файлами: как можно будет перенести информацию из Excel-файла в справочник 1С, либо же документ.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Была ли эта статья полезна?

Оставить комментарий

Пожалуйста, авторизуйтесь чтобы добавить комментарий.
  Подписаться  
Уведомление о