Доброго времени суток. Имеется код, но он написан довольно не красиво. С 1С разбираюсь недавно
Можете дать каких-то советов по упрощению данного кода?
Можете дать каких-то советов по упрощению данного кода?
&НаКлиенте
Процедура ДиалогВыбораФайлаExcel()
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выбор файла";
Диалог.Фильтр = "Файл Excel(*.xls),(*.xlsx)|*.xls*;*.xlsx";
Диалог.ПредварительныйПросмотр = Истина;
Диалог.ИндексФильтра = 0;
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВыбораФайла",ЭтотОбъект);
Диалог.Показать(ОписаниеОповещения);
КонецПроцедуры
&НаСервере
Процедура ПослеВыбораФайла(ВыбранныеФайлы,ДополнительныеПараметры) Экспорт
Если ВыбранныеФайлы = Неопределено Тогда
Возврат;
Иначе
ТабДок = Новый ТабличныйДокумент;
Попытка
ТабДок.Прочитать(ВыбранныеФайлы[0]);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось прочитать файл по причине: " + ОписаниеОшибки();
Сообщение.Сообщить();
Возврат;
КонецПопытки;
КолВоСтрок = ТабДок.ВысотаТаблицы;
КолВоСтолбцов = ТабДок.ШиринаТаблицы;
Для НомерСтроки = 1 По КолВоСтрок Цикл
Имущество = Справочники.ВнеоборотныеАктивы.СоздатьЭлемент();
Имущество.Наименование = ТабДок.Область(НомерСтроки,1).Текст;
Имущество.Код = ТабДок.Область(НомерСтроки,2).Текст;
Для Столбец = 3 По КолВоСтолбцов Цикл
Доп = Имущество.ДополнительныеРеквизиты.Добавить();
Доп.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ТабДок.Область(1,Столбец).Текст);
Доп.Значение = ТабДок.Область(НомерСтроки,Столбец).Текст;
Доп.ТекстоваяСтрока = ТабДок.Область(НомерСтроки,Столбец).Текст;
Имущество.Записать();
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Код рабочий, но в принципе. Могут быть нюансы. Например, таблица эксель начинается не с первой строки (две-три сверху пустые, есть заголовки и т.п.) Так же и ширина. Первая колонка не с С1 начинается. И тогда код выдаст ерунду. Т.е. надо сначала определять реальную область с данными в эксель
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот