Как убрать префиксы и нули в номерах документов 1С:ERP

Пользователь 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием
← На главную

При работе в 1С:ERP Управление предприятием многие пользователи сталкиваются с тем, что система автоматически присваивает документам сложные номера вида 00УБ-000241. При формировании печатных форм типовой механизм подсистемы префиксации отсекает часть системных символов, однако на бумаге все равно может выводиться номер с буквами (например, УБ-241) вместо чистого числового значения 241.

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

Как устроена нумерация документов в системах на платформе 1С

Проанализируем структуру номера. В типовых конфигурациях номер документа складывается из нескольких составляющих частей:

  1. Префикс информационной базы (ИБ) — первые два символа (например, 00), служащие для разграничения документов при обмене между различными узлами или системами.
  2. Префикс организации — следующие два символа (например, УБ), определяющие, к какому юридическому лицу относится документ.
  3. Разделительный дефис — символ -, отделяющий служебный префикс от порядкового номера.
  4. Порядковый номер с лидирующими нулями — числовой номер с нулями в начале (например, 000241), обеспечивающий правильную сортировку по строковому полю.

При выводе на печать типовые алгоритмы автоматически удаляют лидирующие нули и стандартные префиксы информационной базы, но оставляют префикс организации, если он задан в карточке предприятия.

Способ 1. Очистка префиксов через пользовательские настройки

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

Разберем процесс настройки по шагам:

  1. Перейдем в раздел НСИ и администрирование, заем откроем пункт Синхронизация данных.
  2. Найдем поле Префикс информационной базы и полностью очистим его значение.
  3. Перейдем в раздел НСИ и администрирование, далее откроем Сведения о предприятии — Сведения об организации.
  4. Откроем карточку вашей организации и очистим поле Префикс.

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

Ограничения и риски полного удаления префиксов

Рассмотрев вариант с очисткой параметров, важно проанализировать возможные последствия данного шага:

  1. Проблемы при обмене данными. Отсутствие префикса информационной базы критично при использовании распределенных информационных баз (РИБ) или обмене с другими конфигурациями (например, 1С:Бухгалтерия). Это может привести к дублированию номеров и сбоям синхронизации.
  2. Учет по нескольким организациям. При появлении второй компании в базе отсутствие префикса сделает невозможным визуальное разделение нумерации в разрезе юрлиц.
  3. Уже созданные документы. Очистка настроек действует только на вновь создаваемые документы. В ранее записанных и проведенных документах сохранится старый номер с буквами, пока не будет выполнена их перенумерация.

Способ 2. Доработка вывода на печать через расширение конфигурации

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

Выясним причину, почему этот способ предпочтительнее: он позволяет сохранить системный номер 00УБ-000241 внутри базы для правильной работы механизмов платформы, но перехватывает процедуру печати и передает в макет очищенное число 241.

Посмотрим на пример реализации: в расширении переопределяется функция подсистемы префиксации. Для этого используется модуль ПрефиксацияОбъектовКлиентСервер и его функция ПолучитьНомерНаПечать или событие ПриПолученииНомераНаПечать в переопределяемом модуле.

Пример кода обработки номера в расширении:


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

Такой подход обеспечивает гибкость: номера в базе остаются уникальными и корректными с точки зрения платформы, а печатные формы (Счет-фактура, УПД, Накладная) получают вид, полностью удовлетворяющий требованиям бухгалтерии.

← На главную