|
Автонумерация документа | ☑ | ||
---|---|---|---|---|
0
urbanstyle
18.04.13
✎
13:57
|
здравствуйте! сбилась нумерация у документа.
сделал функцию, которая ищет последний по номеру и дате документ. Потом ее вызываю в процедуре ПередЗаписью() документа. Создается новый документ, ему автоматически присваивается новый номер, но когда создаю следующий документ, номер повторяется. Как сделать так, чтобы при записи каждого нового документа в БД, происходила автоматическая нумерация? Функция ПрисвоитьНовыйНомер() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | МойДокумент.Номер КАК Номер, | МойДокумент.Дата КАК Дата, | МойДокумент.Ссылка |ИЗ | Документ.МойДокумент КАК МойДокумент |УПОРЯДОЧИТЬ ПО | Номер УБЫВ, | Дата УБЫВ"; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.Номер Иначе Возврат "000000001" КонецЕсли; Номер = Строка(Число(Номер) + 1); Номер = СтрЗаменить(Номер,Символ(160),""); Для N = 1 По 9-СтрДлина(Номер) Цикл Номер = "0" + Номер; КонецЦикла; Возврат Номер КонецФункции |
|||
1
Kreont
18.04.13
✎
14:01
|
Код:
Номер = Строка(Число(Номер) + 1); Номер = СтрЗаменить(Номер,Символ(160),""); Для N = 1 По 9-СтрДлина(Номер) Цикл Номер = "0" + Номер; КонецЦикла; Возврат Номер не выполнится ни когда! |
|||
2
Лефмихалыч
18.04.13
✎
14:02
|
(0) убери свою функцию. Просто убери.
В свойствах формы документа выключи автонумерацию и всё |
|||
3
Kreont
18.04.13
✎
14:07
|
(2) +100
наверное жалко, столько кода написал по автонумерации :) |
|||
4
urbanstyle
19.04.13
✎
14:49
|
почему не выполнится? хочу понять!
|
|||
5
SherifSP
19.04.13
✎
14:55
|
+(2) И убери доступность у реквизита "Номер"
|
|||
6
SherifSP
19.04.13
✎
14:56
|
(4) Писать код, когда можно все сделать стандартными средствами, не кошерно
|
|||
7
urbanstyle
19.04.13
✎
15:15
|
не изменилось ничего, галка стоит. только теперь нумерация идет с "999" и также дублируется.
мне нельзя затирать старые номера, не могу воспользоваться обработкой для нумерации. все дело в этом куске: Номер = Строка(Число(Номер) + 1); Номер = СтрЗаменить(Номер,Символ(160),""); Для N = 1 По 9-СтрДлина(Номер) Цикл Номер = "0" + Номер; КонецЦикла; Возврат Номер Здесь меняется номер на 1 больше. и на этом моменте я застрял Номер = Строка(Число(Номер) + 1); Нужно сделать цикл чтобы каждому новому доку присваивался номер на 1 больше. Только не доходит до меня никак( |
|||
8
Kreont
19.04.13
✎
15:31
|
(7) O_O, зачем тут цикл вообще?
Номер = Строка(Число(Номер) + 1); //Номер = СтрЗаменить(Номер,Символ(160),""); //Для N = 1 По 9-СтрДлина(Номер) Цикл Номер = Прав("0000000000000000" + Номер,ДлинаПоляНомераБезПрефикса); //Это если в лоб :) //КонецЦикла; Возврат Номер |
|||
9
salvator
19.04.13
✎
15:34
|
(7) Длина номера какая у документа?
|
|||
10
urbanstyle
19.04.13
✎
15:41
|
длина 9
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |