КАК ВОССТАНОВИТЬ НУМЕРАЦИЮ В 1С

Очень часто перед бухгалтерами возникает вполне логичный вопрос как восстановить нумерацию документов в 1С 8.2 , после того, как были внесены ручные исправления. В данном материале мы постараемся детально и доходчиво объяснить все необходимые действия.

Во всех продуктах 1С 8.2 документы, которые созданы в базе имеют четкую нумерацию. Не следует думать, что номера должны состоять исключительно из цифр. На самом деле, в программе для нумерации нередко используются и буквы. Ка бывает чаще всего, они стоят вначале и означают префикс некоторой организации. В большинстве случаев каждому конкретному документу система сама в автоматическом режиме присваивает уникальный номер после того, как он был создан. Но есть один нюанс: программа не разрешает самостоятельно редактировать номера. Цель такого запрета очень проста: система защищает номера для того, чтобы обезопасить последовательность нумерации от нарушения.

Но все же, часто возникает необходимость поменять какой-либо номер. Примером может стать налоговая накладная. При ее заполнении часто приходится сталкиваться с необходимостью корректировки номера. Бывают такие ситуации, когда у людей после использования ручной нумерации сбиваются все номера. Очень неприятное явление, но в его исправлении нет ничего сложного. Работники просто не учитывают того, что после подобного действия, убираются лидирующие нули, и, как следствие, автоматическая нумерация документов сбивается. Как же быть в таком случае? В любом случае, рекомендуется применять автоматическую перенумерацию, которая описана в следующем абзаце. Никаких проблем с ее использованием не должно возникнуть, так как пошаговая инструкция дополняется скриншотами для большей ясности описываемых действий.

Итак, как восстановить нумерацию документов в 1С 8.2 автоматически . В том, чтобы произвести это иногда очень необходимое действие нет ничего сложного. Для чего может понадобиться перенумерация документов Для восстановления нумерации документов существует обработка «Обработка объектов и универсальный подбор» , которая находится на диске ИТС. Для этого нужно зайти в меню командой Файл, далее нажать на пиктограмму Открыть. Далее необходимо зайти на диск ИТС по такому пути: (E):\1CIts\EXE\EXTREPS\UNIREPS82\UniversalSelection. Примечание: буква диска может отличаться от указанной, исходя из настроек компьютера пользователя. Далее должна открыться обработка. Нам нужно выбрать необходимый вид документа в реквизите Объект. Посмотрите Первый рисунок.

Рис. 1

После этого найти закладку отбор по значению реквизита. Используя кнопку «Добавить» нужно сформировать критерии для отбора. В конкретном примере – номер документа не равняется пустому значению.

Рис. 2

После нажатия кнопки «Найти объекты» мы должны получить список, состоящих из нужных документов. После этого, нужно перейти к закладке «Обработки» . Тут, нужно выбрать пункт «Перенумерация объектов» , находящийся в таблице слева. В окне, которое открылось, нужно задать начальный номер, предположим 1. После этого уже можно нажимать на пиктограмму «Выполнить» . В завершении, мы должны получить требуемый результат.

Рис. 3

Вот мы и дали ответ на частый вопрос «как восстановить нумерацию документов в 1С 8.2». Нет ничего сложного в этой операции.

Как в программе 1С 8.3 поправить нумерацию документов?

Что делать если в 1С 8.3 или 8.2 сбилась нумерация документов? В «1С Бухгалтерии предприятия 3.0» есть штатное средство для данной операции. Это функция «Экспресс-проверка ведения учета».

Но, к сожалению, она делает проверку на правильность нумерации только по кассовым документам (ПКО и РКО) и по счетам-фактурам.

Данная статья рассматривает:

  • встроенные средства
  • и поэтапно создать простенькую обработку для перенумерации других документов

Перед любыми действиями в базе данных обязательно сделайте резервную копию.

Перенумерация с помощью Экспресс-проверки ведения учета

Данная обработка для перенумерации документов 1С находится в разделе «Отчеты». Далее ищем раздел «Анализ учета» и переходим в «Экспресс – проверка». Появится следующее окно:

Устанавливаем нужный период и нажимаем кнопку «Выполнить проверку».

В случае, если в каком то разделе учета будут обнаружены ошибки, как обычно, это будет подсвечено красным.

В данной конфигурации мы специально создали несколько ошибочных ситуаций, для наглядности:

Как видим, у нас нарушена нумерация документов. И как написано, программа 1С 8.3 предлагает автоматически это исправить. Жмем на выделенную ссылку:

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

Обратите внимание, что есть возможность установить начальный номер для заданного периода. Это означает, что если нам нужно начать с номера 123, то именно так и произойдет. Это актуально, когда перенумерация происходит не с начала года.

Заметим! Перенумерация проведенных документов требует перепроведение этих документов. Поэтому процесс может занять длительное время. Кроме того, при перенумерации учитываются префиксы. Уточните, не менялись ли они.

Нажимаем «Продолжить», и начнется процесс перенумерации.

Для программистов: создание обработки 1С для перенумерации других документов

Для наших опытов выберем документ «Реализация (акты, накладные)».

Создадим новую внешнюю обработку и добавим на форму следующие реквизиты:

  • ДатаНачала
  • ДатаОкончания
  • НачальныйНомер
  • Организация

Реквизит «Организация» следует добавлять только в случае, если учет ведется по нескольким организациям в одной информационной базе. В ином случае достаточно добавить реквизит «Префикс». Запрос в этом случае будет немного попроще. Вот что получилось:

И так, создаем команду на клиенте. Так как запросы выполняются на сервере, то в этой команде будет только вызов серверной процедуры, например, «ВыполнитьНаСервере()».

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка,
| РеализацияТоваровУслуг.Организация.Префикс
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Организация.Ссылка = &Организация
| И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";

Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ЭтаФорма.ДатаНачала));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ЭтаФорма.ДатаОкончания));
Запрос.УстановитьПараметр("Организация", ЭтаФорма.Организация);
РезЗапроса = Запрос.Выполнить();
ВыборкаДетЗаписи = РезЗапроса.Выбрать();

Теперь в цикле пробежимся по результату выборки и перенумеруем документы:

НачНомер = ЭтаФорма.НачальныйНомер;

Пока ВыборкаДетЗаписи.Следующий() Цикл

Префикс = ВыборкаДетЗаписи.ОрганизацияПрефикс;
ДокОбъект = ВыборкаДетЗаписи.Ссылка.ПолучитьОбъект();

ДокОбъект.Номер = Префикс + Прав("000000000000000000" + НачНомер, 11 - СтрДлина(Префикс));

НачНомер = НачНомер + 1;
Попытка

Если ДокОбъект.Проведен Тогда

ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);

Иначе

ДокОбъект.Записать(РежимЗаписиДокумента.Запись);

КонецЕсли;

Исключение

Сообщить(ОписаниеОшибки());

КонецПопытки

КонецЦикла;

Естественно, это упрощенный пример того, как можно перенумеровать документы. При желании здесь можно добавить выбор других видов документов, а так же организовать перенумерацию кодов справочников.

Вот какая ужасная нумерация была до запуска обработки:

После запуска обработки нумерация выровнялась:

По материалам: programmist1s.ru

Для решения этой проблемы в есть функция Экспресс-проверка ведения учета .

Она проверит и исправит нумерацию Приходных и Расходных кассовых ордеров, а также счетов-фактур .

Обработка для исправления нумерации находится в разделе Отчеты . Далее переходим в подраздел Анализ учета - Экспресс-проверка




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




Как видим, у нас есть ошибки в нумерации счетов-фактур. Программа рекомендует восстановить номера документов в хронологическом порядке. Нажимаем на гиперссылку Автоматическая перенумерация документов.




Программа предлагает нам исправить 4 счета-фактуры. Для проведения изменений нажимаем Продолжить.


ВАЖНО! Есть возможность установить начальный номер документа для выбранного периода. Это значит, что если нам нужно начать нумерацию с 347 номера вместо 0001, это будет возможным. Это удобно, если исправление нумерации происходит не в начале года




Готово! Как видим, программа исправила порядковые номера в 4 документах.

Для исправления нумерации других документов, например, Поступлений товаров и услуг или Реализаций товаров и услуг, необходимо писать специальную обработку. Вы всегда можете обратиться за помощью к

Как-то на работе возникла проблема с нумерацией документов. Пользователь ввёл номер нового документа вручную, причём вместо "000000675" указал "00_000675". После этого все последующие документы стали нумероваться с префиксом "00_". При этом ни банальное пересохранение объекта с номером "правильного" формата, ни пометка на удаление, ни удаление его из базы не помогли исправить ситуацию. Пришлось разбираться с механизмом автонумерации 1С.

Прежде всего я, естественно, обратился к ресурсам ИТС (благо фирма предоставляет такую возможность). Максимум, что я смог найти по своей тематике, - это две статьи Автонумерация и автонумерации . Данные в них, мягко говоря, не свежие и где-то даже противоречащие реальности (например, там утверждается, что для восстановления нумерации достаточно удалить объекты), но общие представления о механизме дают. Из них стало понятно, что одним из решений вставшей проблемы является установка настройки конфигурации "Режим автонумерации объектов" в значение "Освобождать автоматически". Но, во-первых, это неприменимо в случае использования типовой конфигурации "на поддержке", а, во-вторых, противоречит продвигаемому 1С "новому" режиму нумерации. Поэтому я продолжил рыть дальше.

Как выяснилось, типовых механизмов работы с автонумерацией , как-то обработки, отчёты и прочее, нет. Но, слава Нуралиеву, нам предоставили методы встроенного языка: ОбновитьНумерациюОбъектов , УстановитьНовыйКод и УстановитьНовыйНомер .

ОбновитьНумерациюОбъектов , согласно СП, "выполняет обновление номеров в соответствии с номерами, записанными в базе данных. После вызова данного метода все выданные, но не записанные номера, становятся невалидными, т.к. не гарантируется их уникальность." Соотнеся это описание со статьями по этой тематике и тестовыми данными, становится понятно, что в базе хранится таблица выданных номеров, которые независимо от того, существуют объекты, для которых они были записаны в таблицу или нет, повторно быть выданы уже не могут, если не осуществить "сброс". Как раз процедура ОбновитьНумерациюОбъектов и применяется для "выправления" нумерации объектов. Главное, перед запуском не забудьте удалить из базы объекты с "неправильными" номерами. Это может быть как реальное удаление, так и перезапись их с предварительным присвоением "правильных" номеров.

В принципе, умения использовать вышеуказанную процедуру достаточно, чтобы, в случае необходимости, выправить нумерацию, но хочется упомянуть ещё о "максимальном номере". Под "максимальным номером" я подразумеваю номер, исходя из значения которого система выдаёт следующее значение. Как пример его знание необходимо, чтобы определить, выправлена ли нумерация или нет.

В 1С нет возможности напрямую получить текущий максимальный номер объекта метаданных. Решить эту проблему можно двумя способами:

  • использовать запрос;
  • получить следующий номер, используя методы УстановитьНовыйКод или УстановитьНовыйНомер .

При формировании запроса система считывает данные базы данных. Можно отсортировать объекты по коду/номеру по убыванию, т.о. верхним в списке окажется обладатель максимального номера. Тут существуют следующие "загвоздки":

  • результат не будет содержать данные о занятых номерах, а только о записанных ;
  • сортировка не всегда выводит наверх "максимальные" с точки зрения системы номера (например, объект с номером "0_01" в результате запроса будет расположен ниже номера "0001", но при вводе нового объекта ему будет присвоен номер с префиксом "0_" ).

УстановитьНовыйКод и УстановитьНовыйНомер устанавливают код или номер соответственно и заносят это значение в таблицу номеров. При этом неважно, будет ли записан объект или нет, "максисальный номер" всё равно будет обновлён на выданный. Таким образом, если использовать эти методы для проверки, то после этого необходимо обновить нумерацию объектов .

