Автоматическая нумерация документов в 1с 8.3. Групповая перенумерация документов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

83
Основные команды: Кодирование: Ctrl+Пробел - вызов подсказки Ctrl+Q - вызов шаблона Ctrl+F1 - поиск в синтакс-помощнике Ctrl + L - удалить текущую строку Alt+Shift+F - отформатировать код Исследование: F12 - ставим курсор на... 49
Когда кто-то удаляет данные из базы без проверки ссылок на эти объекты, то везде где этот объект использовался появляется сообщение вида: Объект не найден (84:bf5600145e3710ab11dda4c605dbe824) ..png В 11
Что такое 1С? 1С - это фирма, у которой одно из направлений деятельности - разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который... 10
В статье Битая ссылка, Объект не найден, Уникальный Идентификатор, GUID мы обсуждали как востановить битые ссылки! А вот как найти в базе все битые ссылки, которые имеют вид типа " Объект не найден (137:8b270030482898d011daad3cc45fc830)"... 4
Двумерные штрих-коды – символики, разработанные для кодирования большого объема информации (до нескольких страниц текста). Такой код считывается с помощью специального сканера и позволяет быстро и безошибочно...

В своей практике я не раз сталкивался с ситуацией, когда пользователи 1С меняя нумерацию вручную убирали лидирующие нули и таким образом сбивали автоматическую нумерацию. Что делать? Как восстановить нумерацию в этом случае? Восстановить нумерацию документов нам поможет специальная обработка «Универсальные подбор и обработка объектов». Эту обработку можно скачать в разделе

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

Порядок работы с обработкой

Открываем обработку через меню «Файл» — пункт «Открыть»:

Выбираем файл «УниверсальныеПодборИОбработкаОбъектов.epf» и нажимаем «Открыть»:

В открывшемся окне в поле «Объект поиска» выбираем вид документа (которые требуется перенумеровать):


Далее устанавливаем отбор на закладке «Отбор по значениям реквизитов», например, нам надо восстановить нумерацию документов «Реализация товаров и услуг» начиная с 01 января 2010 года по текущую дату. Нажимаем в командной панели кнопку «Добавить». В окне выбора поля выбираем «Дата», в колонке «Тип сравнения» указываем «Больше», в поле «Значение» устанавливаем 01.01.2010:


После этого нажимаем «Найти объекты»:


Программа перемещает нас на закладку «Найденные объекты», на которой мы видим список отобранных документов для перенумерации. На рисунке наглядно показано, с какой даты изменена нумерация (убраны так называемые лидирующие нули):


Далее мы переходим на закладку «Обработки», в левой части выбираем пункт «Перенумерация объектов» (дважды кликаем по нему мышкой):


В следующем окне указываем с какого номера перенумеровывать (поле «Начальный номер»). В нашем случае это — 1. Если мы хотим восстановить нумерацию учитывая префикс, устанавливаем переключатель в положение «Не изменять существующие префиксы»:


После нажатия кнопки «Выполнить» происходит перенумерации документов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Иначе

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

КонецЕсли;

Исключение

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

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

КонецЦикла;

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

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

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

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



Просмотров