![]() |
![]() |
![]() |
|
v8: Как загрузить с Excel поля с нулями? | ☑ | ||
---|---|---|---|---|
0
Artyom ZK
12.04.12
✎
10:10
|
День добрый!
В екселе есть столбец с номером, присутствуют нули - "0000111", при загрузке в 1ску, нули отбрасываются и попадают в обработку уже как "111", Подскажите пожалуйста каким образом это исправить? Спасибо. |
|||
1
butterbean
12.04.12
✎
10:11
|
код покажи
|
|||
2
Artyom ZK
12.04.12
✎
10:13
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика. Данные.Очистить(); Попытка Ексель=Новый COMОбъект("Excel.Application"); Исключение Сообщить("Неудалось открыть Excel, возможно он не установлен на компьюторе" + Символы.ПС + ОписаниеОшибки()); Возврат; КонецПопытки; ЕксельКники = Ексель.WorkBooks; Попытка ЗагружаемыйФайл = ЕксельКники.Open(ПутьКФайлу); Исключение Сообщить("Открываемый файл не найден" + Символы.ПС + ОписаниеОшибки()); Ексель.Application.Quit(); Возврат; КонецПопытки; Лист = ЗагружаемыйФайл.Sheets(НомерЛиста); Для ИндексСтроки=6 по 3000 Цикл Сообщить("Строка номер "+ Строка(ИндексСтроки)); Контрагент = Лист.Cells(ИндексСтроки, 5); Если ЗначениеЗаполнено(Контрагент.Value) Тогда Номер = Лист.Cells(ИндексСтроки, 1); Дата = Лист.Cells(ИндексСтроки, 3); Контрагент = Лист.Cells(ИндексСтроки, 5); КонтрагентДата = Лист.Cells(ИндексСтроки, 9); НомерДоговора = Лист.Cells(ИндексСтроки, 8); РНН = Лист.Cells(ИндексСтроки, 7); Услуга = Лист.Cells(ИндексСтроки, 10); Количество = Лист.Cells(ИндексСтроки, 11); Всего = Лист.Cells(ИндексСтроки, 12); Сумма = Лист.Cells(ИндексСтроки, 13); СуммаНДС = Лист.Cells(ИндексСтроки, 14); стр=Данные.Добавить(); стр.РНН=СтрЗаменить(РНН.Value,Символы.НПП,""); Если СтрДлина(стр.РНН)<12 Тогда стр.РНН="0"+стр.РНН; КонецЕсли; спрКонт=Справочники.Контрагенты.НайтиПоРеквизиту("РНН", стр.РНН); если не ЗначениеЗаполнено(спрКонт) тогда спрКонт=Справочники.Контрагенты.СоздатьЭлемент(); спрКонт.Наименование=Контрагент.Value; спрКонт.РНН=стр.РНН; спрКонт.Записать(); КонецЕсли; стр.Контрагент=спрКонт.Ссылка; стр.Услуга=Справочники.Номенклатура.НайтиПоНаименованию(Услуга.Value); стр.Количество=Количество.Value; стр.дата=дата.value; стр.ДатаДоговора=Дата(Сред(КонтрагентДата.Value,7,4)+Сред(КонтрагентДата.Value,4,2)+Лев(КонтрагентДата.Value,2)); стр.НомерДоговора=НомерДоговора.Value; стр.Сумма=Сумма.value; стр.СуммаНДС=СуммаНДС.Value; стр.Всего=Всего.value; стр.Номер=Номер.value; КонецЕсли; КонецЦикла; ЗагружаемыйФайл.Application.Quit(); КонецПроцедуры |
|||
3
Zmich
12.04.12
✎
10:13
|
(0). Используй не .Value, а .Text
|
|||
4
dk
12.04.12
✎
10:13
|
.Value заменить на .Text
мульен раз тут обсуждалось |
|||
5
Artyom ZK
12.04.12
✎
10:14
|
ок спасибо.ща попробую.
|
|||
6
Artyom ZK
12.04.12
✎
10:17
|
Все работает!!! Спасибо еще раз!
|
|||
7
Андрюха
12.04.12
✎
10:22
|
Иногда бывают формульные косяки в Excel. Не забывайте делать проверочку:
СтрЗнач = ?(Ячейка.Text = "#ЗНАЧ!", "0", Ячейка.Text); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |