| 
    
        
     
     | 
    
    
  | 
        Убрать нули     Ø (PR 25.12.2024 09:08) Ненавижу 1С, Гипервизор, Kongo2019, igablack, PR, pasha_d, maxab72, Valdis2007, Krendel, Мультук, Гена, lEvGl, Irbis, scanduta, 2S, dmt, Prog_man, Winnie Buh, Linemoon, SleepyHead, lxndr, kir-g, ads55, comp2006, zenik, NorthWind, Гобсек, Aleksey, kupec, ivanov-i-i, Has, Kobol, DimVad, RAJAH, Джордж1, RomanYS, NikeArz, d4rkmesa, Garykom, FirstLineSupport, Amra, ADirks, Мыхалыч, PuhUfa, s_newbi, arsik, dva1c, ddubrovin, azt-yur, Смотрящий 
 | ☑ | ||
|---|---|---|---|---|
| 
    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) появилось четкое желание выдать ТС пиздюлей  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |