Проблема: префиксы в номерах счетов-фактур пропадают при печати
В типовых конфигурациях «1С:Бухгалтерия 3.0» заложен алгоритм, который автоматически «чистит» номер документа перед выводом на печать или в отчётность. Система стремится убрать из номера лишние символы — префиксы организаций, баз и ведущие нули, чтобы номер выглядел кратко и единообразно.
Однако на практике бухгалтерам часто нужно, чтобы префиксы сохранялись. Это помогает визуально различать документы разных организаций или подразделений, особенно когда речь идёт о книге продаж и налоговой отчётности по НДС. Рассмотрим несколько способов решения, от простых штатных настроек до вмешательства в программный код.
Способ 1. Настройка регистра «Префиксы информационных баз»
Это самый корректный и безопасный метод, не требующий навыков программирования.
Пошаговая инструкция:
1. Включите отображение команды «Все функции» (в новых версиях платформы она может называться «Функции для технического специалиста»).
2. Откройте регистр сведений «ПрефиксыИнформационныхБаз».
3. Добавьте запись для нужного префикса (например, «БП» или код конкретной организации).
4. Установите флажок «Печатать префикс».
5. После сохранения изменений необходимо перепровести счета-фактуры, чтобы обновились данные в регистрах печати.
Важный нюанс: если запись в регистре уже была, но префикс всё равно не печатается, попробуйте удалить её и создать заново. Начиная с версии 3.0.57.10 этот механизм работает стабильно и принудительно добавляет префикс в печатные формы.
Способ 2. Цифровые коды для обособленных подразделений
Если нужно разделять нумерацию по филиалам, можно использовать штатный механизм цифровых кодов. Согласно постановлению Правительства №1137, обособленные подразделения должны указывать код через дробь.
В карточке организации (раздел «Главное» → «Организации») для филиалов предусмотрено поле «Цифровой код». Если его заполнить, «1С» будет автоматически добавлять этот код к номеру счета-фактуры через косую черту, например: № 123/1.
Главное преимущество: такой идентификатор система не воспринимает как «префикс», поэтому алгоритмы очистки его не трогают, и он гарантированно попадает во все печатные формы, книгу продаж и декларацию по НДС.
Способ 3. Правка регистра «Данные первичных документов»
Иногда изменение номера напрямую в документе не даёт результата. Дело в том, что в новых релизах БП 3.0 данные для печати берутся не из реквизита «Номер», а из специального регистра сведений «ДанныеПервичныхДокументов».
Если нужно точечно исправить номер для конкретного документа:
1. Откройте регистр «Данные первичных документов» через функции технического специалиста.
2. Найдите запись, соответствующую вашему документу.
3. Отредактируйте поле «Номер документа», вписав его вместе с префиксом в том виде, в котором он должен выводиться на печать.
Ограничение: при повторном проведении документа система может снова перезаписать это значение. Поэтому способ подходит только для разовых правок за прошлые периоды.
Способ 4. Программное решение через расширение конфигурации
Для специалистов, умеющих работать с кодом, самый надёжный вариант — перехватить функцию, отвечающую за формирование номера при печати.
Основная логика сосредоточена в общем модуле «ПрефиксацияОбъектовКлиентСервер», в функции НомерНаПечать. Чтобы префиксы не удалялись, нужно создать расширение, которое подменит стандартную логику и установит параметры:
• УдалитьПрефиксИнформационнойБазы = Ложь
• УдалитьПользовательскийПрефикс = Ложь
Пример кода для расширения (с аннотацией & ИзменениеИКонтроль):
&ИзменениеИКонтроль("НомерНаПечать")
Функция БП_НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс)
// {Обработчик: ПриПолученииНомераНаПечать} Начало
СтандартнаяОбработка = Истина;
#Вставка
УдалитьПрефиксИнформационнойБазы = ЛОЖЬ;
УдалитьПользовательскийПрефикс = ЛОЖЬ;
#КонецВставки
ПрефиксацияОбъектовКлиентСерверПереопределяемый.ПриПолученииНомераНаПечать(НомерОбъекта, СтандартнаяОбработка,
УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс);
Если СтандартнаяОбработка = Ложь Тогда
Возврат НомерОбъекта;
КонецЕсли;
// {Обработчик: ПриПолученииНомераНаПечать} Окончание
НомерОбъекта = СокрЛП(НомерОбъекта);
// Удаляем пользовательские префиксы из номера объекта.
Если УдалитьПользовательскийПрефикс Тогда
НомерОбъекта = УдалитьПользовательскиеПрефиксыИзНомераОбъекта(НомерОбъекта);
КонецЕсли;
#Удаление
// Удаляем лидирующие нули из номера объекта.
НомерОбъекта = УдалитьЛидирующиеНулиИзНомераОбъекта(НомерОбъекта);
// Удаляем префикс организации и префикс информационной базы из номера объекта.
НомерОбъекта = УдалитьПрефиксыИзНомераОбъекта(НомерОбъекта, Истина, УдалитьПрефиксИнформационнойБазы);
#КонецУдаления
Возврат НомерОбъекта;
КонецФункции
Почему «1С» скрывает префиксы и стоит ли их возвращать?
Прежде чем вносить изменения, важно понять позицию разработчиков. ФНС использует систему АСК НДС-2 для автоматической сверки счетов-фактур между продавцом и покупателем.
Система обычно игнорирует ведущие нули (считая «00001» и «1» одним номером), но буквенные префиксы делают номер уникальным.
**Главный риск:** если вы (продавец) оставите префикс «БП-101», а ваш покупатель при вводе документа его отсечёт и укажет просто «101», при автоматической сверке возникнет расхождение. Налоговая может запросить пояснения у обеих сторон.
Именно поэтому разработчики «1С» по умолчанию стараются приводить номера к единообразному цифровому виду.
**Рекомендация:** если вы всё же решили оставить префиксы, обязательно убедитесь, что ваши контрагенты вносят их в свои учётные системы полностью, символ в символ. Иначе автоматическая проверка деклараций по НДС будет регулярно требовать ручного подтверждения.
В типовых конфигурациях «1С:Бухгалтерия 3.0» заложен алгоритм, который автоматически «чистит» номер документа перед выводом на печать или в отчётность. Система стремится убрать из номера лишние символы — префиксы организаций, баз и ведущие нули, чтобы номер выглядел кратко и единообразно.
Однако на практике бухгалтерам часто нужно, чтобы префиксы сохранялись. Это помогает визуально различать документы разных организаций или подразделений, особенно когда речь идёт о книге продаж и налоговой отчётности по НДС. Рассмотрим несколько способов решения, от простых штатных настроек до вмешательства в программный код.
Способ 1. Настройка регистра «Префиксы информационных баз»
Это самый корректный и безопасный метод, не требующий навыков программирования.
Пошаговая инструкция:
1. Включите отображение команды «Все функции» (в новых версиях платформы она может называться «Функции для технического специалиста»).
2. Откройте регистр сведений «ПрефиксыИнформационныхБаз».
3. Добавьте запись для нужного префикса (например, «БП» или код конкретной организации).
4. Установите флажок «Печатать префикс».
5. После сохранения изменений необходимо перепровести счета-фактуры, чтобы обновились данные в регистрах печати.
Важный нюанс: если запись в регистре уже была, но префикс всё равно не печатается, попробуйте удалить её и создать заново. Начиная с версии 3.0.57.10 этот механизм работает стабильно и принудительно добавляет префикс в печатные формы.
Способ 2. Цифровые коды для обособленных подразделений
Если нужно разделять нумерацию по филиалам, можно использовать штатный механизм цифровых кодов. Согласно постановлению Правительства №1137, обособленные подразделения должны указывать код через дробь.
В карточке организации (раздел «Главное» → «Организации») для филиалов предусмотрено поле «Цифровой код». Если его заполнить, «1С» будет автоматически добавлять этот код к номеру счета-фактуры через косую черту, например: № 123/1.
Главное преимущество: такой идентификатор система не воспринимает как «префикс», поэтому алгоритмы очистки его не трогают, и он гарантированно попадает во все печатные формы, книгу продаж и декларацию по НДС.
Способ 3. Правка регистра «Данные первичных документов»
Иногда изменение номера напрямую в документе не даёт результата. Дело в том, что в новых релизах БП 3.0 данные для печати берутся не из реквизита «Номер», а из специального регистра сведений «ДанныеПервичныхДокументов».
Если нужно точечно исправить номер для конкретного документа:
1. Откройте регистр «Данные первичных документов» через функции технического специалиста.
2. Найдите запись, соответствующую вашему документу.
3. Отредактируйте поле «Номер документа», вписав его вместе с префиксом в том виде, в котором он должен выводиться на печать.
Ограничение: при повторном проведении документа система может снова перезаписать это значение. Поэтому способ подходит только для разовых правок за прошлые периоды.
Способ 4. Программное решение через расширение конфигурации
Для специалистов, умеющих работать с кодом, самый надёжный вариант — перехватить функцию, отвечающую за формирование номера при печати.
Основная логика сосредоточена в общем модуле «ПрефиксацияОбъектовКлиентСервер», в функции НомерНаПечать. Чтобы префиксы не удалялись, нужно создать расширение, которое подменит стандартную логику и установит параметры:
• УдалитьПрефиксИнформационнойБазы = Ложь
• УдалитьПользовательскийПрефикс = Ложь
Пример кода для расширения (с аннотацией & ИзменениеИКонтроль):
&ИзменениеИКонтроль("НомерНаПечать")
Функция БП_НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс)
// {Обработчик: ПриПолученииНомераНаПечать} Начало
СтандартнаяОбработка = Истина;
#Вставка
УдалитьПрефиксИнформационнойБазы = ЛОЖЬ;
УдалитьПользовательскийПрефикс = ЛОЖЬ;
#КонецВставки
ПрефиксацияОбъектовКлиентСерверПереопределяемый.ПриПолученииНомераНаПечать(НомерОбъекта, СтандартнаяОбработка,
УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс);
Если СтандартнаяОбработка = Ложь Тогда
Возврат НомерОбъекта;
КонецЕсли;
// {Обработчик: ПриПолученииНомераНаПечать} Окончание
НомерОбъекта = СокрЛП(НомерОбъекта);
// Удаляем пользовательские префиксы из номера объекта.
Если УдалитьПользовательскийПрефикс Тогда
НомерОбъекта = УдалитьПользовательскиеПрефиксыИзНомераОбъекта(НомерОбъекта);
КонецЕсли;
#Удаление
// Удаляем лидирующие нули из номера объекта.
НомерОбъекта = УдалитьЛидирующиеНулиИзНомераОбъекта(НомерОбъекта);
// Удаляем префикс организации и префикс информационной базы из номера объекта.
НомерОбъекта = УдалитьПрефиксыИзНомераОбъекта(НомерОбъекта, Истина, УдалитьПрефиксИнформационнойБазы);
#КонецУдаления
Возврат НомерОбъекта;
КонецФункции
Почему «1С» скрывает префиксы и стоит ли их возвращать?
Прежде чем вносить изменения, важно понять позицию разработчиков. ФНС использует систему АСК НДС-2 для автоматической сверки счетов-фактур между продавцом и покупателем.
Система обычно игнорирует ведущие нули (считая «00001» и «1» одним номером), но буквенные префиксы делают номер уникальным.
**Главный риск:** если вы (продавец) оставите префикс «БП-101», а ваш покупатель при вводе документа его отсечёт и укажет просто «101», при автоматической сверке возникнет расхождение. Налоговая может запросить пояснения у обеих сторон.
Именно поэтому разработчики «1С» по умолчанию стараются приводить номера к единообразному цифровому виду.
**Рекомендация:** если вы всё же решили оставить префиксы, обязательно убедитесь, что ваши контрагенты вносят их в свои учётные системы полностью, символ в символ. Иначе автоматическая проверка деклараций по НДС будет регулярно требовать ручного подтверждения.
