Получаем с екселя число разделением как убрать разделение на группы
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Число выглядит так в отчете екселевском 37 146,00 и когда 1с переменной присваивается это число то 1С переменная почему то пусто. Можно конечно попросить клиента в екселе убрать разряды, и тогда все работает без преобразование в формат, но это лишнее движение для клиента.
НоваяСтрока.Комиссия = ТекущееЗначение4; так в 1С и вот результат в прикрепленном скане, пусто выводит
НоваяСтрока.Комиссия = ТекущееЗначение4; так в 1С и вот результат в прикрепленном скане, пусто выводит
Прикрепленные файлы:

(4) Попытка
COMОбъект = Новый COMОбъект("Excel.Application");
Workbook = COMОбъект.Workbooks.Open(ИмяФайла);
ExcelЛист = COMОбъект.Sheets(1);
ActiveCell = COMОбъект.ActiveCell.SpecialCells(11);
RowCount = ActiveCell.Row;
ColumnCount = ActiveCell.Column;
//Получим количество строк и колонок.
//В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
Версия = Лев(COMОбъект.Version,Найти(COMОбъект.Version,".")-1);
Если Версия = "8" тогда
ФайлСтрок = COMОбъект.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(COMОбъект.Cells.CurrentRegion.Columns.Count, 13);
Иначе
ФайлСтрок = COMОбъект.Cells(1,1).SpecialCells(11).Row;
ФайлКолонок = COMОбъект.Cells(1,1).SpecialCells(11).Column;
Конецесли;
Для НС = 6 по ФайлСтрок Цикл // НС указываем с какой строки начинать обработку
Состояние("Файл "+Строка(ИмяФайла)+": Обрабатывается первый лист "+Строка(Формат(?(ФайлСтрок=0,0,((100*НС)/ФайлСтрок)),"ЧЦ=3; ЧДЦ=0"))+" %");
ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break
ТекущееЗначение1 = COMОбъект.Cells(НС, 1).Text;
ТекущееЗначение2 = COMОбъект.Cells(НС, 3).Text;
ТекущееЗначение3 = COMОбъект.Cells(НС, 9).Text;
ТекущееЗначение4 = COMОбъект.Cells(НС, 11).Text;
ТекущееЗначение5 = COMОбъект.Cells(НС, 13).Text;
ЗаполнитьТабличнуюЧастьТовары(ТекущееЗначение1,ТекущееЗначение2,ТекущееЗначение3,ТекущееЗначение4,ТекущееЗначение5);
КонецЦикла;
WorkBook.Close();
Исключение
COMОбъект.Quit();
COMОбъект = 0;
СообщениеОбОшибке = НСтр("ru = 'Не удалось прочитать данные из файла. Подробности: '")
+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение СообщениеОбОшибке;
КонецПопытки;
COMОбъект = Новый COMОбъект("Excel.Application");
Workbook = COMОбъект.Workbooks.Open(ИмяФайла);
ExcelЛист = COMОбъект.Sheets(1);
ActiveCell = COMОбъект.ActiveCell.SpecialCells(11);
RowCount = ActiveCell.Row;
ColumnCount = ActiveCell.Column;
//Получим количество строк и колонок.
//В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
Версия = Лев(COMОбъект.Version,Найти(COMОбъект.Version,".")-1);
Если Версия = "8" тогда
ФайлСтрок = COMОбъект.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(COMОбъект.Cells.CurrentRegion.Columns.Count, 13);
Иначе
ФайлСтрок = COMОбъект.Cells(1,1).SpecialCells(11).Row;
ФайлКолонок = COMОбъект.Cells(1,1).SpecialCells(11).Column;
Конецесли;
Для НС = 6 по ФайлСтрок Цикл // НС указываем с какой строки начинать обработку
Состояние("Файл "+Строка(ИмяФайла)+": Обрабатывается первый лист "+Строка(Формат(?(ФайлСтрок=0,0,((100*НС)/ФайлСтрок)),"ЧЦ=3; ЧДЦ=0"))+" %");
ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break
ТекущееЗначение1 = COMОбъект.Cells(НС, 1).Text;
ТекущееЗначение2 = COMОбъект.Cells(НС, 3).Text;
ТекущееЗначение3 = COMОбъект.Cells(НС, 9).Text;
ТекущееЗначение4 = COMОбъект.Cells(НС, 11).Text;
ТекущееЗначение5 = COMОбъект.Cells(НС, 13).Text;
ЗаполнитьТабличнуюЧастьТовары(ТекущееЗначение1,ТекущееЗначение2,ТекущееЗначение3,ТекущееЗначение4,ТекущееЗначение5);
КонецЦикла;
WorkBook.Close();
Исключение
COMОбъект.Quit();
COMОбъект = 0;
СообщениеОбОшибке = НСтр("ru = 'Не удалось прочитать данные из файла. Подробности: '")
+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение СообщениеОбОшибке;
КонецПопытки;
(5)
Святая корова.....
что мешает сделать?
Более того, можно использовать Range, вместо Cells и читать сразу ВСЕ нужные значения, но это уже домашнее здание
......
ТекущееЗначение1 = COMОбъект.Cells(НС, 1).Text
.....
ТекущееЗначение1 = COMОбъект.Cells(НС, 1).Text
.....
Святая корова.....
что мешает сделать?
ТекущееЗначение1 = COMОбъект.Cells(НС, 1).Value
Более того, можно использовать Range, вместо Cells и читать сразу ВСЕ нужные значения, но это уже домашнее здание
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот