Упрощение Кода

1. JohnSkufield 27.03.24 21:19 Сейчас в теме
Доброго времени суток. Имеется код, но он написан довольно не красиво. С 1С разбираюсь недавно

Можете дать каких-то советов по упрощению данного кода?

&НаКлиенте
 Процедура ДиалогВыбораФайлаExcel() 
   Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   Диалог.Заголовок = "Выбор файла";
   Диалог.Фильтр = "Файл Excel(*.xls),(*.xlsx)|*.xls*;*.xlsx";
   Диалог.ПредварительныйПросмотр = Истина;
   Диалог.ИндексФильтра = 0; 
   ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВыбораФайла",ЭтотОбъект);
   Диалог.Показать(ОписаниеОповещения);
 КонецПроцедуры
 
 &НаСервере
 Процедура ПослеВыбораФайла(ВыбранныеФайлы,ДополнительныеПараметры) Экспорт
   Если ВыбранныеФайлы = Неопределено Тогда
     Возврат;
   Иначе 
     ТабДок = Новый ТабличныйДокумент;
    Попытка
       ТабДок.Прочитать(ВыбранныеФайлы[0]);
    Исключение
      Сообщение = Новый СообщениеПользователю;
      Сообщение.Текст = "Не удалось прочитать файл по причине: " + ОписаниеОшибки();
      Сообщение.Сообщить();
      Возврат;
    КонецПопытки;
     КолВоСтрок = ТабДок.ВысотаТаблицы;
    КолВоСтолбцов = ТабДок.ШиринаТаблицы;
      Для НомерСтроки = 1 По КолВоСтрок Цикл
       Имущество = Справочники.ВнеоборотныеАктивы.СоздатьЭлемент();
      Имущество.Наименование = ТабДок.Область(НомерСтроки,1).Текст;
      Имущество.Код = ТабДок.Область(НомерСтроки,2).Текст;
      Для Столбец = 3 По КолВоСтолбцов Цикл
        Доп = Имущество.ДополнительныеРеквизиты.Добавить();
        Доп.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ТабДок.Область(1,Столбец).Текст);
        Доп.Значение =  ТабДок.Область(НомерСтроки,Столбец).Текст;
        Доп.ТекстоваяСтрока = ТабДок.Область(НомерСтроки,Столбец).Текст;
        Имущество.Записать();
      КонецЦикла;
     КонецЦикла;
   КонецЕсли;
 КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starjevschik 27.03.24 22:24 Сейчас в теме
можно цветочек из звездочек дорисовать...
3. tango 543 27.03.24 22:44 Сейчас в теме
4. polax 27.03.24 23:10 Сейчас в теме
(1) Код рабочий, но в принципе. Могут быть нюансы. Например, таблица эксель начинается не с первой строки (две-три сверху пустые, есть заголовки и т.п.) Так же и ширина. Первая колонка не с С1 начинается. И тогда код выдаст ерунду. Т.е. надо сначала определять реальную область с данными в эксель
5. PowerBoy 3364 28.03.24 05:58 Сейчас в теме
Имущество.Записать(); - не в том цикле, да и анализ ошибки записи надо сделать.
6. VmvLer 28.03.24 09:45 Сейчас в теме
Разве что от Иначе избавиться...

&НаСервере
 Процедура ПослеВыбораФайла(ВыбранныеФайлы,ДополнительныеПараметры) Экспорт

Если ВыбранныеФайлы = Неопределено Тогда
     Возврат;
КонецЕсли;

ТабДок = Новый ТабличныйДокумент;
Попытка
    ТабДок.Прочитать(ВыбранныеФайлы[0]);
Исключение
.....
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот