Администрирование · 10 мин
Где в 1С хранится нумерация документов
Где в 1С хранится нумерация документов: механизм нумераторов, периодичность, префиксы, сброс номеров, исправление ошибок нумерации в типовых конфигурациях.
Нумерация документов в 1С — это не отдельный файл или таблица, которую можно открыть и поправить напрямую, а механизм платформы, который автоматически присваивает номер при записи документа. Номер хранится в стандартном реквизите «Номер» каждого объекта типа «Документ», а логика формирования следующего номера определяется настройками нумератора в конфигураторе и кодом конфигурации.
Понимание того, где именно «живёт» нумерация, важно в трёх практических ситуациях: когда нужно изменить текущий номер (например, после переноса данных), когда сбилась нумерация и появились дубли, и когда бухгалтер требует начать отсчёт с конкретного числа. Ниже разобраны механизм хранения номеров, способы их просмотра и корректировки, а также типичные ошибки, которые приводят к конфликтам нумерации.
Как платформа 1С хранит и формирует номера документов
У каждого документа в 1С есть стандартные реквизиты, создаваемые платформой автоматически: «Номер», «Дата», «Проведён», «ПометкаУдаления» и другие. Номер физически записывается в таблицу документа в базе данных вместе с остальными данными объекта. Отдельной «таблицы нумерации» в пользовательском смысле нет — платформа при записи нового документа ищет максимальный номер среди существующих документов того же вида с учётом периодичности и префикса, увеличивает его на единицу и присваивает новому объекту.
Тип номера бывает числовым или строковым. В типовых конфигурациях чаще используется строковый номер фиксированной длины (например, 11 символов), потому что в него входят префикс базы, префикс организации и собственно порядковое число с ведущими нулями: «00БП-000123». Числовая часть при этом выделяется из строки программно — обычно в подписке на событие «ПриУстановкеНовогоНомера», которая и реализует логику типовой конфигурации.
Где посмотреть настройки нумерации в конфигураторе
Основные параметры нумерации находятся в конфигураторе: раздел «Документы» → свойства конкретного вида документа → вкладка «Нумерация». Там задаются три ключевых параметра: вид номера (число или строка), длина номера и периодичность. Периодичность определяет, в каких границах номера должны быть уникальными и когда происходит «сброс» отсчёта: «Непериодический», «В пределах дня», «В пределах месяца», «В пределах квартала», «В пределах года».
Если несколько видов документов должны иметь сквозную нумерацию (классический пример — «Счёт на оплату» и «Реализация товаров и услуг» в некоторых конфигурациях), для них создаётся общий нумератор в ветке «Нумераторы» дерева конфигурации, и в свойствах документа указывается ссылка на него. Тогда платформа вычисляет максимальный номер сразу по всем связанным видам.
Автонумерация — ещё один флажок на этой же вкладке. Если она включена, платформа сама присваивает номер при записи. В типовых конфигурациях автонумерация платформы нередко дополняется или заменяется кодом в подписках на события, поэтому реальная логика может отличаться от «платформенной по умолчанию» — например, учитывать префикс организации или информационной базы.
Где хранится текущий номер и как его изменить в пользовательском режиме
Текущий номер конкретного документа виден прямо в его форме — в поле «Номер». В большинстве типовых конфигураций это поле доступно для редактирования: достаточно вписать нужное значение и записать документ. Следующий созданный документ получит номер, вычисленный от нового максимума, если введённое значение стало самым большим в своей серии (с учётом префикса и периода).
Типовая ситуация: после перехода на новую базу нумерация счетов-фактур должна продолжиться, например, с номера 1540. Решение — создать первый документ, вручную поставить ему номер 1539 (или сразу 1540, если он ещё не использовался) и записать. Дальнейшие документы платформа будет нумеровать последовательно от этой точки. Важно соблюдать формат: если в конфигурации номер строковый с ведущими нулями и префиксом, вводить значение нужно в том же формате, иначе сортировка и вычисление следующего номера могут работать некорректно.
- 1Откройте журнал нужного вида документов и отсортируйте по номеру, чтобы увидеть текущий максимум
- 2Создайте новый документ и заполните обязательные реквизиты
- 3В поле «Номер» вручную введите значение, с которого должна начаться нумерация, сохраняя формат префикса и ведущих нулей
- 4Запишите документ
- 5Создайте следующий документ и проверьте, что ему присвоен ожидаемый номер
Почему нумерация сбивается: типичные причины
Наиболее частая причина сбоя — ручное редактирование номеров без понимания механизма. Если пользователь ввёл номер в неправильном формате (без префикса, с другим количеством цифр), платформа при вычислении следующего номера может интерпретировать строку неожиданным образом и выдать дубль или «скачок». Вторая причина — обмен данными между базами: документы приходят с чужими номерами, и при неверно настроенных префиксах узлов возникают пересечения.
Третья группа причин — удаление документов. Если удалён документ с максимальным номером, следующий созданный документ может получить тот же номер повторно, что при уже напечатанных или отправленных контрагенту бумагах создаёт путаницу. Наконец, смена периода (начало нового года при годовой периодичности) автоматически начинает отсчёт заново — это норма, но пользователи иногда воспринимают как ошибку.
Как исправить сбитую нумерацию и дубли номеров
Порядок действий зависит от масштаба проблемы. Если дубль один-два, достаточно найти документы с одинаковыми номерами (отбор по номеру в журнале или универсальный отчёт), определить, какой из них должен сохранить номер, и присвоить второму свободный номер вручную. После этого создайте тестовый документ и убедитесь, что нумерация продолжается корректно.
При массовых проблемах — например, после некорректной загрузки из другой программы — ручное исправление нецелесообразно. Используются обработки перенумерации: они проходят по документам за период в порядке дат и присваивают последовательные номера с заданного начального значения. В типовых конфигурациях подобные механизмы иногда встроены (например, сервисные обработки в разделе администрирования), для самописных решений перенумерацию выполняют программно.
Программный доступ к номеру: где это видно разработчику
Для разработчика номер доступен как свойство объекта: ДокументОбъект.Номер. Присвоение нового номера происходит в момент записи, но логику можно переопределить в событии «ПриУстановкеНовогоНомера» модуля объекта или в подписке на это событие. Именно там типовые конфигурации добавляют префиксы организации и информационной базы. Если нужно узнать текущий максимальный номер, выполняется запрос с функцией МАКСИМУМ по полю «Номер» с отбором по периоду и, при необходимости, по префиксу.
Пример установки номера вручную из кода: создать объект документа, присвоить свойству «Номер» нужное строковое значение и вызвать метод «Записать». Платформа не будет переопределять номер, если он уже заполнен и уникален. Этот приём используют при загрузке данных, когда нужно сохранить исходные номера документов из другой системы.
НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НовыйДок.Дата = ТекущаяДатаСеанса();
НовыйДок.Номер = "00БП-001540";
НовыйДок.Записать();Как проверить, что нумерация работает правильно
После любых действий с номерами выполните контрольную проверку. Откройте журнал документов, отсортируйте по номеру и убедитесь, что последовательность непрерывна в пределах периода и нет дублей. Создайте два-три новых документа подряд: номера должны увеличиваться на единицу и соответствовать ожидаемому формату с префиксом. Если используется обмен данными, проверьте, что документы, созданные в разных базах, не пересекаются по номерам.
Как проверить результат
Номера идут последовательно, без пропусков и дублей в текущем периоде
Одинаковые номера у разных документов или хаотичный порядок
Присвоен номер на единицу больше максимального, формат с префиксом сохранён
Номер начинается с единицы или дублирует существующий
Номера документов из разных баз имеют разные префиксы
Пересечения номеров после синхронизации
Часто задаваемые вопросы
Можно ли начать нумерацию с произвольного номера в середине года?
Да. Создайте документ и вручную присвойте ему нужный номер, соблюдая формат (префикс, ведущие нули). Следующие документы продолжат отсчёт от этого значения. Учтите, что номера должны быть уникальны в пределах периода нумерации.
Почему в новом году нумерация началась с единицы?
Это штатное поведение при периодичности нумератора «В пределах года» — она установлена для большинства документов в типовых конфигурациях. Если требуется сквозная нумерация, периодичность меняют на «Непериодический» в конфигураторе, но для документов вроде счетов-фактур годовая периодичность соответствует принятой практике.
Что делать, если номер документа недоступен для редактирования?
Поле может быть закрыто правами пользователя, настройками формы или блокировкой после формирования печатных форм. Проверьте роль пользователя и статус документа. В ряде конфигураций редактирование номера доступно через «Ещё» → «Изменить» или требует прав администратора.
Удалятся ли номера удалённых документов из отсчёта?
Платформа вычисляет следующий номер по максимуму среди существующих документов. Если удалён документ с максимальным номером, этот номер может быть выдан повторно. Удалённый в корзину (помеченный на удаление) документ обычно всё ещё учитывается, пока пометка не снята физическим удалением.
Как настроить разные префиксы для разных организаций?
В типовых конфигурациях префикс организации задаётся в карточке организации (поле «Префикс») и автоматически подставляется в номера её документов. Если такого механизма нет, префиксацию реализуют программно в событии «ПриУстановкеНовогоНомера».
Что важно запомнить
Номер документа хранится в стандартном реквизите объекта, а правила отсчёта задаются нумератором в конфигураторе: периодичность, длина, тип. Следующий номер платформа вычисляет как максимум плюс один. Изменить точку отсчёта можно вручную через поле «Номер» с соблюдением формата. Массовую перенумерацию выполняйте только на копии базы и никогда — для закрытых отчётных периодов.