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


&НаКлиенте
асинх Процедура ЗагрузитьДанные(Команда)
 Диалог=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
 Диалог.Фильтр="excle (*.xlsx)|*.xlsx";
 Файл=Ждать Диалог.ВыбратьАсинх();
 если Файл=Неопределено Тогда 
  Возврат;
 КонецЕсли;
 ПолныйПуть=Файл[0];
 АдресФайла=ПоместитьВоВременноеХранилище(ПолныйПуть);     
 ЗагрузкаНаСервер(АдресФайла);
 Сообщить("Данные загружены");
КонецПроцедуры

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