Установитьновыйномер не работает

Обработка «Проверка и исправление (перенумерация) неуникальных и некорректных номеров документов»
Обработка осуществляет поиск документов с неуникальными и некорректными номерами и их последующую перенумерацию. Неуникальные номера могут образоваться, например, вследствие одновременного создания документов в разных частях распределенной базы данных с одиннаковым префиксом и последующего обмена данными. Некорректные номера (с пробелом в конце) могут образовываться из-за их ручной корректировки пользователями, а также при увеличении длины номера средствами конфигурирования и непустой выборке
документов по данному виду.
Проверка неуникальности номеров производится в соответствии с указанным нумератором документа или его видом, (если нумератор не указан) в пределах установленной периодичности номера. Для всеобъемлющего поиска неуникальных номеров необходимо указывать интервал выборки документов кратно периодичности номера. Для некорректных номеров просто проверяется соответствие количества пробелов в конце номера (по умолчанию — 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *