При ведении учета по нескольким организациям в одной информационной базе 1С часто возникает ситуация, когда для новой организации задают префикс, а у старой он остается пустым. После этого платформа при создании новых документов для первой организации начинает автоматически подставлять префикс второй организации. Разберем, почему так происходит и какими способами можно настроить независимую нумерацию документов для каждой организации.
Проанализируем алгоритм работы автонумератора платформы «1С:Предприятие». Механизм генерации номеров ищет максимальный номер среди существующих документов данного вида за текущий период.
Если у одной из организаций префикс не установлен (является пустым), платформа пытается определить текущий диапазон номеров. В этом случае система находит наивысший по алфавиту префикс среди уже созданных документов (например, префикс «НВ»), берет последний номер с этим префиксом и увеличивает его на единицу. В результате новый документ организации с пустым префиксом получает номер из последовательности организации с префиксом.
Рассмотрим стандартный и наиболее надежный подход к разделению нумерации. Для того чтобы платформенная автонумерация работала корректно и без сбоев, необходимо назначить уникальный префикс каждой организации в базе.
Организации и откроем карточку первой (старой) организации.ОС или О1).НВ).ОС000000001).После сохранения первого документа платформа запомнит новый префикс и продолжит автонумерацию по первой организации независимо от второй.
Примечание: Если вас беспокоит отображение префикса в печатных формах для контрагентов, стоит учесть, что типовые алгоритмы печати 1С автоматически отсекают префиксы организаций и ведущие нули, поэтому в печатных актах и накладных номер будет выводиться в привычном виде.
Посмотрим на альтернативный вариант, когда буквенные символы использовать не хочется. В карточке старой организации можно указать цифровой префикс, например, 00.
При сохранении карточки организации система может выдать предупреждающее сообщение: «Не рекомендуется в префиксах использовать цифры. Это может привести к ошибочной нумерации объектов или к ошибкам при обмене данными».
Разберем, насколько критично это предупреждение:
00 четко разделит пространства номеров: у старой организации номера будут начинаться с 00, а у новой — с буквенного префикса (например, РА).Если требования учета категорически запрещают менять префикс у существующей организации в базе, нумерацию переопределяют программно. Для этого в конфигураторе используют подписку на событие или обработчик ПриУстановкеНовогоНомера для нужного документа.
Проанализируем пример кода, определяющего логику формирования номера при отсутствии префикса:
Процедура ПриУстановкеНовогоНомераДокумента(Источник, СтандартнаяОбработка, Префикс)
Если Источник.Организация.Префикс = "" Тогда
// Формируем собственный префикс или переопределяем стандартную логику
Префикс = "00";
Иначе
Префикс = Источник.Организация.Префикс;
КонецЕсли;
КонецПроцедуры
Применение любого из описанных методов позволяет полностью решить проблему перекрытия номеров и обеспечить независимый учет документов по каждой организации.