В практике автоматизации учета на базе 1С:Предприятие часто возникают задачи, выходящие за рамки стандартной логики программы. Одной из таких «экзотических» просьб со стороны бизнеса является настройка индивидуальной нумерации документов (например, реализаций или счетов-фактур) для каждого конкретного контрагента. Рассмотрим подробно, как это можно реализовать технически, какие подводные камни нас ожидают и почему опытные бухгалтеры и консультанты относятся к этой идее с большой опаской.
Прежде чем переходить к программному коду, проанализируем ситуацию с точки зрения законодательства. В Российской Федерации порядок нумерации счетов-фактур строго регламентирован ст. 169 НК РФ и Постановлением Правительства №1137. Согласно этим нормам, счета-фактуры должны иметь порядковые номера в хронологическом порядке.
Разберем основные опасения:
Проанализируем вывод: если ваша организация работает с НДС, создание дублирующих номеров недопустимо. Решением может стать использование уникальных префиксов для каждого контрагента, чтобы номера оставались уникальными в масштабах всей базы данных.
В современных версиях 1С (начиная с платформы 8.3) лучшим способом изменения стандартной логики является использование расширений. Это позволяет не снимать основную конфигурацию с поддержки и сохраняет возможность легкого обновления программы.
Для реализации раздельной нумерации нам потребуется выполнить следующие шаги:
Контрагенты.Контрагенты новый реквизит, например, ПрефиксДляДокументов (тип: Строка, длина 3).ДокументОбъект.РеализацияТоваровУслуг).ПриУстановкеНовогоНомера.Рассмотрим пример программного кода, который будет выполняться при создании нового документа:
Процедура Расш1_ПриУстановкеНовогоНомера(Источник, СтандартнаяОбработка, Префикс) Экспорт
// Проверяем, заполнен ли контрагент в документе
Если ЗначениеЗаполнено(Источник.Контрагент) Тогда
// Получаем префикс, заданный в карточке контрагента
ПрефиксКонтрагента = Источник.Контрагент.ПрефиксДляДокументов;
Если ЗначениеЗаполнено(ПрефиксКонтрагента) Тогда
// Добавляем префикс контрагента к стандартному префиксу организации
Префикс = Префикс + ПрефиксКонтрагента;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Разберем, как это работает. Когда 1С генерирует новый номер, она анализирует текущий префикс. Если мы передаем в процедуру префикс "РОМ", система ищет последний номер в базе, начинающийся на "РОМ", и увеличивает его числовую часть на единицу. Таким образом, для каждого контрагента с уникальным префиксом будет поддерживаться своя независимая числовая последовательность.
Выясним важный технический нюанс: стандартная длина номера в 1С:Бухгалтерия 3.0 составляет 11 символов. Посмотрим на структуру типичного номера:
Итого, под системные нужды уже занято 5 символов. Если мы добавим еще 3 символа под префикс контрагента, на порядковый номер останется всего 3 цифры (максимум до 999). Если количество документов по одному контрагенту в год превысит эту цифру, нумерация «переполнится» и начнет выдавать ошибки.
Варианты решения: 1. Увеличить длину номера в конфигурации (требует внесения изменений в структуру БД, что не рекомендуется). 2. Использовать очень короткие префиксы (1-2 символа). 3. Тщательно следить за тем, чтобы суммарная длина префиксов не «съедала» место для цифр.
Рассмотрим более безопасный и «мягкий» вариант, который не нарушает логику налогового учета и не требует сложного программирования. Если заказчику отдельная нумерация нужна только для того, чтобы контрагент видел «красивые» номера в печатных формах, мы можем оставить системный номер 1С нетронутым (сквозным), а для внутреннего учета использовать доп. сведения.
Дополнительных сведений.ЭтотОбъект.Номер на значение из доп. сведения.Таким образом, в базе 1С сохраняется правильная хронология (№1, №2, №3...), что радует налоговую и бухгалтера, а в печатной форме УПД, которую получает клиент, будет стоять его индивидуальный номер (например, №6 для «Ромашки»). Это решение исключает проблемы с выгрузкой в 1С-Отчетность и синхронизацией с другими базами.
Проанализировав ситуацию, мы видим, что технически реализовать задуманное несложно, но последствия могут быть серьезными. Посмотрим на итоговый алгоритм действий:
Помните, что любые изменения в механизме нумерации должны быть зафиксированы в Учетной политике организации, чтобы у налоговых инспекторов было меньше вопросов при проверке.