Администрирование · 10 мин
Как в 1С упорядочить номера документов по дате
Как в 1С упорядочить номера документов по дате: штатная перенумерация, настройка нумерации, обработки, проверка результата и типичные ошибки при смене номеров.
Нарушение последовательности номеров документов — типичная ситуация в 1С: документы создают задним числом, удаляют лишние, обмениваются данными между базами, и в итоге счёт-фактура с датой 10 марта получает номер 000125, а документ от 25 марта — 000118. Для внутренних первичных документов это неудобно, а для счетов-фактур и кассовых документов нарушение хронологии номеров вызывает вопросы при проверках.
Упорядочить номера по дате можно несколькими способами: штатной обработкой перенумерации, универсальной обработкой «Групповое изменение реквизитов», настройкой стратегии нумерации или программным кодом. Выбор зависит от конфигурации, объёма документов и того, есть ли у вас права администратора и доступ к конфигуратору.
Перед любыми действиями сделайте резервную копию информационной базы. Перенумерация меняет номера в большом количестве объектов, и откатить её можно только восстановлением из копии.
Почему номера документов расходятся с датами
1С присваивает номер документу в момент записи, а не по дате документа. Если пользователь создаёт документ задним числом, он получает очередной свободный номер, который оказывается «впереди» более поздних по дате документов. Удаление документов оставляет «дыры» в нумерации, а обмен данными между базами может приводить к конфликтам и переприсвоению номеров.
Ещё одна причина — ручное редактирование номеров. Пользователи иногда исправляют номер вручную, чтобы «подогнать» его под бумажный документ, и это ломает автоматическую последовательность. После нескольких таких правок хронология разрушается окончательно.
Важно понимать: для большинства внутренних документов порядок номеров не регламентирован. Но для счетов-фактур требование о хронологической нумерации закреплено в правилах ведения журнала учёта счетов-фактур, а для кассовых документов — в порядке ведения кассовых операций. Поэтому перенумерацию чаще всего выполняют именно для этих видов документов, обычно перед закрытием периода.
Подготовка: что сделать до перенумерации
Первый и обязательный шаг — резервная копия. В файловой базе достаточно скопировать файл 1Cv8.1CD или выгрузить базу через конфигуратор (Администрирование → Выгрузить информационную базу). В клиент-серверном варианте используйте штатные средства СУБД или выгрузку в dt.
Второй шаг — определите границы периода. Перенумеровывать всю историю базы обычно нет смысла и рискованно: документы прошлых лет могли быть распечатаны, подписаны и переданы контрагентам или в налоговую. Менять номера у документов, по которым уже выписаны бумажные версии, нельзя — возникнет расхождение между электронной и бумажной учётностью. Оптимально перенумеровывать только текущий открытый период.
Третий шаг — убедитесь, что в базе никто не работает или хотя бы не создаёт документы перенумеруемого вида. Если во время перенумерации пользователь запишет новый документ, он получит номер из старой последовательности, и порядок снова нарушится.
- 1Сделайте резервную копию базы и проверьте, что она восстанавливается
- 2Определите вид документов и период для перенумерации
- 3Проверьте, нет ли распечатанных или переданных документов в этом периоде
- 4Запустите перенумерацию штатной или универсальной обработкой
- 5Проверьте результат по контрольным точкам
- 6Сообщите пользователям о новых номерах, если документы уже были им известны
Способ 1. Штатная обработка перенумерации
В типовых конфигурациях (1С:Бухгалтерия 8, Управление торговлей, ERP) предусмотрены механизмы автоматической перенумерации. Например, в 1С:Бухгалтерии счета-фактуры перенумеровываются автоматически с начала года — программа сама следит за хронологией при проведении. Если автоматика отключена или нужна принудительная перенумерация, её можно запустить из настроек учётной политики или обработок в разделе «Администрирование».
В некоторых конфигурациях есть отдельная обработка «Перенумерация документов» (может находиться в разделах «Администрирование — Обслуживание» или «Операции»). В ней указывается вид документа, период и начальный номер, после чего обработка проходит по документам в порядке дат и присваивает номера заново.
Если штатной обработки в вашей конфигурации нет, переходите к универсальным средствам — они описаны ниже.
Способ 2. Универсальная обработка «Групповое изменение реквизитов»
Обработка «Групповое изменение реквизитов» (в типовых конфигурациях на БСП: Администрирование → Обслуживание → Корректировка данных) позволяет массово менять реквизиты, включая номер. Она подходит, когда нужно исправить номера у небольшой группы документов вручную.
Порядок работы: выберите вид документа, задайте отбор по периоду, в списке реквизитов найдите «Номер» и задайте алгоритм изменения. Встроенный режим «Выполнить произвольный алгоритм» позволяет написать код, который присваивает номера последовательно. Для этого требуются права администратора и базовое понимание встроенного языка 1С.
Для простых случаев — например, перенумеровать десяток кассовых ордеров за месяц — проще открыть журнал документов, отсортировать по дате и исправить номера вручную. Это долго, но прозрачно и безопасно: вы видите каждый изменённый документ.
Способ 3. Внешние обработки и программный код
Для больших объёмов удобнее специализированные внешние обработки перенумерации — их можно найти на профильных ресурсах для специалистов 1С. Типовая логика такой обработки: запрос выбирает документы за период с сортировкой по дате и времени, затем в цикле каждому присваивается очередной номер.
Пример простого кода перенумерации для выполнения через консоль кода или внешнюю обработку:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка
|ИЗ Документ.ПриходныйКассовыйОрдер
|ГДЕ Дата МЕЖДУ &Начало И &Конец
|УПОРЯДОЧИТЬ ПО Дата";
Запрос.УстановитьПараметр("Начало", НачалоГода(ТекущаяДата()));
Запрос.УстановитьПараметр("Конец", ТекущаяДата());
Номер = 1;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.Номер = Формат(Номер, "ЧЦ=5; ЧВН=");
Объект.Записать();
Номер = Номер + 1;
КонецЦикла;Учтите ограничения: код вида документа в примере нужно заменить на свой, формат номера — привести к принятому в вашей конфигурации (длина, префиксы). Если в нумерации используются префиксы организации или базы, их нужно сохранять при присвоении. Запускайте код в монопольном режиме или при отсутствии активных пользователей.
Настройка нумерации, чтобы проблема не повторялась
Разовая перенумерация устраняет следствие, но не причину. Чтобы номера не расходились с датами в будущем, проверьте настройки нумерации в конфигураторе: у документа должен быть включён автонумерация, корректная длина номера и периодичность (в пределах года, квартала или непрерывная). Для счетов-фактур периодичность обычно годовая — нумерация начинается заново с 1 января.
Минимизируйте ручное редактирование номеров: снимите у обычных пользователей право «Интерактивное изменение номеров», если оно не нужно по регламенту. Договоритесь с пользователями о порядке работы с документами задним числом — именно они чаще всего ломают хронологию.
Как проверить результат
После перенумерации откройте журнал документов, отсортируйте по дате и визуально проверьте монотонность номеров: у более позднего документа номер должен быть больше. Проверьте начало и конец списка — чаще всего ошибки концентрируются на границах периода.
Дополнительно сверьте количество документов до и после перенумерации — оно не должно измениться. Если обработка «потеряла» часть документов (например, из-за отбора по организации), номера в оставшейся части окажутся с пропусками.
Как проверить результат
Номера возрастают вместе с датами, пропусков нет
Номер уменьшается при росте даты или есть большие разрывы
Совпадает с количеством до перенумерации
Документов стало меньше — часть не попала в обработку
Префиксы организации/базы сохранены
Префиксы обнулены или заменены
Соответствует заданному начальному значению
Нумерация началась не с того номера
Часто задаваемые вопросы
Можно ли перенумеровать документы прошлого года?
Технически можно, но делать этого не следует, если по документам сдана отчётность или они распечатаны и переданы контрагентам. Изменение номера счёта-фактуры прошлого периода приведёт к расхождению с данными покупателя и налоговой. Перенумеровывайте только открытый текущий период.
Почему после перенумерации появились дубли номеров?
Чаще всего причина в том, что во время обработки пользователь создал новый документ или часть документов не попала в отбор обработки (другая организация, другой период). Повторите перенумерацию с корректным отбором в монопольном режиме.
Нужно ли перенумеровывать все виды документов?
Нет. Строгая хронология критична для счетов-фактур и кассовых документов. Для внутренних документов (перемещения, списания, установка цен) порядок номеров не регламентирован, и перенумерация нужна только для удобства поиска.
Что делать, если в базе работает обмен данными с другой базой?
Перенумерация документов, участвующих в синхронизации, может вызвать конфликты и дубли при следующем обмене. Согласуйте перенумерацию с администратором интеграции, выполняйте её одновременно в обеих базах или сразу после сеанса обмена, затем проверьте результат сопоставления.
Можно ли настроить автоматическую перенумерацию без обработок?
В типовых конфигурациях для счетов-фактур есть штатный механизм автоматической перенумерации с начала года — программа сама поддерживает хронологию при записи. Для остальных видов документов автоматики нет, и порядок поддерживается дисциплиной ввода: минимум документов задним числом и запрет ручного изменения номеров.
Что важно запомнить
Номера в 1С присваиваются в момент записи, поэтому документы задним числом ломают хронологию. Упорядочить номера по дате можно штатной обработкой, «Групповым изменением реквизитов» или программным кодом. Работайте только с открытым периодом, обязательно делайте резервную копию и проверяйте результат по журналу документов.