Имя: Пароль:
1C
1C 7.7
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
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) причем тут читать да еще программно?

ветку читаем?
AdBlock убивает бесплатный контент. 1Сергей