Имя: Пароль:
1C
1С v8
Читаю с екселя массивом. в УФ. Строку (штрихкод) превращает в число-теряю нули.
0 temsa
 
14.03.15
06:16
Как это обойти товарищи?

Напрмер "00653" = "653"

форматом ничего не получается
1 Web00001
 
14.03.15
06:28
читай "text" а не "value"
2 temsa
 
14.03.15
06:41
(1) Попробовал.

Но возникли другие глюки.
тут:
ДанныеЭксель            = Excel.Range(Excel.Sheets(1).Cells(2,1),    Excel.Sheets(1).Cells(КонечнаяСтрокаДанных,КоличествоКолонокДанных)).Value.Выгрузить();


Value меняю на text

и тогда ДанныеЭксель  не дает прочесть на сервере

ЧислоСтрок = ДанныеЭксель[0].Количество();
3 NcSteel
 
14.03.15
09:01
(2) А если запросом?
4 Web00001
 
14.03.15
09:37
(2)Ерунда какая то. Почему не дает, что пишет? Что такое Выгрузить()? откуда оно взялось и что оно делает в ком объекте экселя? Вообще строка какая то странная, не могу понять как это работает и откуда там запятая в середине между выраженими.
5 Web00001
 
14.03.15
09:39
+(4)Пригляделся, ты читаешь область экселя и выгружаешь ее. Читай построчно в цикле.
6 bolobol
 
14.03.15
11:26
Судя по моим экспериментам - чтение построчно через Техт не поможет, так как лидирующие нули заданы форматом ячейки - так выгружается из 1С в форматы старше xls95.
А формат через СОМ при всём желании - мне получить не удалось.
7 temsa
 
14.03.15
11:55
Короче тупо при выгрузке из 1с 77 к штрихкоду добавил букву
"Ш" а уже при загрузке в 1с8.3 убирал эту букву


Короче тупо смекалка.
8 bolobol
 
14.03.15
12:26
(7) Если уж добавлять - то добавлять спец символ ' - строка. Но и его убирать придётся при чтении.
9 Шапокляк
 
14.03.15
12:40
А если ничего не добавлять, а все прочитанное приводить к строке, дополненной слева нулями до определенной длины?
10 ShoGUN
 
14.03.15
12:41
Можно сам файл преобразовать, формат ячеек столбца сделать строковым.
(5) Построчное чтение эдак на порядок медленнее.
11 bolobol
 
14.03.15
12:50
(10) Сам файл не преобразуешь - данные в нём без ведущих нулей. Они видны визуально из-за формата.

(9) Откуда бы знать, читая файл, что нули вообще должны быть в начале?
12 ShoGUN
 
14.03.15
12:52
(11) >Откуда бы знать, читая файл, что нули вообще должны быть в начале?
Формат ячейки анализировать(но это медленно очень).
13 bolobol
 
14.03.15
13:16
(12) Пример: ИНН - бывает 12 знаков, бывает 10. Т.о. - даже зная максимальную ширину поля, в которое загружается колонка - нельзя однозначно сказать, что ведущими нулями добивать до 12-ти.
14 ShoGUN
 
14.03.15
13:23
(13) Тебе универсальная загрузка нужна, чтоб сама понимала? Тогда конечно никак. А вообще, зная назначение поля - можно добавить форматирование в код.
15 bolobol
 
14.03.15
13:39
(14) Ну - универсальное - это предел всех стремлений))
А так-то - не верю, что в экселе видеть можно установленный формат, а прочитать через СОМ - нет. Но никак не нашёл...

Апаю тему, вдруг - чудо! ))
16 Torquader
 
14.03.15
13:43
А что нельзя формат ячейки получить, или попробовать слово Formula для получения значения ?
17 bolobol
 
14.03.15
14:50
(16) Вот формат как получить - не понимается.
А Формула - это "=Сумм(Если(...."
18 Torquader
 
14.03.15
14:58
(17) Через OLE поле Formula даёт то, что реально записано в ячейке, а не что выводится.
19 bolobol
 
14.03.15
15:07
(18) Верно. Вот 463 и даст, а не 0000463 при формате "0000000"
20 Torquader
 
14.03.15
18:52
А что показывает "NumberFormat" ?
21 zladenuw
 
14.03.15
18:56
(6) так Это Все Range. если читать по строчно. то через Техт все ок.
22 bolobol
 
14.03.15
19:39
(20) (21) Это если уже первая строка данных явно показывает расхождения, а NumberFormat.Выгрузить() и Техт.Выгрузить() - не работают, а значит читать нужно все ячейки поячеечно, что к задаче неприменимо.
(19) - здесь ошибся - только Value и Formula показывают 463
НимберФормат показывает 0000000
Текст: 0000463
23 bolobol
 
14.03.15
19:41
Но, как мы помним, например - ИНН - может быть 10 и 12 циферь. Т.е., взяф формат для первой строки и применив для всей таблицы - получим либо 11-ти значные ИНН, либо 12 знаков у юр.лица.
24 ВасяЧ
 
14.03.15
20:18
(7) из 7.7 в 8.3 через Эксель?

Нахуа?
25 temsa
 
14.03.15
20:38
(24)
Предыстория.
Самописка на 1с 77 работало 5-6 лет.
Надоело сопровождать в таком виде ибо привык уже к 1с 8.3
Переписал самописку на 1с 8.3

1. Решил через КД сделать. Понял что не взлетит в самописку надо встаивать универсальные функции и процедуры обслуживающие стандартные обработки. Отбросил...
2. ЗагрузкаДанныхИзТабличногоДокумента подошел классно все работает на ура. Но Я нашел всего лишь на обычных формах.
Переводить все РИб на обычные и грзуить данные тоже изврат. Все перенес именно этой обработкой.

3. Но вот одну таблицу решил именно через ексель.

Вот и всплыла проблема. Но это обошел как выше описал.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший