При переходе с редакции 2.0 на 3.0 многие пользователи и программисты сталкиваются с тем, что привычные механизмы ручной или нестандартной нумерации счетов-фактур перестают работать. Попытки установить номер через дробь (например, 1/1) или добавить буквенные индексы часто приводят к тому, что система игнорирует ввод и при создании следующего документа сбрасывает счетчик на 000000001. Разберем детально, почему это происходит, какие законодательные нормы необходимо учитывать и как технически решить эту задачу без внесения изменений в основную конфигурацию.
Проанализируем техническую сторону вопроса. В платформе 1С:Предприятие 8.3 и типовой конфигурации «Бухгалтерия предприятия 3.0» реализован строгий механизм префиксации. Стандартный номер документа состоит из нескольких частей:
-.Когда мы пытаемся вставить в номер символ дроби /, алгоритм автоматического инкремента (поиска следующего номера) в общем модуле ПрефиксацияОбъектов не может корректно выделить числовую часть. Система воспринимает такой номер как «битый» или некорректный и начинает нумерацию заново с единицы. В версии 2.0 механизмы работы со строковыми номерами были более лояльными к спецсимволам, в 3.0 же используется жесткая логика парсинга префиксов.
Выясним, насколько безопасна такая нумерация с точки зрения налогового учета. Согласно Постановлению Правительства РФ №1137, использование разделительного знака «/» строго регламентировано. Рассмотрим основные случаи:
Если организация не имеет обособленных подразделений и не является участником товарищества, использование дроби может вызвать лишние вопросы у ИФНС при проверке. Однако, согласно ст. 169 НК РФ, ошибки в нумерации не являются критичными, если они не мешают идентифицировать продавца, покупателя и сумму налога. Тем не менее, для стабильной работы системы рекомендуется придерживаться штатных префиксов.
Чтобы «заставить» систему поддерживать нужный нам формат (например, yyyyMMdd-### или номера с буквами), проанализируем способ реализации через расширение. Это позволит нам не снимать конфигурацию с поддержки и сохранит возможность автоматического обновления.
Рассмотрим алгоритм действий для программиста:
СчетФактураВыданный.ПриУстановкеНовогоНомера. Это можно сделать через аннотацию &Вместо или &Перед для процедуры в модуле объекта.Посмотрим на пример кода, который формирует номер в формате ГГГГММДД + порядковый номер за день:
&НаСервере
Процедура Расш_ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
// Отключаем стандартную генерацию номера
СтандартнаяОбработка = Ложь;
ДатаДок = ЭтотОбъект.Дата;
ПрефиксДаты = Формат(ДатаДок, "ДФ=yyyyMMdd");
// Поиск последнего номера за текущий день в базе
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| СчетФактураВыданный.Номер КАК Номер
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Дата МЕЖДУ &НачалоДня И &КонецДня
|УПОРЯДОЧИТЬ ПО
| СчетФактураВыданный.Номер УБЫВ";
Запрос.УстановитьПараметр("НачалоДня", НачалоДня(ДатаДок));
Запрос.УстановитьПараметр("КонецДня", КонецДня(ДатаДок));
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
ПоследнийНомер = Выборка.Номер;
// Извлекаем числовую часть и увеличиваем на 1
// Предполагаем формат yyyyMMdd-001
ЧисловаяЧасть = Число(Прав(ПоследнийНомер, 3));
НовыйПорядковыйНомер = ЧисловаяЧасть + 1;
Иначе
НовыйПорядковыйНомер = 1;
КонецЕсли;
ЭтотОбъект.Номер = ПрефиксДаты + "-" + Формат(НовыйПорядковыйНомер, "ЧГ=0; ЧЦ=3; ЧВН=");
КонецПроцедуры
Проанализируем ситуацию: если ваша цель — разделение нумерации по разным клиентам или типам деятельности, не обязательно использовать дробь. Разберем по шагам, как настроить систему штатными средствами:
ПР-000000001, ТД-000000001. Это корректно воспринимается всеми алгоритмами 1С и налоговыми органами.Если же требуется префикс для авансовых счетов-фактур (например, индекс «А»), воспользуйтесь настройками учетной политики:
Рассмотрим важный нюанс, упомянутый в ходе обсуждения специалистами. При использовании формата ГГГГММДД-Номер (дата в номере) часто возникают логические ловушки:
20210113, перестает соответствовать действительности.Для исправления сбившейся нумерации без кодинга можно воспользоваться стандартной обработкой «Групповое изменение реквизитов» (раздел Администрирование — Обслуживание — Корректировка данных). С ее помощью можно массово перенумеровать документы за период, восстановив правильную последовательность и префиксы.
Мы выяснили, что «победить» нумерацию в 1С:БП 3.0 можно двумя основными путями: либо через расширение конфигурации с переопределением процедуры ПриУстановкеНовогоНомера, либо через грамотную настройку штатных префиксов организаций. Рекомендуем второй путь как наиболее стабильный и соответствующий методологии 1С. Использование спецсимволов вроде дробей допустимо только в случаях, прямо предусмотренных законодательством (ОП, доверительное управление), во всех остальных случаях лучше придерживаться стандартного формата XX00-0000001.