Вопрос настройки нумерации счетов-фактур «под себя» является одним из самых популярных запросов со стороны бухгалтерии. Часто пользователи хотят видеть в номере дату, код менеджера или специфический префикс, чтобы визуально контролировать хронологию и иметь возможность вставлять документы «задним числом» без нарушения последовательности. В этой статье мы подробно разберем, какие штатные возможности существуют в 1С, как реализовать нестандартную логику программно и к каким последствиям это может привести.
Прежде чем приступать к доработкам, проанализируем ситуацию с точки зрения законодательства. Бытует мнение, что нарушение хронологии или пропуски в номерах счетов-фактур — это прямой путь к налоговым проверкам и отказу в вычете НДС. Однако, согласно статье 169 НК РФ, ошибки в счетах-фактурах, которые не мешают налоговым органам идентифицировать продавца, покупателя, наименование товара, стоимость и сумму налога, не являются основанием для отказа в вычете.
Рассмотрим ключевые моменты:
Таким образом, в 99% случаев желание переделать нумерацию — это внутренняя потребность бухгалтера для удобства контроля, а не требование закона.
Выясним, что мы можем изменить в номере документа, не прибегая к конфигуратору или расширениям. В типовых решениях (БП 3.0, УТ 11, ERP), построенных на базе Библиотеки стандартных подсистем (БСП), номер формируется из нескольких частей:
/ после основного номера.Если этих инструментов недостаточно (например, требуется маска вида YYMMDD_NNN), штатные средства 1С бессильны. Рассмотрим, как решить эту задачу с помощью расширения конфигурации.
Для того чтобы внедрить свой алгоритм формирования номера, нам необходимо перехватить событие ПриУстановкеНовогоНомера. Это наиболее «чистый» способ, который позволяет не снимать основную конфигурацию с поддержки.
Разберем алгоритм действий по шагам:
СчетФактураВыданный (или РеализацияТоваровУслуг, если требуется менять нумерацию первичных документов).ПриУстановкеНовогоНомера.&После или &Вместо, чтобы определить свою маску.Пример кода для реализации маски ГГММДД_ПорядковыйНомер:
&После("ПриУстановкеНовогоНомера")
Процедура Расш1_ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
// Формируем дату для маски
ТекДата = ТекущаяДата();
СтрокаДаты = Формат(ТекДата, "ДФ=ггММдд");
// Устанавливаем новый префикс, включающий дату
Префикс = СтрокаДаты + "_";
// Внимание: стандартный механизм 1С сам добавит порядковый номер
// после префикса, если в метаданных настроена автонумерация.
КонецПроцедуры
Проанализируем этот код: мы подменяем стандартный префикс строкой, содержащей текущую дату. 1С увидит новый префикс и начнет поиск максимального номера именно для этой комбинации символов в пределах текущего дня. Это автоматически решит проблему «сквозной» нумерации: каждый новый день нумерация фактически будет начинаться с 001 внутри нового префикса-даты.
Посмотрим на ситуацию со стороны системного администратора и разработчика. Изменение структуры номера несет в себе несколько серьезных рисков:
1. Длина номера:
Стандартная длина номера в счете-фактуре обычно составляет 12 символов. Маска YYMMDD_NNN занимает 10 символов. Если добавить префикс организации (2 знака) и префикс базы (2 знака), мы выйдем за пределы допустимой длины. Документы просто перестанут записываться. Важно: если вы решили менять маску, убедитесь, что суммарная длина всех префиксов и номера не превышает длину поля Номер в метаданных.
2. Сортировка документов:
В списках 1С номера сортируются как текстовые строки. Если ваша маска не учитывает лидирующие нули или меняет длину, документы в журналах могут отображаться в хаотичном порядке. Использование формата ГГММДД (год-месяц-день) частично решает эту проблему, так как обеспечивает правильную строковую сортировку.
3. Работа в РИБ (Распределенных информационных базах):
Если вы используете обмен данными, кастомная нумерация может привести к конфликтам. Префикс информационной базы зашит в логику БСП не просто так — он гарантирует, что два пользователя в разных офисах не создадут документы с одинаковыми номерами. Пренебрежение этим механизмом приведет к тому, что при синхронизации один документ «затрет» другой.
4. Обновления конфигурации:
Хотя расширения минимизируют риски, значительные изменения в логике НумерацияОбъектов со стороны фирмы 1С могут привести к тому, что ваш обработчик перестанет корректно определять следующий номер. После каждого крупного обновления системы необходимо проверять работоспособность кастомной нумерации.
Если задача бухгалтерии состоит лишь в том, чтобы «навести порядок» в конце месяца, мы рекомендуем использовать штатную обработку «Перенумерация документов». Рассмотрим, как это работает в 1С:Бухгалтерия 3.0:
Важное предостережение: никогда не делайте перенумерацию, если счета-фактуры уже были распечатаны и переданы контрагентам или отправлены через ЭДО. Это создаст расхождения между вашей базой и базой покупателя, что гарантированно приведет к требованию пояснений от ФНС при встречной проверке.
Мы выяснили, что настройка нумерации «по маске» в типовых конфигурациях 1С не предусмотрена штатно. Наилучшим техническим решением является использование расширения конфигурации с перехватом события установки нового номера. Однако, прежде чем внедрять такое решение, проанализируйте реальную необходимость этих изменений. Зачастую правильное использование префиксов организаций и обучение бухгалтеров работе со стандартной нумерацией обходится дешевле и работает стабильнее, чем любые программные «костыли».