|
Убрать нули Ø (PR 25.12.2024 09:08) | ☑ | ||
---|---|---|---|---|
0
igablack
25.12.24
✎
08:18
|
Всем привет. Понимаю, что таких тем было уже много, но все же:
У меня выходит номер документа например 0000000550, могу ли я при выводе убрать нули слева? Типа ДокНомер = СтрЗаменить(СокрЛ(СтрЗаменить(ДокНомер, "0", " "))," ","0"); СтрокаТаблицы.Параметры.ДокНомер = ДокНомер; |
|||
1
Kongo2019
25.12.24
✎
08:24
|
(0)СтрЗаменить заменит все нули в строке, а не только лидирующие.
Номер = "00000000170" Пока Лев(Номер,1)="0" Цикл Номер = Прав(Номер,СтрДлина(Номер)-1); КонецЦикла; Возврат Номер; |
|||
2
maxab72
25.12.24
✎
08:21
|
преобразуйте в число а потом обратно в строку.
или обход символов и проверка на первый не ноль. |
|||
3
Ненавижу 1С
гуру
25.12.24
✎
08:22
|
Если там только цифры, то можно:
XMLСтрока(Число(ДокНомер)) |
|||
4
Irbis
25.12.24
✎
08:25
|
Но вообще странно, сначала героически заводить лидирующие нули со всем сопутствующим им геморроем, а потом при выводе на печать их резать. Точно, 1Сники перестают быть ленивыми, лень перетекает в тупость.
|
|||
5
igablack
25.12.24
✎
08:27
|
(1) А если таких номеров много? Чтобы к переменной обратиться и он убрал все нули слева?
|
|||
6
RAJAH
25.12.24
✎
08:27
|
ПрефиксацияОбъектовКлиентСервер.УдалитьЛидирующиеНулиИзНомераОбъекта
|
|||
7
Ненавижу 1С
гуру
25.12.24
✎
08:27
|
(4) это генерация номера самой платформой
|
|||
8
igablack
25.12.24
✎
08:27
|
(2) Можете пример привести?
|
|||
9
Irbis
25.12.24
✎
08:30
|
(7) А резать тогда зачем?
|
|||
10
Ненавижу 1С
гуру
25.12.24
✎
08:32
|
(9) в различные внешние данные нужен номер без лидирующих нулей - например печатный формы и XML-файлы ЭДО
|
|||
11
igablack
25.12.24
✎
08:35
|
Я честно не скажу для чего было заводить такие числа для малого предприятия, я не учувствовал в разработке, сказали обрезать, вот и ищу варианты...
|
|||
12
Irbis
25.12.24
✎
08:36
|
(10) Номер с нулями и номер без нулей это формально разные документы, ищи потом кто и где накосячил. Если уж есть такие потребности, нужно сразу номер под требования формировать.
|
|||
13
igablack
25.12.24
✎
08:37
|
Я полностью с Вами согласен....но все же....
|
|||
14
Ненавижу 1С
гуру
25.12.24
✎
08:37
|
(12) номер однозначно восстанавливается
|
|||
15
Гена
гуру
25.12.24
✎
08:37
|
(0) Поясните: Вы хотите реальные номера доков обезнолить или только для печати?
|
|||
16
Ненавижу 1С
гуру
25.12.24
✎
08:38
|
(13) что все же? см (3)
|
|||
17
igablack
25.12.24
✎
08:39
|
(15) Только для печати, чтобы в печатной форме они фигурировали без первых нулей
|
|||
18
Мультук
гуру
25.12.24
✎
08:40
|
(17)
В (6) дали нормальный "типовой" ответ. Что ещё нужно то ? |
|||
19
igablack
25.12.24
✎
08:43
|
Он разве не удалит полностью из документа?
|
|||
20
Irbis
25.12.24
✎
08:44
|
(14) Неа. Обрезанный номер из сабжа "550" можно восстановить с разным количеством нулей, ибо остаётся только надеяться, что соблюдался исходный формат. и не было в истории "урезанных" номеров. При обрезании информация теряется безвозвратно.
|
|||
21
Kongo2019
25.12.24
✎
08:45
|
(6) А вдруг у него нет БСП?
|
|||
22
igablack
25.12.24
✎
08:47
|
вооот, поэтому я ищу возможность просто вывести на печать без нулей слева, ну или 5 символов справа
|
|||
23
Гена
гуру
25.12.24
✎
08:48
|
(17) Функция НомерНаПечать
|
|||
24
igablack
25.12.24
✎
08:48
|
(21) есть
|
|||
25
igablack
25.12.24
✎
08:49
|
Обязательно создавать функцию? неужели нельзя в одну строку или через выразить в запросе?
|
|||
26
Ненавижу 1С
гуру
25.12.24
✎
08:50
|
(20) восстановится до допустимой длины номера документа
|
|||
27
Ненавижу 1С
гуру
25.12.24
✎
08:51
|
(25) увы запросы в 1С довольно слабы
|
|||
28
Гена
гуру
25.12.24
✎
08:51
|
(25) Она давно есть:
https://its.1c.ru/db/bsp3110doc/content/1798/hdoc Неужели же Вы думали, что 1С не учла давным-давно пожелания пользователей? |
|||
29
igablack
25.12.24
✎
08:52
|
(28) у меня к сожалению нет доступа....
|
|||
30
pasha_d
25.12.24
✎
08:52
|
Пока Лев(Номер, 1)="0" Цикл
Номер = Сред(Номер, 2); КонецЦикла; Возврат Номер; |
|||
31
igablack
25.12.24
✎
08:53
|
(27) как же мне нравится Ваш ник
|
|||
32
Kongo2019
25.12.24
✎
08:55
|
(24) Ну тогда вообще не проблема - ПрефиксацияОбъектовКлиентСервер.УдалитьЛидирующиеНулиИзНомераОбъекта
Пример использования: НомерОбъекта = "0ФНК-000365"; // строка УдалитьЛидирующиеНулиИзНомераОбъекта(НомерОбъекта) // "0ФНК-365" |
|||
33
Гена
гуру
25.12.24
✎
08:54
|
(29) НомерНаПечать
Получает номер документа для вывода на печать; из номера удаляются префиксы и лидирующие нули. Функция: отбрасывает префикс организации, отбрасывает префикс информационной базы (опционально), отбрасывает пользовательские префиксы (опционально), удаляет лидирующие нули в номере объекта. Синтаксис Функция НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь) Экспорт Параметры НомерОбъекта - Строка - номер или код объекта, который преобразуется для вывода на печать. УдалитьПрефиксИнформационнойБазы - Булево - признак удаления префикса информационной базы. УдалитьПользовательскийПрефикс - Булево - признак удаления пользовательского префикса. Возвращаемое значение Строка - номер на печать. Пример вызова Результат = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(НомерОбъекта, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс) Доступность Сервер, Тонкий клиент, Толстый клиент, Внешнее соединение |
|||
34
Мультук
гуру
25.12.24
✎
08:55
|
(32)
Он боится совать в неизвестные функции свои номера документов. Вдруг функция откусит чуток лишнего. Что потом делать ? На мисту идти ? |
|||
35
igablack
25.12.24
✎
08:56
|
(32) это ведь всю функцию нужно копировать в код, а неужели в одну строку нельзя сделать : СтрокаТаблицы.Параметры.Номер = ...... ?
|
|||
36
Гена
гуру
25.12.24
✎
08:56
|
(32) префикс в бумажном документе ну уж стопудово не нужен
|
|||
37
igablack
25.12.24
✎
08:57
|
(34) верно)
|
|||
38
Kongo2019
25.12.24
✎
08:57
|
(34) Ты сделал мой день. Давно я так не смеялся.
|
|||
39
Kongo2019
25.12.24
✎
08:58
|
(35) СтрокаТаблицы.Параметры.Номер = ПрефиксацияОбъектовКлиентСервер.УдалитьЛидирующиеНулиИзНомераОбъекта(НомерОбъекта)
Вот тебе одна строка. |
|||
40
Ненавижу 1С
гуру
25.12.24
✎
08:59
|
(35) это какой-то новый способ переиспользования функций
|
|||
41
maxab72
25.12.24
✎
09:02
|
(8) 1 и 3 посты. там добрые люди привели примеры кода.
|
|||
42
PR
25.12.24
✎
09:07
|
(41) И в (1) и в (3) хуйня на постном масле
После (6) нечего обсуждать в ветке После (35) появилось четкое желание выдать ТС пиздюлей |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |