Загрузка DBF в 1С

Автор: | 20.04.2022

1С загрузка данных из файлов DBF

Сегодня продолжаем изучать вопрос загрузки данных из разных файлов в 1С. Как я не раз уже говорил тема эта очень актуальная и на практики она встретиться 100 %. В большинстве случаев таким образом производиться обмен информацией с другими информационными системами, конфигурациями 1С, сайтами, базами данных и т.д. Обмен происходить чаще всего с использованием файлов в формате TXT, XML, DBF, CSV и Excel. Поэтому очень важно уметь с ними работать, загружать/выгружать данные. В сегодняшней статьи рассмотрим загрузку данных из DBF файлов.

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

Как прочитать файл DBF в 1С

Для начала изменим обработку, приведем её к более человеческому виду. Обработка будет универсальная, с её помощью можно будет загружать данный из всех файлов, TXT, XML, DBF, CSV и Excel. Поэтому добавим на форму реквизит «Тип фала», который будет позволять пользователю выбирать нужный формат файла для загрузки. Так же переименуем команды и назовем их «Прочитать» и «Загрузить». С помощью первой команды данные из фалов будут читаться и отображаться в табличной части, а с помощью второй уже непосредственно загружаться в базу.

В предыдущих статья была одна команда «Загрузить».

Загрузка DBF в 1С

Для того чтобы создать переключатель, нужно открыть свойства реквизита «Тип файла», найти раздел «Использование» и в пункте «Список Выбора» добавить «TXT, XML, DBF, CSV и Excel», внешний вид можно изменить в разделе «Основные» с помощью пункта «Вид Переключателя».

1С загрузка данных из файлов DBF

Теперь напишем код для обработчика «Начала выбора».


&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	Проводник = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Проводник.Заголовок = "Выберите файл";
	
	
	Если Объект.ТипФайла = "TXT" Тогда 
		Фильтр = "Текстовый документ (*.txt)|*.txt";
	ИначеЕсли Объект.ТипФайла = "CSV" Тогда 
		Фильтр = "Текстовый документ (*.csv)|*.csv";
	ИначеЕсли Объект.ТипФайла = "XLS" Тогда 
		Фильтр = "Документ Excel  (*.xls)|*.xls";
	ИначеЕсли Объект.ТипФайла = "DBF" Тогда 
		Фильтр = "Файл DBF (*.dbf)|*.dbf";
	ИначеЕсли Объект.ТипФайла = "XML" Тогда 
		Фильтр = "Файл XML (*.xml)|*.xml";
	Иначе 
		Возврат;
	КонецЕсли;	
	
	Проводник.Фильтр = фильтр;
	
	Оповещение = Новый ОписаниеОповещения("ПослеВыбораФайла", ЭтотОбъект);
	Проводник.Показать(Оповещение);
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеВыбораФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
	
	Если ВыбранныеФайлы = Неопределено Тогда
		Возврат;
	КонецЕсли;
	Объект.ПутьКФайлу = ВыбранныеФайлы[0];
	
КонецПроцедуры		

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

1С загрузка из файлов DBF

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


&НаКлиенте
Процедура Прочитать(Команда)
	
	Объект.ДанныеФайла.Очистить();
	
    Если Объект.ТипФайла = "TXT" тогда 
		  Прочитать_ТХТ()
	ИначеЕсли Объект.ТипФайла = "XLS" тогда
		  Прочитать_xls()
	ИначеЕсли Объект.ТипФайла = "DBF" тогда
		  Прочитать_dbf()	  
	КонецЕсли;
	  
	  
КонецПроцедуры

Для каждого типа файлов будет использоваться своя процедура.

1С загрузка данных из файлов

Ну и собственно в процедуре которая будет обрабатывать файлы DBF пишем вот такой код.

&НаКлиенте
Процедура Прочитать_dbf()
	
	Файл = Новый XBase;
	
	Файл.ОткрытьФайл(Объект.ПутьКФайлу);
	
	Если Файл.Первая() = Ложь Тогда 
		Возврат;
	КонецЕсли;
	
	Пока Файл.ВКонце() = Ложь Цикл 
		НоваяСтрока = Объект.ДанныеФайла.Добавить();
		НоваяСтрока.Наименование = Файл.Name;
		НоваяСтрока.Расшифровка = Файл.Full_Name;
		НоваяСтрока.ИНН = Файл.INN;
		Файл.Следующая();
	КонецЦикла;
	
	Файл.ЗакрытьФайл();
	

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

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

Тут есть одна особенность о которой стоить знать, длина имени файла не должна превышать 8 символов!

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

1С загрузка данных из DBF

Для примера возьмем вот такой файл с двумя строками и тремя столбцами.

1С  и DBF

Остается только проверить работоспособность написанного кода. Теперь сначала нужно выбрать тип файла, в нашем случае DBF, после этого в окне выбора должны отображаться файлы только этого типа, после нажатия команды «Прочитать» содержимое выбранного файла должно отобразиться в табличной части обработки.

Обработка 1С для загрузки данных из DBF

Вот в принципе и все, остается только написать процедуру для загрузки этой информации в базу 1С, но об этом в следующей статье, так как информация поступающая небольшими объемам воспринимается и усваивается намного быстрей лучше. В принципе все достаточно просто, но если остались вопросы то обязательно напишите.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *