|
v7: Отсечение лидирующих нулей в таблицах xls | ☑ | ||
---|---|---|---|---|
0
Looking
12.03.17
✎
18:02
|
Доброго времени суток! Можно-ли как-то исключить отсечение лидирующих нулей в ячейках с кодами, при открытии через Excel, OpenOffice, LibreOffice и т.д. табличных форм, штатно сохраненных из 1С 7.7 в xls?
Пробовал добавить перед кодом апостроф, вроде-бы он не должен отображаться, но апостроф отображается. Может апостроф как-то не так добавляю? "'"+СокрЛП(Докум.Номенклатура.Код) |
|||
1
Looking
12.03.17
✎
18:07
|
если пробел добавляю, так его Эксель отсекает вместе с лидирующими нулями, хотя вроде-бы не должен?
|
|||
2
nordbox
12.03.17
✎
18:12
|
а если код преобразовать в число, а потом опять в строку или как там тебе надо , по идеи нули должны уйти
|
|||
3
nordbox
12.03.17
✎
18:13
|
ну и на самый худой конец простенькую функцию в 5 строк по удалению нулей с лева
|
|||
4
Looking
12.03.17
✎
18:14
|
(2)мне наоборот нужно, чтобы лидирующие нули не отсекались Экселем, чтобы при открытии таблицы в Эксель лидирующие нули отображались
|
|||
5
nordbox
12.03.17
✎
18:14
|
тогда код в строку
|
|||
6
Looking
12.03.17
✎
18:15
|
+(4)для этого пробовал добавить в начало строки пробел - нули отсекаются, если добавляю апостроф, то нули остаются, но и апостроф перед нулями также остается.
Нужно, чтобы отображал 00045, а отображает 45. |
|||
7
nordbox
12.03.17
✎
18:15
|
вместо первого нуля букву "О" )))
|
|||
8
Looking
12.03.17
✎
18:16
|
(5)код и так в строку преобразован СокрЛП(Докум.Номенклатура.Код), но Экселю то на это все-равно, он воспринимает эту строку как число, так как в строке одни цифры
|
|||
9
nordbox
12.03.17
✎
18:16
|
я не знаю для каких целей тебе это надо )
|
|||
10
Looking
12.03.17
✎
18:16
|
+(8)подробнее на эту тему
http://1c.moy.su/publ/37-1-0-119 http://infostart.blog-buh.ru/public/269722/ |
|||
11
Looking
12.03.17
✎
18:17
|
(7)не пойдет, нужны именно нули
|
|||
12
nordbox
12.03.17
✎
18:18
|
СокрЛП вообще то не преобразовывает, а удаляет пробелы с лева и справа
Строка, Стр не помню, вот они преобразуют ) |
|||
13
Looking
12.03.17
✎
18:18
|
(9)клиенты просят, им в накладной, когда они ее в Эксель открывают нужны именно лидирующие нули.
|
|||
14
Looking
12.03.17
✎
18:22
|
(12)так тип кода итак текстовый
|
|||
15
nordbox
12.03.17
✎
18:22
|
СокрЛП(<?>)
Синтаксис: СокрЛП(<Строка>) Назначение: Отсекает стоящие слева и справа пробелы и возвращает результирующую строку. Строка(<?>) Синтаксис: Строка(<Параметр>) Назначение: Возвращает результат преобразования параметра в строку по правилам преобразования типов. |
|||
16
nordbox
12.03.17
✎
18:23
|
Это для тебя он текстовый, а на выходе он числовой
|
|||
17
nordbox
12.03.17
✎
18:26
|
Looking, ты вроде не первый день за мужем, а на таком спотыкаешься )))
|
|||
18
Looking
12.03.17
✎
18:26
|
(16)сделал через строку, результат тот-же
|
|||
19
Looking
12.03.17
✎
18:26
|
+(18)я так понимаю для Эксель эта строка не строка, а число
|
|||
20
nordbox
12.03.17
✎
18:27
|
да, там какая то фигня есть, а ты пробел попробуй в начало только СокрЛП не делай
|
|||
21
Looking
12.03.17
✎
18:37
|
(20)попробовал, ИМХО Экселю все-равно, он смотрит, что число, поэтому и формат применяет числовой
|
|||
22
Looking
12.03.17
✎
18:40
|
может как вариант не штатно сохранять таблицу в Эксель, а через стороннюю обработку экспорта таблицы 1С в формат xls?
|
|||
23
nordbox
12.03.17
✎
18:44
|
ну попробуй, вообще на эту тему было много веток, у меня просто надобности такой не было, не экспериментировал
|
|||
24
nordbox
12.03.17
✎
18:45
|
дык твои юзвери букву О от нуля не отличат
|
|||
25
Garykom
гуру
12.03.17
✎
18:47
|
(0) Используй не штатное сохранение ТабДок в эксель а любое свое, или промежуточная обработка сохраненных .xls
|
|||
26
Гость из Мариуполя
гуру
12.03.17
✎
19:11
|
(21) <<ИМХО Экселю все-равно, он смотрит, что число, поэтому и формат применяет числовой>>
Это напоминает вопль юной бушки - "это не я, это компьютер так посчитал". На что я ей отвечаю: а кто у нас главнее - ты или комп? Кто из вас двоих раба компьютера? Так не уподобляйся такой же рабе. Что ж ты одушевляешь Эксель? "ЕМУ все равно, ОН смотрит" - тьфу, раб компа под пятой Экселя. Стыдобища ТАК формулировать. Ты главный? Если ДА - то задай принудительно формат ячейки в Excel. типо так Cells(1,1).NumberFormat = "@" |
|||
27
nordbox
12.03.17
✎
19:14
|
(26) Он бы сделал НО
(13)>>клиенты просят, им в накладной, когда они ее в Эксель открывают нужны именно лидирующие нули Это накладная, попробуй угадай |
|||
28
Looking
12.03.17
✎
19:30
|
(26)я и говорю, значит штатный способ сохранения не работает для данной задачи, речь ведь о штатном способе. с созданием таблиц xls из 1С работал, не самых сложных, но и не самых примитивных. но это-же уже совсем другое - сгенерировать из 1С таблицу xls, или же сохранить таблицу mxl в xls.
|
|||
29
Garykom
гуру
12.03.17
✎
19:32
|
(28) Штатный способ (точнее его подмена) прекрасно работает
|
|||
30
Garykom
гуру
12.03.17
✎
19:35
|
Хмм меня задолбало бесплатно дубы долбить, поэтому отныне подсказки для решения тупых задач только за $ :)
|
|||
31
Djelf
12.03.17
✎
21:24
|
Вот проблема то... выравнивание по левому краю.
|
|||
32
Либерал
12.03.17
✎
22:37
|
научи клиента в пдф накладные сохранять
|
|||
33
hogik
12.03.17
✎
22:42
|
(0)
Пробуйте так: ПечКод=Симв(9)+"000456"; |
|||
34
hogik
12.03.17
✎
22:53
|
(0)
А лучше так: ПечКод=Симв(8)+"000456"; |
|||
35
slaventiy
12.03.17
✎
23:18
|
Написали уже выше правильный ответ. Выровняй по левому краю содержимое в той ячейке, где нужны нули. Эксель будет воспринимать значения как текст в таком случае
|
|||
36
hogik
12.03.17
✎
23:37
|
(35)
И будет так отображаться в ячейке: '000456 Нет? ;-) |
|||
37
slaventiy
13.03.17
✎
00:01
|
(36) Именно
|
|||
38
hogik
13.03.17
✎
00:27
|
(37)
Думаю, что автору темы это и не нравится. ;-) Хотя, он пытается получить аналогичный эффект при выравнивании по правому краю, вставляя апостроф явно в операторе заполнения ячейки. В его случае апостроф "полезет" на печать. Мой способ позволяет решить три момента. ;-) 1) Можно выравнивать по правому краю. 2) В ячейки не появляется "странных" для пользователя символов. 3) Апостроф пользователь может стереть и ведущие нули пропадут, а Симв(8) стереть сложней. ;-) |
|||
39
slaventiy
13.03.17
✎
10:12
|
не нужно никаких спецсимволов. 00045 в этом случае отобразится именно как 00045. Т.е. 0 не отсекаются
|
|||
40
Chameleon1980
13.03.17
✎
10:41
|
А интересно просто:
в строке формул какое значение показывает? |
|||
41
hogik
13.03.17
✎
15:10
|
(39)
"в этом случае отобразится"(с) В каком этом случае? :-) Если бы автор темы с самого начала использовал выравнивание по левому краю, то и тему бы не открывал. Т.е. он бы не имел проблем с потерей нулей. Так? А это означает, что в его форме используется выравнивание по правому краю. Может ему это и безразлично - лево, право. Но, если не безразлично, то придётся использовать спец символы. Именно это я и хотел сказать... |
|||
42
slaventiy
14.03.17
✎
00:11
|
(41) думаю, автор не знал про выравнивание. Но похоже, мы об этом уже не узнаем
|
|||
43
hogik
14.03.17
✎
02:55
|
(42)
"думаю, автор не знал про выравнивание"(с) Знал. :-) Т.к. "начальное" значение выравнивания для ячейки формы 1С-а: лево, низ. Автор темы открывал закладку "Положение" в свойстве ячейки и менял "лево" на "право". А знания алгоритма "движка" 1С-а при сохранении в формате XLS у него нету. Т.е. он не знал условия установки в первую позицию апострофа САМИМ "движком" 1С-а, если задано выравнивание по левому краю и ячейка содержит числовое значение. Теперь он это знает, если читает СВОЮ тему форума. :-) |
|||
44
Looking
14.03.17
✎
08:03
|
(43)"он не знал условия установки в первую позицию апострофа САМИМ "движком" 1С-а, если задано выравнивание по левому краю и ячейка содержит числовое значение. "
Вы совершенно правы, спасибо всем огромное и поклон в пояс за науку! |
|||
45
Looking
14.03.17
✎
08:07
|
+(44)и спасибо за пояснение в (43)"условия установки в первую позицию апострофа САМИМ "движком" 1С-а, если задано выравнивание по левому краю и ячейка содержит числовое значение"
а то просто писали выравнивать по левому краю, а почему именно так и что при этом происходит раскрыли в (43), мне важно не только знать прием, но и понимать механизм его действия. огромнейшее спасибо! |
|||
46
Looking
14.03.17
✎
08:08
|
(45)теперь понятно, почему при выравнивании по левому краю не требуется добавлять спецсимволы, а в остальных случаях требуется.
|
|||
47
КофеIN
14.03.17
✎
08:19
|
Попробуй читать не через VAlue, а через Text
|
|||
48
Chameleon1980
14.03.17
✎
08:38
|
(47) причем тут читать да еще программно?
ветку читаем? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |