При внедрении системы или переходе на сквозную нумерацию с середины года часто возникает задача продолжить нумерацию входящих, исходящих или внутренних документов с определенного значения — например, начать отсчет сразу с номера 257. Однако попытка просто вручную вбить нужный номер в карточке очередного документа не приводит к желаемому результату: следующий созданный документ вновь регистрируется под номером 1 или продолжает старую последовательность.
Проанализируем ситуацию, выясним внутреннее устройство механизма нумерации в конфигурации 1С:Документооборот и разберем по шагам, как правильно задать начальный номер для любого вида документов.
В отличие от многих типовых учетных конфигураций платформы 1С:Предприятие, где используется стандартный автоинкремент строковых номеров объектов, в 1С:Документооборот реализован гибкий программный механизм нумерации. Он управляется через справочник Нумераторы и независимый регистр сведений Нумерация.
Когда пользователь вручную меняет номер в карточке документа, программа изменяет лишь строковое представление номера в конкретном объекте. Значение счетчика в служебном регистре при этом не перезаписывается. При следующей автоматической регистрации система снова обращается к регистру сведений Нумерация, берет зафиксированное там последнее числовое значение, прибавляет к нему единицу и присваивает результат новому документу. Именно поэтому для изменения начального номера необходимо корректировать данные непосредственно в регистре нумерации.
Рассмотрим порядок действий для установки нужного начального номера без использования конфигуратора:
Нумерация, относящиеся к данному нумератору).Обратите особое внимание на логику работы регистра сведений. В ресурсе регистра хранится именно последний использованный номер, а не следующий. Алгоритм программы при регистрации документа выполняет операцию инкремента: СледующийНомер = ПоследнийНомер + 1.
Если требуется, чтобы первый зарегистрированный системой документ получил номер 257, в регистре в поле Последний номер необходимо указать 256. Если вы запишете туда число 257, система прибавит единицу и первый созданный документ получит номер 258.
Разберем дополнительные нюансы, которые необходимо учитывать при настройке:
Нумерация для каждой комбинации аналитик ведется отдельная строка. Корректировать числовое значение необходимо строго для той строки, комбинация разрезов которой соответствует вашим документам.[Номер(4)]), то при значении счетчика 257 итоговый номер будет автоматически дополнен лидирующими нулями до вида 0257 с учетом всех заданных индексов и префиксов.Если требуется выполнить массовую инициализацию счетчиков (например, при первоначальном переносе данных или смене правил сразу для десятков видов документов), эту задачу можно решить программно. Посмотрим на пример кода внешней обработки, выполняющей запись в регистр сведений Нумерация:
МенеджерЗаписи = РегистрыСведений.Нумерация.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Нумератор = СсылкаНаНумератор;
МенеджерЗаписи.Период = НачалоГода(ТекущаяДата());
// При наличии разрезов заполняем соответствующие измерения:
// МенеджерЗаписи.Организация = ВыбраннаяОрганизация;
// МенеджерЗаписи.ВидДокумента = ВыбранныйВидДокумента;
МенеджерЗаписи.Прочитать();
// Устанавливаем N - 1, чтобы следующим был номер 257
МенеджерЗаписи.ТекущийНомер = 256;
МенеджерЗаписи.Записать(Истина);
Прямой доступ к редактированию записей регистра сведений Нумерация и просмотру формы Все номера ограничен правами доступа. Для успешного выполнения настройки пользователю должны быть назначены роли Администратор или Ответственный за НСИ.