1С Загрузка из Excel

Автор: | 19.04.2022

Как загрузить данные из документа Excel в 1С используя «Табличный документ»

Вопрос загрузки в информационную базу 1С различных данных из документов Excel очень актуален. На практике задачи подобного рода «загрузки/выгрузки» данных «из/в» Excel будут встречаться очень часто. Поэтому научиться работать с этим очень важно. Конечно, сейчас очень много типовых обработок которые к тому же есть во многих типовых конфигурациях которые позволяют загружать и выгружать данные, но все же лучше научиться создавать их самому. Реализовать это можно разными способами, все их мы обязательно рассмотрим, ну а сегодня будем использовать для этого «Табличный документ».

Данная статья является продолжением статей «Как загрузить данные в 1С из различных файлов«, и «1С Последовательное чтение файлов«. Из них вы узнаете про два способа загрузки данных из текстовых файлов «ТХТ», так же в первой статье я рассказывал про создание обработки для загрузки, которою и будут использовать сейчас.

Загрузка данных из Excel

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

Поэтому в обработчики события команды «Загрузить» будем вызывать процедуру.

&НаКлиенте
Процедура Загрузить(Команда)
	
	Объект.ДанныеФайла.Очистить(); 
	Прочитать_xls_НаСервере(); 
  
КонецПроцедуры

Для того чтобы данные не задвоились, сначала очистим ТЧ потом вызовем процедуру загрузки данных из Excel.

1С Загрузка из Excel

Далее создаем процедуру на сервере в которой пишем следующий код.

&НаСервере
Процедура  Прочитать_xls_НаСервере()
	
	ТабДок = Новый ТабличныйДокумент;
	
	Попытка
		  ТабДок.Прочитать(Объект.ВыбратьФайл, СпособЧтенияЗначенийТабличногоДокумента.значение);
	Исключение
		  Сообщиние = Новый СообщениеПользователю;
		  Сообщиние.Текст ="Не удалось прочитать " + ОписаниеОшибки();
		  Сообщиние.Сообщить();
		  Возврат;
	КонецПопытки;
	КоличествоСтрок = ТабДок.ВысотаТаблицы;
	
	Для НомерСтроки = 2 По КоличествоСтрок Цикл 
		СтрокаДанных = Объект.ДанныеФайла.Добавить();
		СтрокаДанных.Наименование = ТабДок.ПолучитьОбласть("R" + Формат(НомерСтроки,"ЧГ=0") + "C" +1).ТекущаяОбласть.Текст;
		СтрокаДанных.Расшифровка  = ТабДок.ПолучитьОбласть("R" + Формат(НомерСтроки,"ЧГ=0") + "C" +2).ТекущаяОбласть.Текст;
		СтрокаДанных.ИНН =          ТабДок.ПолучитьОбласть("R" + Формат(НомерСтроки,"ЧГ=0") + "C" +3).ТекущаяОбласть.Текст;
	КонецЦикла;	
	  
КонецПроцедуры	

Если кратко его описать то сначала создаем переменную «Табличный документ», далее добавляем конструкцию «Попытка/КонецПопытки» для обработки ошибок в момент чтения документа. После чего уже обрабатываем в цикле строки документа Excel.

Как загрузить данные из документа Excel в 1С с помощью "Табличный документ"

Сам документ будет выглядеть следующим образом, в нем три колонки, первая это шапка её читать не нужно, поэтому в процедуре мы сразу добавили «+1».

Как загрузить данные из документа Excel в 1С

Сохраняем обработку, и пробуем загрузить данные из документа.

Я уже говорил об общем принципе загрузке данных в предыдущих статьях, но еще раз повторюсь. Сразу загружать данные в базу 1С не правильно! Их нужно сначала прочитать/загрузить и отобразить пользователю и только после их проверки с помощью еще одной команды записать в базу! В данной статье Я рассказал про первый этап, т.е данные из файла были прочитаны и загружены в табличную часть обработки для отображения их пользователю, дальше нужно создать команду которая запишет их в базу (создаст на их основе контрагентов), но об этом в следующей статье.

1С Загрузка данных из Excel "Табличный документ"

Как видите в загрузке данных из Excel в 1С нет ничего сложного, но если у Вас возникли вопросы или что-то не получается, то обязательно напишите об этом, будем разбираться вместе.

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

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