Как удалить префиксы и нули из номеров счетов-фактур в книге продаж БП 3.0?

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

При формировании книги продаж в «1С:Бухгалтерия предприятия 3.0» бухгалтеры часто сталкиваются с ситуацией, когда номер счета-фактуры выводится с полным префиксом и лидирующими нулями (например, НВ000002419 вместо лаконичного 2419). На печатную форму документа при этом выводится корректный номер без префиксов, а в отчете книги продаж остаётся нетиповой номер. Проанализируем, почему возникает эта проблема и как ее правильно устранить.

Выясним причину поведения системы

Рассмотрим алгоритмы Библиотеки стандартных подсистем (БСП). Типовая функция НомерНаПечать из модуля префиксации рассчитывает на стандартный формат номера 1С, в котором префикс организации или информационной базы отделяется разделителем — дефисом (например, НВ-000002419).

Разберем типовую функцию вывода номера:


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

Если документы загружаются из внешних самописных систем или систем оперативного учета без соблюдения стандарта нумерации 1С (без дефиса), стандартные механизмы отбрасывания префиксов не определяют границы символов. В результате при проведении документа СчетФактураВыданный в регистр сведений Журнал учета счетов-фактур (полю НомерСчетаФактуры) попадает исходная строка целиком. Именно из этого регистра книга продаж берет данные для формирования отчета.

Способ 1. Модификация движений регистра при проведении

Разберем вариант решения проблемы непосредственно при проведении документа СчетФактураВыданный. Посмотрим на пример кода, который переопределяет значение номера в наборе движений перед их записью в базу данных:


НаборДвижений = Движения.ЖурналУчетаСчетовФактур;
Для Каждого Движение Из НаборДвижений Цикл
    Движение.НомерСчетаФактуры = ПроизвольныйАлгоритмЗаменыНомера(Движение.НомерСчетаФактуры);
КонецЦикла;    
НаборДвижений.Записывать = Истина;

В этой схеме функция ПроизвольныйАлгоритмЗаменыНомера очищает полученный номер от буквенных символов и удаляет лидирующие нули с помощью регулярных выражений или функций работы со строками СтрНайти и Сред.

Способ 2. Корректировка формата номеров на этапе обмена

Рассмотрим более безопасный подход, который не требует изменения логики проведения документов в 1С. Для этого скорректируем правила загрузки данных (КД или EnterpriseData) одним из следующих способов:

  1. Добавление разделителя префикса: При загрузке трансформируем номер вида НВ000002419 в формат НВ-000002419. В этом случае типовая функция префиксации БП 3.0 сможет корректно выделить префикс НВ- и автоматически очистит его как при печати, так и при записи в движения регистров НДС.
  2. Очистка номера до записи в ИБ: Если уникальность документов внутри организации гарантируется, можно отсекать буквенные префиксы еще на стороне системы-источника, передавая в 1С:Бухгалтерию чистый числовой номер.

Способ 3. Переопределение алгоритма через расширение

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

Сформулируем основные преимущества использования расширений:

  1. Конфигурация остаётся на типовой поддержке, что упрощает обновление «1С:Бухгалтерии».
  2. Логика преобразования номеров изолирована в отдельном объекте.

Важные нюансы и возможные риски

Проанализируем сопутствующие требования при изменении нумерации счетов-фактур:

Сверка данных ЭДО и Декларации по НДС: Обратите внимание на совпадение номеров с контрагентами. Если покупателю уходит электронный документ с номером НВ000002419, а в вашей книге продаж зарегистрирован номер 2419, налоговые органы при автоматической проверке деклараций по НДС (АСК НДС) могут выявить расхождение. Убедитесь, что формат номера в выгружаемых файлах XML совпадает с номером в книге продаж.

← На главную