Как убрать префикс из номера документа при печати в 1С?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе в типовых конфигурациях 1С, таких как Управление торговлей или Бухгалтерия предприятия, пользователи часто сталкиваются с тем, что в номер документа попадают лишние символы — так называемые префиксы. Например, вместо ожидаемого номера «00001» на печать выводится «00УТ-000001». Разберемся, почему это происходит и как настроить систему так, чтобы в печатных формах отображался только чистый номер.

Понимание структуры номера

Прежде чем приступать к изменениям, важно осознать, как 1С формирует номер документа. Система автоматически склеивает несколько частей:

Комбинация «00УТ-000001» говорит нам о том, что «00» — это префикс организации, а «УТ» — префикс ИБ. Понимание этого факта поможет нам применить правильное решение.

Способ 1: Настройка через регистры (без программирования)

В современных релизах Бухгалтерии 3.0 и некоторых версиях УТ можно управлять отображением префикса через настройки системы без изменения кода конфигурации.

  1. Перейдите в меню «Функции технического специалиста» (ранее «Все функции»).
  2. Найдите в списке регистр сведений ПрефиксыИнформационныхБаз.
  3. Откройте нужную запись для вашей организации или узла.
  4. Установите значение «Печатать префикс» в состояние «Ложь» (или снимите соответствующий флажок).
  5. Сохраните настройки и проверьте печатную форму документа.

Способ 2: Программная очистка через расширения (рекомендуемый метод)

Если штатные настройки не помогают или вы работаете в конфигурации, где логика печати жестко зашита в модулях, воспользуемся мощным инструментом — Расширениями конфигурации. Это позволяет изменить поведение программы, не снимая базу с поддержки.

Рассмотрим использование процедуры ПриПолученииНомераНаПечать в общем модуле ПрефиксацияОбъектовКлиентСерверПереопределяемый. Мы создадим расширение, которое программно очистит номер от всех префиксов непосредственно перед выводом на печать.

Для этого в расширении необходимо реализовать следующий алгоритм:


// Пример кода для расширения
Процедура ПриПолученииНомераНаПечать(НомерОбъекта, СтандартнаяОбработка) Экспорт
    // Удаляем все префиксы, оставляя только числовую часть
    НомерОбъекта = ПрефиксацияОбъектовКлиентСервер.УдалитьЛидирующиеНулиИзНомераОбъекта(
        ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта(НомерОбъекта, Истина, Истина)
    );
КонецПроцедуры

Этот метод хорош тем, что физически номер документа в базе остается неизменным. Это критически важно, так как при обмене данными между Управлением торговлей и Бухгалтерией система опирается на полный номер. Если вы удалите префикс в базе данных, синхронизация может перестать работать, а номера начнут дублироваться.

Способ 3: Доработка функции получения номера

Для более тонкой настройки в УТ 11 можно модифицировать функцию ПолучитьНомерНаПечать в общем модуле ПрефиксацияОбъектов. Если функция вызывается с параметрами, равными Ложь, принудительно переопределите их значение на Истина:


Функция ПолучитьНомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИБ = Ложь, УдалитьПрефиксОрганизации = Ложь) Экспорт
    // Принудительно устанавливаем параметры удаления в Истина
    УдалитьПрефиксИБ = Истина;
    УдалитьПрефиксОрганизации = Истина;
    
    // Далее следует стандартный алгоритм формирования
КонецФункции

Важные рекомендации

Следуя этим шагам, вы сможете добиться аккуратного вида ваших печатных форм, сохранив при этом целостность данных в информационной системе.

← На главную