Как исправить нумерацию документов в 1С 8.3
Как в программе 1С 8.3 поправить нумерацию документов?
Что делать если в 1С 8.3 или 8.2 сбилась нумерация документов? В «1С Бухгалтерии предприятия 3.0» есть штатное средство для данной операции. Это функция «Экспресс-проверка ведения учета».
Но, к сожалению, она делает проверку на правильность нумерации только по кассовым документам (ПКО и РКО) и по счетам-фактурам.
Данная статья рассматривает:
- встроенные средства
- и поэтапно создать простенькую обработку для перенумерации других документов
Перед любыми действиями в базе данных обязательно сделайте резервную копию.
Перенумерация с помощью Экспресс-проверки ведения учета
Данная обработка для перенумерации документов 1С находится в разделе «Отчеты». Далее ищем раздел «Анализ учета» и переходим в «Экспресс – проверка». Появится следующее окно:
Устанавливаем нужный период и нажимаем кнопку «Выполнить проверку».
В случае, если в каком то разделе учета будут обнаружены ошибки, как обычно, это будет подсвечено красным.
В данной конфигурации мы специально создали несколько ошибочных ситуаций, для наглядности:
Как видим, у нас нарушена нумерация документов. И как написано, программа 1С 8.3 предлагает автоматически это исправить. Жмем на выделенную ссылку:
И прекрасно видим, что нумерация действительно нарушена, и программа предлагает у последней счет-фактуры заменить номер четыре на номер три.
Обратите внимание, что есть возможность установить начальный номер для заданного периода. Это означает, что если нам нужно начать с номера 123, то именно так и произойдет. Это актуально, когда перенумерация происходит не с начала года.
Заметим! Перенумерация проведенных документов требует перепроведение этих документов. Поэтому процесс может занять длительное время. Кроме того, при перенумерации учитываются префиксы. Уточните, не менялись ли они.
Нажимаем «Продолжить», и начнется процесс перенумерации.
Для программистов: создание обработки 1С для перенумерации других документов
Для наших опытов выберем документ «Реализация (акты, накладные)».
Создадим новую внешнюю обработку и добавим на форму следующие реквизиты:
- ДатаНачала
- ДатаОкончания
- НачальныйНомер
- Организация
Реквизит «Организация» следует добавлять только в случае, если учет ведется по нескольким организациям в одной информационной базе. В ином случае достаточно добавить реквизит «Префикс». Запрос в этом случае будет немного попроще. Вот что получилось:
И так, создаем команду на клиенте. Так как запросы выполняются на сервере, то в этой команде будет только вызов серверной процедуры, например, «ВыполнитьНаСервере()».
Далее переходим к этой процедуре. Сразу же создадим запрос:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка,
| РеализацияТоваровУслуг.Организация.Префикс
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Организация.Ссылка = &Организация
| И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ЭтаФорма.ДатаНачала));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ЭтаФорма.ДатаОкончания));
Запрос.УстановитьПараметр("Организация", ЭтаФорма.Организация);
РезЗапроса = Запрос.Выполнить();
ВыборкаДетЗаписи = РезЗапроса.Выбрать();
Теперь в цикле пробежимся по результату выборки и перенумеруем документы:
НачНомер = ЭтаФорма.НачальныйНомер;
Пока ВыборкаДетЗаписи.Следующий() Цикл
Префикс = ВыборкаДетЗаписи.ОрганизацияПрефикс;
ДокОбъект = ВыборкаДетЗаписи.Ссылка.ПолучитьОбъект();
ДокОбъект.Номер = Префикс + Прав("000000000000000000" + НачНомер, 11 - СтрДлина(Префикс));
НачНомер = НачНомер + 1;
Попытка
Если ДокОбъект.Проведен Тогда
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
Иначе
ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки
КонецЦикла;
Естественно, это упрощенный пример того, как можно перенумеровать документы. При желании здесь можно добавить выбор других видов документов, а так же организовать перенумерацию кодов справочников.
Вот какая ужасная нумерация была до запуска обработки:
После запуска обработки нумерация выровнялась:
По материалам: programmist1s.ru