helpf.pro
Регистрация
 +1 
Распечатать

1С 8.2 УП : Как убрать лидирующие нули в номере Документа

Часто при разработке печатных форм или отчетов, нужно номера документов вида 000001 преобразовать в 1 - убрав лидирующие нули. в этой статье я приведу несколько способов, а какой выбрать - решайте сами:

Код 1C v 8.х
 Функция УбратьЛидирующиеНули(НомерДокумента)
    Пока Найти(НомерДокумента, "0") > 0 Цикл
        УбратьЛидирующиеНули(Прав(НомерДокумента, СтрДлина(НомерДокумента)-1));
    КонецЦикла;
    Возврат    НомерДокумента;
КонецФункции
Код 1C v 8.х
 Функция УбратьЛидирующиеНули(НомерДокумента)
    
    Попытка
        НомерДокумента = Формат(Число(НомерДокумента), "ЧГ=");
    Исключение
        НомерДокумента = СтрЗаменить(СокрЛ(СтрЗаменить(СокрП(НомерДокумента), "0", " ")), " ", "0");
        Префикс = "";
        Пока КодСимвола(НомерДокумента) < 48 Или КодСимвола(НомерДокумента) > 57 Цикл
            Префикс = Префикс + Лев(НомерДокумента, 1);
            НомерДокумента = Сред(НомерДокумента, 2);
        КонецЦикла;
        Если Не ПустаяСтрока(Префикс) Тогда
            НомерДокумента = Префикс + УбратьЛидирующиеНули(НомерДокумента);
        КонецЕсли;
    КонецПопытки;
    Возврат НомерДокумента;
    
КонецФункции

В запросе:

Код 1C v 8.х
 ВЫБРАТЬ
    ВЫБОР
    КОГДА Не ПОДСТРОКА(&Номер, 1, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 1, 10)
    КОГДА Не ПОДСТРОКА(&Номер, 2, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 2, 9)
    КОГДА Не ПОДСТРОКА(&Номер, 3, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 3, 8)
    КОГДА Не ПОДСТРОКА(&Номер, 4, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 4, 7)
    КОГДА Не ПОДСТРОКА(&Номер, 5, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 5, 6)
    КОГДА Не ПОДСТРОКА(&Номер, 6, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 6, 5)
    КОГДА Не ПОДСТРОКА(&Номер, 7, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 7, 4)
    КОГДА Не ПОДСТРОКА(&Номер, 8, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 8, 3)
    КОГДА Не ПОДСТРОКА(&Номер, 9, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 9, 2)
    Иначе ПОДСТРОКА(&Номер, 10, 1)
КОНЕЦ КАК НомерБезНулей

Простые примеры:

Код 1C v 8.х
 Пока Лев(Номер, 1) = "0" Цикл 
    Номер = Прав(Номер, СтрДлина(Номер) - 1);
КонецЦикла;
Код 1C v 8.х
 
Функция УбратьНули(НомерСтрокой) 
    Если Лев(НомерСтрокой, 1) = "0" Тогда
        Возврат УбратьНули(Прав(НомерСтрокой, СтрДлина(НомерСтрокой) - 1)); 
    Иначе
        Возврат НомерСтрокой;
    КонецЕсли;
КонецФункции


ИтоговаяСтрока = УбратьНули(Номер);
Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 83166
 +1 
Распечатать
Возможно, вас также заинтересует
Как добавить нули к значению или строке в 1С 0
Функция ДобавитьНули(Значение, НужнаяДлинаЗначения) Значение = СтрЗаменить(Формат(Значение, " ЧГ=" ), " " , " " ); НадоНулей = НужнаяДлинаЗначения - СтрДлина(Значение); ВедущиеНули = Формат(0," ЧЦ=" +НадоНулей+" ;ЧН=; ЧВН=; ЧГ=0" ); Возврат
Настройка веб-клиента 1С:Предприятие 8.2 под Windows 7 x64 и IIS 0
Возникла необходимость отладить небольшую конфигурацию 1С:Предприятие 8.2 под веб-клиентом. Веб сервером был выбран IIS, являющийся самым родным для ОС Windows. Опыт использования этого сервера в Windows XP подсказывал, что с ним будет меньше проблем
ОБЪЕДИНИТЬ результаты запросов 1
Если Вы работаете с одной таблицей, то Вам нет необходимости использовать объединение. Совсем другое дело, когда Вы работаете с несколькими таблицами и Вам, например, нужно получить данные, и по покупкам и по продажам товаров. Для объединения исполь
Отображение в списке статуса наличия оригиналов закрывающих документов Поступлений 0
Этой статьей мы начинаем серию " Хотелок " - то что бухгалтера, менеджеры и т.д. просят добавить в программу 1С для удобства своей работы. Хотелка : Необходимо для каждого документа Поступление товаров и услуг добавить выбор статуса наличия оригин
Ошибка СУБД: Файл базы данных поврежден 1Cv8.1CD 0
К сожалению, иногда, бывают ситуации когда после внезапного отключения света или при обновлении 1С, система выдает: « Файл базы данных поврежден », при этом ссылаясь на файл 1Cv8.1CD Что же делать? Ниже рекомендации по пунктам: 1. Необходимо
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.