Номера документов в 1С сбились: как восстановить порядок без вреда для учёта
Содержание
Перенумеровать документы в 1С 8.3 можно тремя способами: поправить номер вручную в форме документа, запустить внешнюю обработку перенумерации или пройтись по документам своим кодом. Кнопки «перенумеровать всё» в типовых конфигурациях на панели разделов нет. Для одного-двух документов хватает ручной правки, для сотни — нужна обработка.
Прежде чем менять номера, ответьте себе на один вопрос: ушёл ли этот номер наружу? Номер счёта-фактуры, попавшего в книгу продаж и декларацию по НДС, или акта, подписанного по ЭДО, задним числом менять нельзя. Внутренние документы и черновики текущего месяца — можно.
Как 1С присваивает номер и откуда берутся разрывы
Номер платформа выдаёт при первой записи документа. Правила хранятся в свойствах объекта конфигурации, на закладке «Нумерация»:
- 🔢 Тип номера — строка или число. В типовых конфигурациях почти всегда строка.
- 📏 Длина номера — в БП 3.0 это 11 символов, например
0000-000045. - 📅 Периодичность — в пределах года, квартала, месяца, дня или без периода. У большинства документов БП 3.0 и ЗУП 3.1 нумерация в пределах года: с 1 января счёт снова идёт с единицы.
- ✅ Контроль уникальности — запрет двух одинаковых номеров в одном периоде.
- ⚙️ Автонумерация — включена ли автоматическая выдача номера.
- 🔗 Нумератор — общий объект, через который несколько видов документов идут одной сквозной серией.
Новый номер — это следующий за последним в серии. Серию определяет префикс и период. Поэтому разрывы возникают не из-за сбоя, а из-за обычной работы:
- 🗑️ документ создали, записали и удалили — его номер выпал из ряда;
- 📋 документ скопировали, записали «на пробу», а потом удалили;
- 🔄 документы пришли обменом из другой базы со своим префиксом;
- ✍️ кто-то вручную вбил номер «с запасом», например
0000-000500, и следующая запись получила 501; - 📆 документ ввели задним числом — номер у него больше, чем у соседей по дате.
Последний случай пугает чаще всего, но ошибкой не является. Номер отражает порядок ввода, а не порядок дат. Закон этого совпадения не требует.
Нужно ли вообще перенумеровывать
Для первичного документа номер — не обязательный реквизит. В перечне реквизитов статьи 9 закона № 402-ФЗ его нет: там наименование, дата, организация, содержание операции, измерители, должности и подписи. Разрыв в нумерации актов или накладных сам по себе нарушением не считается.
Иначе обстоит дело со счетами-фактурами. Порядковый номер прямо назван среди обязательных реквизитов в пункте 5 статьи 169 НК РФ. Пропуск номера ошибкой счёта-фактуры не является, а вот повтор номера в одном году или исправление после отправки покупателю создают риск при проверке.
Подготовка перед перенумерацией документов
Шаги одинаковы для любого способа:
- Сделайте резервную копию: выгрузку
.dtчерез Конфигуратор (Администрирование → Выгрузить информационную базу) или копию каталога файловой базы. Без копии массовую перенумерацию не начинайте — откатить её вручную нельзя. - Договоритесь с пользователями, что на время работы никто не вводит документы этого вида. Иначе новый документ получит номер, который вы собираетесь занять, и запись упадёт на контроле уникальности.
- Отберите документы точно: вид, организация, период. В БП 3.0 у каждой организации своя серия номеров за счёт префикса, смешивать их нельзя.
- Сформируйте и сохраните список «было»: дата, старый номер, контрагент. Он пригодится, если покупатель спросит, куда делся номер.
Монопольный режим для перенумерации не нужен: структура базы не меняется, меняются только данные.
Способ 1. Ручная правка номера в форме документа
Подходит, когда нужно исправить один-три документа: убрать дубль, закрыть «скачок» после ошибочно введённого номера.
- Откройте документ из журнала.
- Поставьте курсор в поле номера в шапке, рядом с датой.
- Введите новый номер в том же формате, что и у соседних документов, с префиксом. Если у соседей
0000-000123, пишите0000-000124, а не124. - Запишите документ. Если номер уже занят в этом году, программа откажет в записи с сообщением о неуникальном номере.
Если вы вписали номер больше текущего последнего, все следующие документы продолжат счёт от него. Ввели по ошибке 0000-000900 — следующий станет 0000-000901. Чтобы вернуть ряд, исправьте этот документ обратно на свободный номер.
Ручная правка не меняет проводки и движения по регистрам. Регистратор в регистрах хранится ссылкой, а не номером, поэтому оборотно-сальдовая ведомость после смены номера останется прежней. Перепроводить документ не требуется.
Чего ручная правка не делает: не обновляет номер, который уже напечатан в связанных бумагах. Если номер накладной вписан в комментарий или в назначение платежа, его придётся поправить там отдельно.
Способ 2. Внешняя обработка «Перенумерация объектов»
В комплекте стандартных обработок с диска ИТС много лет поставляется обработка ПеренумерацияОбъектов.epf. Она выбирает документы одного вида за период и раздаёт им номера подряд, по порядку дат.
Порядок работы с ней:
- Откройте файл через
Файл → Открытьи подтвердите запуск внешней обработки. Пользователю нужны права на открытие внешних обработок. - Выберите вид документа и период.
- Задайте отбор, обычно по организации, и стартовый номер.
- Запустите обработку и сверьте результат с сохранённым списком «было».
Старые редакции этой обработки сделаны на обычных формах. В тонком клиенте с интерфейсом «Такси» они не открываются: нужен запуск в режиме толстого клиента или версия обработки для управляемого приложения.
Есть и другой вариант — универсальная обработка «Групповая обработка справочников и документов» из того же комплекта. Она тоже умеет перенумеровывать отобранные объекты. Логика та же: отбор, порядок, стартовый номер.
Слабое место обеих обработок — префиксы БП 3.0. Обработка, не знающая о префиксе организации и базы, может записать номер без них. Проверьте результат на двух-трёх документах в копии базы, прежде чем запускать на рабочей.
Способ 3. Перенумерация документов кодом
Если обработки под рукой нет или префиксы сложные, номера проще расставить своим кодом. Запускают его из внешней обработки или из консоли кода во внешней обработке, а не из консоли запросов.
Консоль запросов данные только читает. Её задача здесь — найти проблему: дубли и документы, выбивающиеся из порядка.
Поиск дублей номеров запросом
ВЫБРАТЬ
ГОД(Док.Дата) КАК Год,
Док.Организация КАК Организация,
Док.Номер КАК Номер,
КОЛИЧЕСТВО(Док.Ссылка) КАК Штук
ИЗ
Документ.РеализацияТоваровУслуг КАК Док
СГРУППИРОВАТЬ ПО
ГОД(Док.Дата),
Док.Организация,
Док.Номер
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Док.Ссылка) > 1
Подставьте свой вид документа вместо РеализацияТоваровУслуг. Пустой результат значит, что дублей нет.
Перенумерация в два прохода
Главный приём практика: расставлять номера в два прохода. Если сразу присвоить документу номер 5, а номер 5 пока занят соседом, запись упадёт на контроле уникальности. Поэтому сначала всем отобранным документам дают временные номера с особым префиксом, а потом — итоговые.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Док.Ссылка КАК Ссылка,
| Док.Номер КАК Номер
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Док
|ГДЕ
| Док.Дата МЕЖДУ &Начало И &Конец
| И Док.Организация = &Организация
|УПОРЯДОЧИТЬ ПО
| Док.МоментВремени");
Запрос.УстановитьПараметр("Начало", НачалоГода(ДатаПериода));
Запрос.УстановитьПараметр("Конец", КонецГода(ДатаПериода));
Запрос.УстановитьПараметр("Организация", Организация);
Таблица = Запрос.Выполнить().Выгрузить();
// Проход 1: временные номера, чтобы освободить ряд
Сч = 0;
Для Каждого Стр Из Таблица Цикл
Сч = Сч + 1;
Объект = Стр.Ссылка.ПолучитьОбъект();
Объект.Номер = "ВР" + Формат(Сч, "ЧЦ=9; ЧВН=; ЧГ=0");
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
КонецЦикла;
// Проход 2: итоговые номера с прежним префиксом
Сч = 0;
Для Каждого Стр Из Таблица Цикл
Сч = Сч + 1;
Префикс = Лев(Стр.Номер, СтрДлина(Стр.Номер) - 6);
Объект = Стр.Ссылка.ПолучитьОбъект();
Объект.Номер = Префикс + Формат(Сч, "ЧЦ=6; ЧВН=; ЧГ=0");
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
КонецЦикла;
Что здесь происходит:
- 📌 Документы берутся в порядке
МоментВремени— по дате и времени, как они стоят в журнале. - 📌 Старые номера сохранены в таблице до первого прохода, поэтому префикс во втором проходе берётся из исходного номера.
- 📌 Код рассчитан на формат БП 3.0, где числовая часть — последние 6 знаков. В другой конфигурации проверьте длину и поменяйте цифру 6.
- 📌
ОбменДанными.Загрузка = Истинаотключает обработчики записи типовой конфигурации. Документ записывается без перепроведения, движения не трогаются, проведённый документ остаётся проведённым. - 📌
ЧГ=0убирает пробел-разделитель групп разрядов,ЧВН=добавляет ведущие нули.
Режим загрузки пропускает и проверки типовой конфигурации. Код меняет только номер, поэтому здесь это безопасно. Дописывать в тот же цикл изменение других реквизитов не стоит.
Запускайте код сначала на копии базы. Если на втором проходе запись упала, в базе останутся документы с номерами ВР...: не паникуйте, исправьте причину и запустите второй проход ещё раз.
Сравнение способов перенумерации
| Способ | Когда подходит | Риски |
|---|---|---|
| Ручная правка | 1-3 документа, дубль или скачок номера | Ошибка в формате или префиксе, новый «скачок» ряда |
| Внешняя обработка | Десятки документов одного вида за период | Обычные формы в тонком клиенте, потеря префикса |
| Свой код в два прохода | Сложные префиксы, несколько организаций, сотни документов | Ошибка в коде затрагивает всю выборку; нужна копия базы |
Префиксы и нумерация в разных конфигурациях 1С
В БП 3.0, ЗУП 3.1 и УТ 11 номер собирается из частей. Пример для БП 3.0: 0Б00-000045. Слева префикс, справа числовая часть.
| Часть номера | Где задаётся |
|---|---|
| Префикс организации | Карточка организации, поле «Префикс» |
| Префикс информационной базы | Настройки синхронизации данных в разделе Администрирование |
| Числовая часть | Платформа, следующий номер в серии |
Отсюда два вывода.
Первый: если поменять префикс организации, новые документы начнут свою серию с единицы, а старые останутся со старым префиксом. Перенумеровывать старые ради единообразия не нужно, это две разные серии.
Второй: в распределённой базе у каждого узла свой префикс именно для того, чтобы номера не пересекались. Если перенумеровать документы в одной базе, а потом прийти обменом из другой, номера разойдутся. В таких схемах номера правят только в одной базе-источнике и только до обмена.
В ЗУП 3.1 разрывы в номерах кадровых приказов встречаются после удаления черновиков. Номер приказа попадает в трудовую книжку и сведения о трудовой деятельности для СФР (бывший ПФР), поэтому номер отправленного приказа не меняйте.
Как настроить нумерацию, чтобы ряд не рвался
Совсем без разрывов в живой базе не обойтись. Но их можно сделать редкими:
- 🗂️ Не удаляйте документы, которые записали по ошибке, если номер уже передан наружу. Лучше пометьте на удаление и не проводите: номер останется занятым, дубль не появится.
- 🧪 Черновики и «пробные» документы делайте в копии базы, а не в рабочей.
- ✋ Договоритесь, что номер вручную правит один ответственный человек. После каждой правки он сверяет, не появился ли «скачок» ряда.
- 🔁 В распределённой базе следите, чтобы у каждого узла был свой префикс.
Сквозная нумерация через нумератор
Если нужна одна серия для нескольких видов документов, например общая нумерация для актов и накладных, в Конфигураторе создают объект в ветке Общие → Нумераторы и указывают его в свойстве «Нумератор» каждого документа. После этого номер будет общим для всех видов, подключённых к нумератору.
Это доработка конфигурации. В типовой базе на поддержке её придётся учитывать при каждом обновлении. Сначала проверьте, нельзя ли решить задачу префиксом организации или отдельной организацией в справочнике.
Изменение периодичности, длины номера и контроля уникальности делается там же, на закладке «Нумерация» свойств документа, и тоже является доработкой. Отключать контроль уникальности ради того, чтобы «прошла» перенумерация, не нужно: два прохода решают эту задачу без снятия контроля.
Частые вопросы
Можно ли вернуть номер удалённого документа следующему новому?
Меняются ли проводки после смены номера?
Почему у документов за январь номера начались с единицы?
Нарушение ли пропуск номера в счетах-фактурах?
Можно ли перенумеровать документы в 1С без прав администратора?
Источники
- Налоговый кодекс РФ, статья 169 «Счёт-фактура»
- Федеральный закон от 06.12.2011 № 402-ФЗ «О бухгалтерском учёте», статья 9