Получаю последний номер по документу, номер может быть с разными префиксами как (УТ, ЦБ-, С и т.д)

Можно ли получив последний номер прибавить его на единицу чтобы подставить в новый документ который я создаю программно? Заранее спасибо

```1c
    Если НомерДокументаПрошлый <> " Тогда

    Строка=Сред(НомерДокументаПрошлый,4);
    ЧислоСтрока = Формат(Число(Строка),"ЧЦ=7");
    НомерДокументаНачало = ЧислоСтрока + 1;
    НомерДокументаКонец = Номер + Строка(НомерДокументаНачало);

    КонецЕсли;
```

Пытался сделать так, но не верно

Конфигурация УТ 11
---
Ну вот небольшой колхоз:
```1c
    ДлинаНомера = СтрДлина(Номер);

    Сч = ДлинаНомера;
    Пока Сч > 0 Цикл
    Если СтрНайти("0123456789", Сред(Номер, Сч, 1)) = 0 Тогда
    Прервать;
    КонецЕсли;
    Сч = Сч - 1;
    КонецЦикла;

    Префикс = ?(Сч = 0, ", Лев(Номер, Сч));
    НомерЧислом = Число(Сред(Номер, Сч + 1));
    ФорматЧисла = "ЧЦ=" + Строка(ДлинаНомера - СтрДлина(Префикс)) + "; ЧВН=; ЧГ=";

    НомерЧислом = НомерЧислом + 1;
    НовыйНомер = Префикс + Формат(НомерЧислом, ФорматЧисла);
```
---
Чем не устраивает типовой функционал:

```1c
    Документ = Документы.<МойДокумент>.СоздатьДокумент();
    Документ.Организация = Организация;
    ......

    Документ.УстановитьНовыйНомер();
    .....

    Документ.Записать();
```

?
---
Он устанавливает свой номер, а нужно продолжить нумерацию по последнему документу со своим префиксом
---
Используйте

```1c
    Документ.УстановитьНовыйНомер("Префикс");
```
---
Насколько я понимаю, для одного и того же документа префикс подбирается исходя из значения поля "Организация". Соответственно, при создании нового документа, номер будет проставлен автоматически, нужно выбрать лишь верную организацию, чтобы к номеру был подставлен верный префикс.

UPD. Рассматриваю абстрактный документ. Если я не прав, поправьте меня.
---
Организация одна, в документе ведут свою нумерацию.

Получилось сделать из типовой функции отрезать префикс, но вот как добавить к номеру без префикса единицу, понять не могу
---
Формат(Число(Строка),"ЧЦ=7") возвращает тип Строка, а не число, вам нужно 1 прибавлять к Число(Строка), а потом уже докидывать лидирующие нули и префиксы обратно
---
Именно так. Префиксы придуманы для разделения нумерации в разрезах организаций. Для каждой организации - своя последовательность номеров для типовых документов.
---
Для таких целей используйте функцию УстановитьНовыйНомер(Префикс).
Платформа сама присвоит новый номер для указанного префикса.
---
Автор хочет единую последовательность номеров, но с разными префиксами...
---
Она не единая
---
Ааааа, вот оно что. Сочувствую ему тогда, ломать таким образом типовую нумерацию... Так себе вариант.
Если так, то заводи константу или регистр сведений и храни там последний номер документа, своего рода счетчик. И при каждом следующем номере Сч + 1.
Так как в противном случае придется делать запрос ко всей таблице документов (ну может за год, если цикличная нумерация), что бы узнать новый номер.
---
Типовую нумерацию никто не ломает

Есть 2 склада, склад1 и склад2

Обработкой автоматически создаётся документ "Пересчет товаров"

Работники руками ставят номер ПК-000000001 для первого склада и хотят чтобы моя обработка обращала внимание на последний этот номер по первому складу и при создании нового документа номер становился ПК-000000002
---
Так просто запишите документ сразу при создании, ему автоматически присвоится правильный номер. И запретите работникам руками менять номер.
---
Он присваивается именно такой какой хочет база, префикс конфигурации УТ, и он ставит тогда УТ-000 и т.д
---
Ага, и между чтением счетчика и записью первого экземпляра Документа кто-то еще успеет прочитать этот счетчик и попытаться записать другой экземпляр Документа с тем же номером...И получим ошибку уникальности номера у кого-то.
Проходили. Тоже так себе вариант, при котором по 2-3 раза в день приходится вручную выправлять регистр со счетчиками...
---
Префикс я получаю, но при обрезке этого префикса (Чтобы получить строку и прибавить к ней единицу) убираются все нули, то есть был номер ПК-000000001 , я прибавляю единицу, номер становится просто 2
---
Ну вот небольшой колхоз:
```1c
    ДлинаНомера = СтрДлина(Номер);

    Сч = ДлинаНомера;
    Пока Сч > 0 Цикл
    Если СтрНайти("0123456789", Сред(Номер, Сч, 1)) = 0 Тогда
    Прервать;
    КонецЕсли;
    Сч = Сч - 1;
    КонецЦикла;

    Префикс = ?(Сч = 0, ", Лев(Номер, Сч));
    НомерЧислом = Число(Сред(Номер, Сч + 1));
    ФорматЧисла = "ЧЦ=" + Строка(ДлинаНомера - СтрДлина(Префикс)) + "; ЧВН=; ЧГ=";

    НомерЧислом = НомерЧислом + 1;
    НовыйНомер = Префикс + Формат(НомерЧислом, ФорматЧисла);
```
---
Спасибо, получилось, очень помогли.
---
Тогда чем не устраивает УстановитьНовыйНомер(Префикс)????
---
Ну варианты всегда есть. Например можно сделать регистр сведений с двумя измерениями "Номер" и "Префикс".
Считать последний номер, сразу записать в этот же регистр, если получили ошибку записи (не уникальность), то повторяем процедуру. Таким образом дублей не будет, так как номер считаем присвоенным в момент успешной записи в регистр сведений.
Периодически можно чистить регистр, что бы не было много записей.