• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

Anatoly1987

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

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

unknown181538

Доработать процедуру "ВводНового" - обрубить префикс превратить в число, добавить единицу, првратить обратно в строку и дописать нули в нужном количестве.
 
A

Anatoly1987

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

Чей-то я не доразорался, расскажи по шагам
 
U

unknown181538

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

Anatoly1987

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

unknown181538

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

Anatoly1987

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

Проблема в том что мы скажем так резервируем эти коды, для будущего использования. А когда мы их резервируем неизвестно. Хочу сейчас, хочу потом. Вот так вот.
 
U

unknown181538

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

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

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

Anatoly1987

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

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

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

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

vbs

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

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

Anatoly1987

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

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

unknown181538

по сути правильно, но придется еще анализировать номер, когда число нулей уменьшится ( с 00099 на 00100, например).
Да, но я ж написал код нумерации с учетом уменьшения колмчества нулей.
 
A

Anatoly1987

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!