Капитально об программе 1С 8.0-8.3-8.4, 7.7

Сбросить счётчик нумерации документов или справочников в 1С

Иногда вследствие ручной правки номера документа или кода справочника или после обменов с распределенными информационными базами в 1С нарушается автонумерация.

Вы можете написать код перенумерации или воспользоваться какой-либо обработкой, но иногда, даже после этого номер генерируется опять не верный.

Система «кэширует» последний выделенный номер. 

Для того, чтобы обнулить этот кэш существует функция ОбновитьНумерациюОбъектов.

Использование ОбновитьНумерациюОбъектов

ОбновитьНумерациюОбъектов(Метаданные.Документы.ПоступлениеТоваровУслуг);//Один вид документа

МассивМета = Новый Массив;

МассивМета.Добавить(Метаданные.Документы.ПоступлениеТоваровУслуг);

МассивМета.Добавить(Метаданные.Документы.РеализацияТоваровУслуг);

ОбновитьНумерациюОбъектов(МассивМета);//Несколько видов

ОбновитьНумерациюОбъектов();//Все объекты системы, не рекомендуется такой вызов

Еще одной причиной неверной нумерации может быть подписки события ПриУстановкеНовогоНомера, если в них заложен какой-то альтернативный алгоритм установки номера, например: добавление префикса узла, организации, склада.

Как проверить ?

Код перенумерации одного вида документа

НачатьС = 1;
Префикс ="10-";
ПолнаяДлинаНомера = 8;
НачПериода = Дата(2016,10,1);
КонПериода = Дата(2016,10,31);

ТекНомер = НачатьС;
ДлинаНомера = ПолнаяДлинаНомера -СтрДлина(Префикс);
Док = Документы.ПоступлениеТоваровУслуг.Выбрать(НачПериода,КонецДня(КонПериода));
Счетчик = 0;
Пока Док.Следующий() Цикл
Объект = Док.ПолучитьОбъект();
НомерНовый = префикс+Прав("000000000000"+формат(ТекНомер,"ЧГ="),ДлинаНомера);
Если не Лев(Объект.Номер,ПолнаяДлинаНомера) = НомерНовый Тогда
Объект.Номер = НомерНовый;

Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
Счетчик = Счетчик+1;
КонецЕсли;
ТекНомер = ТекНомер+1;

КонецЦикла;
Сообщить("Выполнено замен "+Счетчик);