Передача открытого файла EXCEL на сервер 1С Предприятие 8.3

Обработчик открытия EXCEL файла для дальнейшей обработки данных на 1С

Добавить реквизит для указания пути в файлу EXCEL

Добавить команду для запуска обработки

Вывести элементы на путь к файлу и команду обработки

У элемента пути указать обязательно кнопку выбора файла

У элемента пути добавить обработчик события НачалоВыбора

Код модуля:

&НаКлиенте
Процедура ЗапуститьОбработчик(Команда)
	Если ПроверкаПоляПутьКФайлу(ФайлИмпорта) = Ложь Тогда
		Возврат;
	КонецЕсли;
	
	Если ПроверитьСуществованиеФайла(ФайлИмпорта) = Ложь Тогда
		Сообщить("Не найден файл импорта");
		Возврат;
	КонецЕсли;
	
	ДвоичныеДанные = Новый ДвоичныеДанные(ФайлИмпорта);
	Идентификатор  = Новый УникальныйИдентификатор;
	
	ОбработкаНоменклатуры(ПоместитьВоВременноеХранилище(ДвоичныеДанные, Идентификатор));
КонецПроцедуры

&НаСервере
Функция ОбработкаНоменклатуры(ДанныеДляОбработки)
	ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеДляОбработки);
	РасшФайла = ПолучитьИмяВременногоФайла("xlsx");
	ДвоичныеДанные.Записать(РасшФайла);
	ДокументДляОбработки = new ТабличныйДокумент;
	
	ДокументДляОбработки.Прочитать(РасшФайла);
	
	Лин = 0;
	Стр = Новый Массив;
	
	Попытка
		Пока Лин = 0 ИЛИ Стр[1] <> "" Цикл
			Лин = Лин + 1;
			
			Стр = Новый Массив;
			Стр.Добавить(ДокументДляОбработки.Область("R" + Формат(Лин, "ЧГ=0") + "C1").Текст);
			Стр.Добавить(ДокументДляОбработки.Область("R" + Формат(Лин, "ЧГ=0") + "C2").Текст);
			Стр.Добавить(ДокументДляОбработки.Область("R" + Формат(Лин, "ЧГ=0") + "C3").Текст);
			Стр.Добавить(ДокументДляОбработки.Область("R" + Формат(Лин, "ЧГ=0") + "C4").Текст);
			
			// ...
			// Обработка
			// ...
		КонецЦикла;
	Исключение
	    Сообщить("Ошибка чтения EXCEL файла:" + Символы.ПС + ОписаниеОшибки());
	КонецПопытки;	
КонецФункции

&НаКлиенте
Процедура ФайлИмпортаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДиалогВыбора.ПолноеИмяФайла = "file.xlsx";
	ДиалогВыбора.Фильтр = "Файл данных (*.xlsx)|*.xlsx";
	ДиалогВыбора.Заголовок = "Выберите файл";
	Если ДиалогВыбора.Выбрать() Тогда
		ФайлИмпорта = ДиалогВыбора.ПолноеИмяФайла;
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Функция ПроверитьСуществованиеФайла(ПутьКФайлу)
	ФайлНаДиске = Новый Файл(ПутьКФайлу);
	Если ФайлНаДиске.Существует() Тогда
		Возврат Истина;
	КонецЕсли;
	Возврат Ложь;
КонецФункции

&НаКлиенте
Функция ПроверкаПоляПутьКФайлу(ПутьКФайлу)
	Если "" + ПутьКФайлу = "" Тогда
		Сообщить("Не указан путь к файлу");
		Возврат Ложь;
	КонецЕсли;
	Возврат Истина;
КонецФункции