Проверка и исправление ( перенумерация ) неуникальных и некорректных номеров

06.08.09

Задачи пользователя - Перенумераторы

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
RepairNomDoc v1.0
.1186471497 14,49Kb
1520
1520 Скачать бесплатно
RepairNomDoc v1.14
.1187005435 22,03Kb
2877
2877 Скачать бесплатно

Обработка "Проверка и исправление (перенумерация) неуникальных и некорректных номеров документов"

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

Проверка неуникальности номеров производится в соответствии с указанным нумератором документа или его видом, (если нумератор не указан) в пределах установленной периодичности номера. Для всеобъемлющего поиска неуникальных номеров необходимо указывать интервал выборки документов кратно периодичности номера. Для некорректных номеров просто проверяется соответствие количества пробелов в конце номера (по умолчанию - 0). В случае, если наличие пробелов в конце номера предусмотрено конфигурацией, их количество для "корректного" номера можно указать (колонка "Отступ" в таблице на первой закладке)

Поиск оптимизирован, работает достаточно быстро, зависимость времени выполнения от количества документов -пропорциональная, эквивалентна 2-х - 3-х кратному перебору документов в цикле. Найденные документы отображаются в таблице на форме на новой закладке.

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

Правила формирования нового номера для документа:

Документы с номерами типа "Число" обрабатываются только с пом. метода "УстановитьНовыйНомер()"

Для документов с номером текстового типа предложено три этапа нумерации, которые выполняются до момента
успешного поиска уникального номера:

Этап 1. Новый номер с прежней числовой частью. В старом номере выделяется числовая часть и переносится в новый к новому префиксу. Длина номера корректируется либо добавлением нулей, либо обрезанием числовой части слева. Для последнего предусмотрен флаг отмены, в этом случае перенумерация документа не производится.
Этап 2. "УстановитьНовыйНомер". Стандартный метод установки нового номера, выполняется при отсутствии / неудачном выполнении первого этапа.
Этап 3. Бинарный поиск нового номера. Выполняется при отсутствии / неудачном выполнении предыдущих этапов (для первого - найденный номер неуникален, для второго - не соответствует количество пробелов в конце, либо номер неуникален). Бинарный поиск выдаст последний номер в серии номеров, если она непрерывна, в противном случае, есть малая вероятность получения номера из "пропуска в серии".

В ходе разработки нашел "грабли": методы документа общего вида "НайтиПоНомеру", "ВыбратьПоНомеру" при одноименных "нумераторе" и "виде документа" отрабатывает "вид документа". Грабли убрал.

Обработка не использует ВК.

Версия 1.14 (06.08.09)
- обход метода документа "ВыбратьПоНомеру" без указания вида документа/нумератора

Версия 1.12 (20.08.07)
- возможность изменить префикс для всех документов (требующих перенумерации) выбранной ИБ

Версия 1.11 (15.08.07)
- исправлены условия перехода между этапами перенумерации

Версия 1.10 (13.08.07) - 1.00 (07.08.07)
- Разделены для окончательной обработки документы "неуникальные" и "по пробелам в конце"
- Полные группы документов с неуникальным номером (ранее - начиная со второго с неуник. номером в выборке)
- Механизм выбора документов для перенумерации.
- "Автовыбор" документов по информационной базе, "по умолчанию"
- Механизм формирования номера формализован по выбираемым пользователем этапам.

Пишите отзывы и предложения, не забывайте про рейтинг.
С Уважением, Shaman100M.

См. также

Перенумераторы Бухгалтер Пользователь Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Бухгалтерский учет Абонемент ($m)

Данная обработка выполняет перенумерацию (присвоение новых номеров документам) в Бухгалтерии предприятия 7.7 за выбранный период.

1 стартмани

01.07.2021    4595    4    Ant10    0    

2

Перенумераторы Бухгалтер Платформа 1С v7.7 1С:Бухгалтерия 7.7 Бухгалтерский учет Абонемент ($m)

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

1 стартмани

07.11.2017    14763    17    Юлия69    0    

0

Перенумераторы Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

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

1 стартмани

03.08.2016    25975    124    ak_register    8    

3

Перенумераторы Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Простая обработка по восстановлению нумерации в документах и справочниках.

1 стартмани

11.04.2015    16543    12    maksa2005    1    

3

Перенумераторы Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

С помощью этой обработки можно перенумеровать любой справочник или документ, входящий в состав программ 1С: Предприятие 7.7

1 стартмани

24.04.2014    4242    11    tatyana1604    1    

0

Перенумераторы Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Данная простейшая обработка выполняет всего одну функцию, а именно сквозную (без учета иерархии) перенумерацию элементов выбранного справочника. Порядок существующих кодов соблюдается, но коды приводятся к натуральным числам (числовой тип кода) либо к строкам, состоящим из дополненных ведущими нулями натуральных чисел (строковый тип кода). Необходимость подобной перенумерации может возникнуть в случае беспорядочного редактирования кодов элементов пользователями.

1 стартмани

06.04.2013    4243    64    sweeper7    6    

2

Перенумераторы Программист Бухгалтер Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Обработка позволяет исправить нумерацию документов с периодичностью в течении года.

1 стартмани