К публикации прикреплена обработка обновления нумерации. В ней:

  • кнопка "Обновить" запускает выполнение метода Обновить нумерацию объектов;
  • список объектов содержит результат динамически формируемого запроса;
  • на результат запроса накладывается отбор согласно свойствам объектов метаданных: по владельцу, родителю или периоду;
  • поле "номер содержит" накладывает отбор на данные кода или номера;
  • флаг в колонке "Макс." указывает на то, какой номер на момент обновления будет считаться максимальным, все вышерасположенные объекты получат номер согласно указанному максимальному;
  • при установке флага "Макс." во всех вышерасположенных строках автоматически рассчитывается новый номер, но запись происходит только после нажатия кнопки "Обновить";
  • добавление объектов в список недоступно, но возможно ручное перераспределение строк, т.о. для выправления нумерации необходимо переместить объекты с номерами, требующими коррекции в позицию над строкой с установленным флагом "Макс.".

Буду рад комментариям и замечаниям.

Что делать, если в 1С 8.3 или 8.2 сбилась нумерация документов? В « » есть штатное средство для данной операции. Это функция «Экспресс-проверка ведения учета».

Но, к сожалению, она делает проверку на правильность нумерации только по кассовым документам () и по

В этой статье я хочу:

  • рассмотреть встроенные средства;
  • поэтапно создать простенькую обработку для перенумерации других документов.

Перед любыми действиями в базе данных обязательно сделайте резервную копию.

Перенумерация с помощью Экспресс-проверки ведения учета

Данная обработка для перенумерации документов 1С находится в разделе «Отчеты». Далее ищем раздел «Анализ учета» и переходим в « «. Появится следующее окно:

Устанавливаем нужный период и нажимаем кнопку «Выполнить проверку».

В случае, если в каком-то разделе учета будут обнаружены ошибки, это будет подсвечено красным.

В своей тестовой конфигурации я специально создал несколько ошибочных ситуаций для наглядности:

Как видим, у нас нарушена нумерация документов. И как написано, программа 1С 8.3 предлагает автоматически это исправить. Жмем на выделенную ссылку:

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

Обратите внимание, что есть возможность установить начальный номер для заданного периода. Это означает, что если нам нужно начать с номера 123, то именно так и произойдет. Это актуально, когда перенумерация происходит не с начала года.

Нажмем «Продолжить», и начнется процесс перенумерации.

Для программистов: создание обработки 1С для перенумерации других документов

Для наших опытов выберем мой любимый документ « «.

Создадим новую внешнюю обработку и добавим на форму следующие реквизиты:

  • ДатаНачала.
  • ДатаОкончания.
  • НачальныйНомер.
  • Организация.

Реквизит «Организация» следует добавлять только в случае, если учет ведется по нескольким организациям в одной информационной базе. В ином случае достаточно добавить реквизит «Префикс». Запрос в этом случае будет немного попроще. Вот, что у меня получилось:

Итак, создаем команду на клиенте. Так как запросы выполняются на сервере, в этой команде будет только вызов серверной процедуры, например, «ВыполнитьНаСервере()».

Запрос = Новый Запрос; Запрос. Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка, | РеализацияТоваровУслуг.Организация.Префикс |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Организация.Ссылка = &Организация | И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания" ; Запрос. УстановитьПараметр("ДатаНачала" , НачалоДня(ЭтаФорма. ДатаНачала) ) ; Запрос. УстановитьПараметр("ДатаОкончания" , КонецДня(ЭтаФорма. ДатаОкончания) ) ; Запрос. УстановитьПараметр("Организация" , ЭтаФорма. Организация) ; РезЗапроса = Запрос. Выполнить () ; ВыборкаДетЗаписи = РезЗапроса. Выбрать() ;

Теперь в цикле пробежимся по результату выборки и перенумеруем документы:

НачНомер = ЭтаФорма. НачальныйНомер; Пока ВыборкаДетЗаписи. Следующий() Цикл Префикс = ВыборкаДетЗаписи. ОрганизацияПрефикс; ДокОбъект = ВыборкаДетЗаписи. Ссылка. ПолучитьОбъект() ; ДокОбъект. Номер = Префикс + Прав("000000000000000000" + НачНомер, 11 - СтрДлина(Префикс) ) ; НачНомер = НачНомер + 1 ; Попытка Если ДокОбъект. Проведен Тогда ДокОбъект. Записать(РежимЗаписиДокумента. Проведение) ; Иначе ДокОбъект. Записать(РежимЗаписиДокумента. Запись) ; КонецЕсли ; Исключение Сообщить(ОписаниеОшибки() ) ; КонецПопытки КонецЦикла ;