v7: Отсечение лидирующих нулей в таблицах xls #792849


#0 by Looking
Доброго времени суток! Можно-ли как-то исключить отсечение лидирующих нулей в ячейках с кодами, при открытии через Excel, OpenOffice, LibreOffice и т.д. табличных форм, штатно сохраненных из 1С 7.7 в xls? Пробовал добавить перед кодом апостроф, вроде-бы он не должен отображаться, но апостроф отображается. Может апостроф как-то не так добавляю? "'"+СокрЛП(Докум.Номенклатура.Код)
#1 by Looking
если пробел добавляю, так его Эксель отсекает вместе с лидирующими нулями, хотя вроде-бы не должен?
#2 by nordbox
а если код преобразовать в число, а потом опять в строку или как там тебе надо , по идеи нули должны уйти
#3 by nordbox
ну и на самый худой конец простенькую функцию в 5 строк по удалению нулей с лева
#4 by Looking
мне наоборот нужно, чтобы лидирующие нули не отсекались Экселем, чтобы при открытии таблицы в Эксель лидирующие нули отображались
#5 by nordbox
тогда код в строку
#6 by Looking
+для этого пробовал добавить в начало строки пробел - нули отсекаются, если добавляю апостроф, то нули остаются, но и апостроф перед нулями также остается. Нужно, чтобы отображал 00045, а отображает 45.
#7 by nordbox
вместо первого нуля букву "О"  )))
#8 by Looking
код и так в строку преобразован СокрЛП(Докум.Номенклатура.Код), но Экселю то на это все-равно, он воспринимает эту строку как число, так как в строке одни цифры
#9 by nordbox
я не знаю для каких целей тебе это надо )
#10 by Looking
+подробнее на эту тему
#11 by Looking
не пойдет, нужны именно нули
#12 by nordbox
СокрЛП вообще то не преобразовывает, а удаляет пробелы с лева и справа Строка, Стр не помню, вот они преобразуют )
#13 by Looking
клиенты просят, им в накладной, когда они ее в Эксель открывают нужны именно лидирующие нули.
#14 by Looking
так тип кода итак текстовый
#15 by nordbox
СокрЛП(<?>) Синтаксис: СокрЛП(<Строка>) Назначение: Отсекает стоящие слева и справа пробелы и возвращает результирующую строку. Строка(<?>) Синтаксис: Строка(<Параметр>) Назначение: Возвращает результат преобразования параметра в строку по правилам преобразования типов.
#16 by nordbox
Это для тебя он текстовый, а на выходе он числовой
#17 by nordbox
Looking, ты вроде не первый день за мужем, а на таком спотыкаешься )))
#18 by Looking
сделал через строку, результат тот-же
#19 by Looking
+я так понимаю для Эксель эта строка не строка, а число
#20 by nordbox
да, там какая то фигня есть, а ты пробел попробуй в начало только СокрЛП не делай
#21 by Looking
попробовал, ИМХО Экселю все-равно, он смотрит, что число, поэтому и формат применяет числовой
#22 by Looking
может как вариант не штатно сохранять таблицу в Эксель, а через стороннюю обработку экспорта таблицы 1С в формат xls?
#23 by nordbox
ну попробуй, вообще на эту тему было много веток, у меня просто надобности такой не было, не экспериментировал
#24 by nordbox
дык твои юзвери букву О от нуля не отличат
#25 by Garykom
Используй не штатное сохранение ТабДок в эксель а любое свое, или промежуточная обработка сохраненных .xls
#26 by Гость из Мариуполя
<<ИМХО Экселю все-равно, он смотрит, что число, поэтому и формат применяет числовой>> Это напоминает вопль юной  бушки - "это не я, это компьютер так посчитал". На что я ей отвечаю: а кто у  нас главнее - ты или комп? Кто из вас двоих раба компьютера? Так не уподобляйся такой же рабе. Что ж ты одушевляешь Эксель? "ЕМУ все равно, ОН смотрит" - тьфу, раб компа под пятой Экселя. Стыдобища ТАК формулировать. Ты главный? Если ДА - то задай принудительно формат ячейки  в Excel. типо так
#27 by nordbox
Он бы сделал НО >>клиенты просят, им в накладной, когда они ее в Эксель открывают нужны именно лидирующие нули Это накладная, попробуй угадай
#28 by Looking
я и говорю, значит штатный способ сохранения не работает для данной задачи, речь ведь о штатном способе. с созданием таблиц xls из 1С работал, не самых сложных, но и не самых примитивных. но это-же уже совсем другое - сгенерировать из 1С таблицу xls, или же сохранить таблицу mxl в xls.
#29 by Garykom
Штатный способ (точнее его подмена) прекрасно работает
#30 by Garykom
Хмм меня задолбало бесплатно дубы долбить, поэтому отныне подсказки для решения тупых задач только за $ :)
#31 by Djelf
Вот проблема то... выравнивание по левому краю.
#32 by Либерал
научи клиента в пдф накладные сохранять
#33 by hogik
Пробуйте так: ПечКод=Симв+"000456";
#34 by hogik
А лучше так: ПечКод=Симв+"000456";
#35 by slaventiy
Написали уже выше правильный ответ. Выровняй по левому краю содержимое в той ячейке, где нужны нули. Эксель будет воспринимать значения как текст в таком случае
#36 by hogik
И будет так отображаться в ячейке: '000456 Нет? ;-)
#37 by slaventiy
Именно
#38 by hogik
Думаю, что автору темы это и не нравится. ;-) Хотя, он пытается получить аналогичный эффект при выравнивании по правому краю, вставляя апостроф явно в операторе заполнения ячейки. В его случае апостроф "полезет" на печать. Мой способ позволяет решить три момента. ;-) 1) Можно выравнивать по правому краю. 2) В ячейки не появляется "странных" для пользователя символов. 3) Апостроф пользователь может стереть и ведущие нули пропадут, а Симв стереть сложней. ;-)
#39 by slaventiy
не нужно никаких спецсимволов. 00045 в этом случае отобразится именно как 00045. Т.е. 0 не отсекаются
#40 by Chameleon1980
А интересно просто: в строке формул какое значение показывает?
#41 by hogik
"в этом случае отобразится"(с) В каком этом случае? :-) Если бы автор темы с самого начала использовал выравнивание по левому краю, то и тему бы не открывал. Т.е. он бы не имел проблем с потерей нулей. Так? А это означает, что в его форме используется выравнивание по правому краю. Может ему это и безразлично - лево, право. Но, если не безразлично, то придётся использовать спец символы. Именно это я и хотел сказать...
#42 by slaventiy
думаю, автор не знал про выравнивание. Но похоже, мы об этом уже не узнаем
#43 by hogik
"думаю, автор не знал про выравнивание"(с) Знал. :-) Т.к. "начальное" значение выравнивания для ячейки формы 1С-а: лево, низ. Автор темы открывал закладку "Положение" в свойстве ячейки и менял "лево" на "право". А  знания алгоритма "движка" 1С-а при сохранении в формате XLS у него нету. Т.е. он не знал условия установки в первую позицию апострофа САМИМ "движком" 1С-а, если задано выравнивание по левому краю и ячейка содержит числовое значение. Теперь он это знает, если читает СВОЮ тему форума. :-)
#44 by Looking
"он не знал условия установки в первую позицию апострофа САМИМ "движком" 1С-а, если задано выравнивание по левому краю и ячейка содержит числовое значение. " Вы совершенно правы, спасибо всем огромное и поклон в пояс за науку!
#45 by Looking
+и спасибо за пояснение в "условия установки в первую позицию апострофа САМИМ "движком" 1С-а, если задано выравнивание по левому краю и ячейка содержит числовое значение" а то просто писали выравнивать по левому краю, а почему именно так и что при этом происходит раскрыли в , мне важно не только знать прием, но и понимать механизм его действия. огромнейшее спасибо!
#46 by Looking
теперь понятно, почему при выравнивании по левому краю не требуется добавлять спецсимволы, а в остальных случаях требуется.
#47 by КофеIN
Попробуй читать не через VAlue, а через Text
#48 by Chameleon1980
причем тут читать да еще программно? ветку читаем?
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С