В типовых конфигурациях 1С («Бухгалтерия предприятия» 2.0 и 3.0) при формировании печатных форм, отчетов и выгрузке данных в регламентированную отчетность происходит автоматическое удаление лидирующих нулей и служебных префиксов организаций. Это сделано для того, чтобы на бумажных бланках номер выглядел лаконично. Однако на практике возникает необходимость сохранять префиксы в номерах документов — например, при наличии нескольких подразделений с обособленной нумерацией или для предотвращения дублирования номеров при сверке с контрагентами и налоговой службой (АСК НДС).
Рассмотрим ситуацию, когда требуется включить отображение префиксов не для всей базы за весь период учетной системы, а строго с определенной даты. Проанализируем причину такого поведения программы и разберем по шагам, как доработать стандартный механизм префиксации.
Разберем, почему штатные настройки программы не позволяют решить эту задачу без корректировки кода и чем грозит несовпадение номеров в учете и отчетности:
Журнал учета счетов-фактур или НДС Продажи, реквизиты ПредставлениеНомера), поэтому изменение исключительно бланка печати не решит проблему с налоговой отчетностью.Посмотрим на алгоритм формирования номера на печать в типовой конфигурации. В модулях менеджеров документов и общих модулях префиксации вызывается специализированная функция:
НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер, Истина, Ложь);
Данная функция принимает исходный номер документа (например, "БП-000000123") и параметры, управляющие удалением префикса и лидирующих нулей. При стандартных флагах на выходе получается строка "123".
Чтобы отменить обрезку префиксов с определенной даты, внесем изменения в логику обработки номера. Разберем по шагам порядок действий для решения этой задачи.
ПрефиксацияОбъектовКлиентСервер.НомерНаПечать или место вызова формирования печатных форм и печатных представлений в модулях документов.01.01.2024).Рассмотрим пример кода, реализующий такую логику в функции получения номера на печать:
ДатаНачалаВыводаПрефикса = Дата("20240101000000");
Если ДатаДокумента >= ДатаНачалаВыводаПрефикса Тогда
// Не удаляем префикс организации, оставляем полный номер
УдалитьПрефикс = Ложь;
Иначе
// Для прошлых периодов сохраняем стандартное поведение
УдалитьПрефикс = Истина;
КонецЕсли;
НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ИсходныйНомер, УдалитьПрефикс, Ложь);
Для конфигурации 1С:Бухгалтерия 3.0 ту же логику рекомендуем реализовать через расширение конфигурации, перехватив вызов метода ПрефиксацияОбъектовКлиентСервер.НомерНаПечать с помощью аннотации &Вместо или &После, чтобы сохранить информационную базу на типовой поддержке.
После реализации изменений в коде и перепроведения документов префиксы будут корректно попадать как в печатные формы, так и в реквизиты регистров учета НДС для успешной сдачи налоговой отчетности.