При разработке или доработке печатных форм в 1С часто возникает задача привести номер документа к «чистому» виду. Стандартный номер в системе 1С:Комплексная автоматизация (КА2) обычно выглядит как 00АА-000101, где присутствуют префиксы информационной базы, префиксы организации и ведущие нули. В данной статье мы разберем, как корректно очистить номер для вывода в печатную форму, чтобы он выглядел просто как 101 или 45.
В типовых конфигурациях 1С, использующих Библиотеку стандартных подсистем (БСП), существуют готовые инструменты, предназначенные для работы с номерами. Это наиболее надежный путь, так как он учитывает все особенности логики нумерации объектов в системе.
Рекомендуется использовать функции общего модуля ПрефиксацияОбъектовКлиентСервер. Основная процедура, которая позволяет отсечь префиксы информационной базы и организации — это УдалитьПрефиксыИнформационнойБазы.
Разберем, как это работает на практике. При формировании печатной формы в модуле менеджера или внешнем модуле, вы можете вызвать эту функцию перед выводом номера в макет:
// Предположим, у нас есть объект ДокументОбъект
ОчищенныйНомер = ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИнформационнойБазы(ДокументОбъект.Номер);
После этого метода мы получим строку вида 000101. Это уже очищенный от префиксов номер, но в нем все еще остаются ведущие нули. Если ваша бизнес-задача требует их удаления, переходим к следующему шагу.
Если после работы штатных механизмов БСП вам необходимо избавиться от ведущих нулей, у нас есть несколько вариантов реализации этой задачи.
Число(). При преобразовании строки в число ведущие нули автоматически исчезают.Посмотрим на пример реализации циклического удаления нулей:
Функция ПолучитьНомерБезНулей(НомерНаПечать)
Пока Лев(НомерНаПечать, 1) = "0" Цикл
НомерНаПечать = Сред(НомерНаПечать, 2);
КонецЦикла;
Возврат НомерНаПечать;
КонецФункции
Этот подход позволяет гибко управлять результатом, однако стоит помнить, что если номер содержит буквы или спецсимволы, такие алгоритмы могут потребовать доработки.
При изменении логики вывода номера в печатную форму мы должны придерживаться определенных правил, чтобы не нарушить целостность данных в информационной системе:
Число(ОчищенныйНомер). Это стандартный и общепринятый подход для формирования «красивых» номеров на печати.Используя комбинацию методов ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИнформационнойБазы для удаления префиксов и последующее приведение результата к типу Число, вы получите корректное отображение номера в любом документе системы 1С:Комплексная автоматизация.