V7.7 Нумерация

  • Автор темы Anatoly1987
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Anatoly1987

#1
Привет Форумчане!

Ребята проблема такая: мне нужно выполнить сдвижку нумерации, т.е. скажем есть документы с таким то префиксом и с такой то числовой частью, к примеру представим "П00020", как мне сделать чтобы при создании следующего документа номер был не "П00021", а "П00022"?
 

unknown181538

НеГуру
28.12.2008
1 417
0
#2
Доработать процедуру "ВводНового" - обрубить префикс превратить в число, добавить единицу, првратить обратно в строку и дописать нули в нужном количестве.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#4
<!--shcode--><pre><code class='1С'>Процедура ВВодНового()
НомерБезПрефикса = Прав(НомерДок, СтрДлина(НомерДок)-1) // Может и не нужно "-1" - не уверен, что префикс входит в номер, тот который задан в параметрах.
НомерЧислом = Число(НомерБезПрефикса);
НУжныйНомерСтрокой = Строка(НомерЧислом+1)
Нули = "";
Для Ы = 1 По (ДлинаНомераУТебя - СтрДлина(НУжныйНомерСтрокой))Цикл
Нули=Нули+"0";
КонецЦикла;
НомерДок = Префикс + Нули+НУжныйНомерСтрокой;[/CODE]
Примерно так - дальше смотри в отладчике.
 
A

Anatoly1987

#5
Ты наверное не понял меня, скажем вот номер "П00021" будет следующим, но надо пропустить только его.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#6
Т.е. нужно, чтобы пропускался конкретно один номер?? А руками нельзя? Т.е. после 34 будет идти как надо - 35, а после 20 - 22-й? Что мешает поставить условие перед моим кодом? Еще более не понятно стало.
 
A

Anatoly1987

#7
Т.е. нужно, чтобы пропускался конкретно один номер?? А руками нельзя? Т.е. после 34 будет идти как надо - 35, а после 20 - 22-й? Что мешает поставить условие перед моим кодом? Еще более не понятно стало.
Проблема в том что мы скажем так резервируем эти коды, для будущего использования. А когда мы их резервируем неизвестно. Хочу сейчас, хочу потом. Вот так вот.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#8
Ну создай, например справочник "Зарезервированные коды", и

Если НомерНайденВВСправочнике Тогда
<То , что я писал>

В чем проблема-то?
 
A

Anatoly1987

#9
Ну создай, например справочник "Зарезервированные коды", и

Если НомерНайденВВСправочнике Тогда
<То , что я писал>

В чем проблема-то?
Да я об этом тоже подумал. Просто я спрашивал на случай, что может в 1с есть эти средства. Я ж 1с не знаю нифига.)
 

vbs

Well-known member
18.02.2007
1 708
1
#10
Но активность в изобретении новых идей проявляется постоянно
К вопросу - при создании нового номера можно использовать флажок "резервировать номер" и по его значению действовать - либо пропускать один номер, либо нет

Доработать процедуру "ВводНового" - обрубить префикс превратить в число, добавить единицу, првратить обратно в строку и дописать нули в нужном количестве.
по сути правильно, но придется еще анализировать номер, когда число нулей уменьшится ( с 00099 на 00100, например).
Вообще я всем пользователям рекомендую исправить первый номер документа с 00000001 на 1 (если тип номера текстовый) - гораздо меньше проблем в будущем
 
A

Anatoly1987

#15
тебе ж в эту автонумерацию необходимо вмешаться ? Вот тебе и сказали, как это сделать...
ага тока когда я нули уберу первые и оставлю только одну цифирку, все последующие коды будут размером в один символ... я об это зубы ломал уже.
 

vbs

Well-known member
18.02.2007
1 708
1
#18
Да, но я ж написал код нумерации с учетом уменьшения колмчества нулей
несложная проблема, что тут долго обсуждать, просто я обратил внимание, что количество первых нулей меняется, не прими в обиду
 
A

Anatoly1987

#19
несложная проблема, что тут долго обсуждать, просто я обратил внимание, что количество первых нулей меняется, не прими в обиду
ребята я знаю что изменение количество символов номера, становиться в последствии стихей. Конечно никогда не произойдет энтакое событие, но вероятность есть. Причем учитываю всю мою добавленную автоматику, я это все подвергаю риску. Мало того, номер документа я закрою на редактирование вообще.
 
Статус
Закрыто для дальнейших ответов.