24.01.2013    4276    37    sp1406    1    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vcv 89 07.08.07 12:26 Сейчас в теме
Не дают проголосовать за обработку. Рейтинг требуют. Вот захочешь доброе "+1" сказать человеку и не дают :-(
Вот еще бы доработать. При исправлении получается неудобно. Номера пересекаются у 2-х и более документов, обработка показывает только один и его и предлагает исправлять. А я выбрать хочу.
2. Shaman100M 1151 07.08.07 12:44 Сейчас в теме
Доработаем. Правда, тогда и мех-м выбора придется прикручивать. :)
3. TIG-PROGRAMMIST 49 07.08.07 13:00 Сейчас в теме
Да уж особенно в конфигурации зарплата и кадры отлично исправляет номера, с учетом того что там номера принципиально сделаны меньше чем их размерность, после исправления сделать корректировку документа невозможно, так как вставить И01,И02 , надо доработать возможность ограничивать размерность исправления.
4. Shaman100M 1151 07.08.07 14:13 Сейчас в теме
Два вопроса, Darex.
1. "Размерность исправления" - это возможность создавать новый номер длиной меньше установленной в конфигураторе?
2. "так как вставить И01, И02" - речь идет о посленомерной приставке, типа "постфиксе"? (ЗиК под рукой нет)?
5. Shaman100M 1151 13.08.07 22:35 Сейчас в теме
Новая версия, с расширенными возможностями исправления номеров. Учтены пожелания vcv и Darex.
6. German 413 28.08.07 12:27 Сейчас в теме
Числовая часть была впереди(2-к) поэтому пришлось сделать так (добавить нули сначала)

Код
            // пытаемся добавить - убрать лишние цифры после префикса 
               
               Если       ДлинаПрежнейЧЧ   < ДлинаЧЧ Тогда
                  // добавляем нули
                  //Док.НомерДок   = ТекТаблица.Префикс   + Формат(ЧисловойНомер,"Ч(0)"+ДлинаЧЧ);
                  Док.НомерДок   = Формат(ЧисловойНомер,"Ч(0)"+ДлинаЧЧ)+ТекТаблица.Префикс;
Показать полностью



8. Shaman100M 1151 08.09.07 13:48 Сейчас в теме
(6) Считаю, что такие вещи можно делать в прошлом периоде нумерации, т.к. при таком способе текущая нумерация собъется. Ну, эта обработка позволяет задать количество пробелов в конце номера, и в соответствии с этим все доки перенумеровать. Потом написать небольшую обработку с куском кода в цикле вроде:

Код
 Док.НомерДок = СокрЛП(Док.НомерДок)+НеобходимыйПрефикс; 
Показать полностью


(7) Шаблон еще больше усложнит обработку. Только если есть большая необходимость в этом. В принципе, <Префикс><Номер><Пробелы> - простейший и самый употребляемый шаблон, не противоречащий автонумерации. А вместо сложных шаблонов для номера документа можно ввести доп. строчный реквизит с маской, и обрабатывать его в форме документа.

С нумератором да, захотелось сделать все по правилам, хотя к концу выполнения такие задачи успевают надоесть. :)
7. German 413 28.08.07 13:29 Сейчас в теме
Хорошо бы переименовывать все документы(типы документов привязанных к нумератора) по шаблону.
А то есть масса обработок, но все они привязаны только к типу документу а не к нумератору
9. mihenius 83 28.07.09 10:14 Сейчас в теме
На этапе Номера с пробелами
Если в номере документа есть и префикс и постфикс, то обработка постфикс игнорирует и прибавляет 0 справа, хотя должна ставить перед числовой частью.
10. Shaman100M 1151 28.07.09 14:26 Сейчас в теме
(9) к сожалению, данная версия обработки с постфиксами не работает, и воспринимает <префикс><номер><постфикс> как единый префикс.
11. Shaman100M 1151 28.07.09 14:38 Сейчас в теме
(9) а, понял фишку:

Р012ПП _ _ --> Р00012ПП
12. mihenius 83 29.07.09 12:57 Сейчас в теме
Да я уже для себя исправил, просто как бы маленький недочет ,)
(11) Ога, а сейчас делает Р012ПП00, ерунду )
13. p_margo 27.09.09 18:15 Сейчас в теме
Спасибо огромное! Собралась уже сама писать что-нибудь по "отлову", и тут Вашу обработку v1.14 увидела! Быстренько нашлась ошибка, и заодно некоторые проблемы всплыли, о которых я и не подозревала. Все устранилось. Вы мне сэкономили много времени! :!:
14. elsystem 08.01.10 23:22 Сейчас в теме
Спасибо автору! Отдуши написано!
15. nikanat 17.10.11 04:53 Сейчас в теме
16. vpozitive 01.11.11 23:07 Сейчас в теме
Хороший помощник!! Нужная вещь
17. Масянечка 06.11.11 13:36 Сейчас в теме
Спасибо! как раз насущная проблема после выгрузки из КПК посредствои Моби-С :(((
18. tgnike 08.11.11 12:33 Сейчас в теме
Спасибо. очень удобно и функционально!!!
19. courageous 24 10.11.11 12:55 Сейчас в теме
Отлично работает обработка. Бухам ручки поправить бы... как умудряются - непонятно, но теперь можно спокойно все исправить. Еще выриант переброски справочника из другой базы - коды полюбому совпадут, а с этой обработочкой такой проблемы больше нету! Автору спасибо.
20. san_nisan 17.11.11 21:42 Сейчас в теме
Отлично работает обработка. Автор молодец! Реально выручила ваша обработка. Всё четко работает
21. Artemuch2 29.01.12 21:17 Сейчас в теме
Отлично попробуем! как раз нужно перед сверткой
22. пользователь 29.01.12 21:18
Сообщение было скрыто модератором.
...
23. Joker 30.03.12 09:30 Сейчас в теме
хорошая вещь, постоянно борюсь с косяками в номерах, а универсальную все никак сам не сделал, теперь буду эту расшаривать
24. igor_35 18.01.13 11:26 Сейчас в теме
25. maksa2005 550 09.04.15 09:13 Сейчас в теме
Не помогло исправить(((
Оставьте свое сообщение