&НаКлиенте
асинх Процедура ЗагрузитьДанные(Команда)
Диалог=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Фильтр="excle (*.xlsx)|*.xlsx";
Файл=Ждать Диалог.ВыбратьАсинх();
если Файл=Неопределено Тогда
Возврат;
КонецЕсли;
ПолныйПуть=Файл[0];
АдресФайла=ПоместитьВоВременноеХранилище(ПолныйПуть);
ЗагрузкаНаСервер(АдресФайла);
Сообщить("Данные загружены");
КонецПроцедуры
&НаСервере
Процедура ЗагрузкаНаСервер(АдресФайла)
ПутькФайлу=ПолучитьИзВременногоХранилища(АдресФайла);
док=Новый ТабличныйДокумент;
Док.Прочитать(ПутькФайлу);
для Строка=2 по док.ВысотаТаблицы Цикл
Наименование=док.Область(Строка,1).Текст;
Цена=док.Область(Строка,2).Текст;
если не ПустаяСтрока(Наименование) Тогда
ОбработкаЦена(Наименование,Цена);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбработкаЦена(Наименование,Цена)
попытка
НайденныеЭлементы=Справочники.Цена.НайтиПоНаименованию(Наименование);
если ЗначениеЗаполнено(НайденныеЭлементы) Тогда
если НайденныеЭлементы.ПометкаУдаления тогда
НайденныеЭлементы.ПометкаУдаления=Ложь;
КонецЕсли;
если НайденныеЭлементы.Метаданные().Реквизиты.Найти("Цена")<>Неопределено Тогда
НайденныеЭлементы.Цена=Число(Цена);
КонецЕсли;
НайденныеЭлементы.Записать();
Возврат;
КонецЕсли;
Элемент=Справочники.Цена.СоздатьЭлемент();
Элемент.Наименование=Наименование;
если Элемент.Метаданные().Реквизиты.Найти("Цена")<>Неопределено Тогда
Элемент.Цена=Число(Цена);
КонецЕсли;
Исключение
Сообщить("Ошибка"+ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры