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


//Проведение импорта булочек на клиенте
&НаКлиенте
Процедура Импорт(Команда)
  Оповещение = Новый ОписаниеОповещения("ИмпортНаСервере", ЭтотОбъект);
  Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
  Диалог.Показать(Оповещение);
КонецПроцедуры

//Проведение импорта булочек на сервере
&НаСервере
Процедура ИмпортНаСервере(Файлы, Параметры) Экспорт
  //Попытка создать табличный документ
  Попытка
    Файл = Файлы[0];
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(Файл);
  Исключение
    Сообщить("Ошибка при импорте файла: " + ОписаниеОшибки());
    Возврат;
  КонецПопытки;
  
  Для Строка=2 по ТабДок.ВысотаТаблицы Цикл
    //Получаем данные из табличного документа
    Наименование = ТабДок.Область(Строка, 1).Текст;
    Цена = ТабДок.Область(Строка, 2).Текст;
    Описание = ТабДок.Область(Строка, 3).Текст;
    ТипНаименование = ТабДок.Область(Строка, 4).Текст;
    
    //До этого я додумался только на экзамене. Немного помогает со сломанными excel-файлами. В идеале бы их еще чистить от невидимых символов
    Если Наименование="" Тогда
      Продолжить
    КонецЕсли;
    
    //Создаем тип булочки, если ее не существует
    Если Справочники.ТипыБулочек.НайтиПоНаименованию(ТипНаименование).Пустая() Тогда
      Тип = Справочники.ТипыБулочек.СоздатьЭлемент();
      Тип.Наименование = ТипНаименование;
      Тип.Записать();
    КонецЕсли;
    
    //Создаем булочку, если ее еще не существует
    Если Справочники.Булочки.НайтиПоНаименованию(Наименование).Пустая() Тогда
      Булочка = Справочники.Булочки.СоздатьЭлемент();
      Булочка.Наименование = Наименование;
      Булочка.Цена = Цена;
      Булочка.Описание = Описание;
      Булочка.Тип = Справочники.ТипыБулочек.НайтиПоНаименованию(ТипНаименование);
      Булочка.Записать();
    КонецЕсли;
  КонецЦикла;
  
  Элементы.Список.Обновить();
  Сообщить("Импорт завершен!");
КонецПроцедуры