|
Следующий номер документа как получить? Ø |
☑ |
0
125
12.01.05
✎
00:14
|
При создании нового документа (т.е. документ не записан еще) мне надо присвоить номер на 1 больше, т.е. следующий. При этом номер текстовый. Прибавлять 1 - так она просто в конец строки дописывается, УстановитьНовыйНомер() не берет почему-то... Как еще?
|
|
1
mthr
12.01.05
✎
00:41
|
Где-то в недрах типовой видел процедурку хитрую... Берем один символ с конца. Если он число, то берем два символа с конца... Угу?
|
|
2
125
12.01.05
✎
00:44
|
А где видели-то? Заново писать неохота :-)
|
|
3
mthr
12.01.05
✎
00:56
|
Хорошо. Переделаем :) Начнем сначала... . Номер = "Префикс0007770"; Сч = 0; Пока Число(Прав(Номер, СтрДлина(Номер) - Сч)) = 0 Цикл Сч = Сч + 1; КонецЦикла; Сообщить("Ч(0)" + (СтрДлина(Номер) - Сч)); НовыйНомер = Лев(Номер, Сч) + Формат(Число(Прав(Номер, СтрДлина(Номер) - Сч)) + 1, "Ч(0)" + Сч); Сообщить("Номер = " + Номер); Сообщить("НовыйНомер = " + НовыйНомер); . Во, блин... (три минуты :)
|
|
4
bsg
12.01.05
✎
00:59
|
(0) Зачем такое нужно, если не секрет?
|
|
5
mthr
12.01.05
✎
01:01
|
По ходу дела, лажанулся слегка... Да и понятнее будет: . Номер = "Преф0007770"; Сч = 0; Пока Число(Прав(Номер, СтрДлина(Номер) - Сч)) = 0 Цикл Сч = Сч + 1; КонецЦикла; Префикс = Лев(Номер, Сч); СтарыйНомерЧислом = Число(Прав(Номер, СтрДлина(Номер) - Сч)); НовыйНомерЧислом = СтарыйНомерЧислом + 1; ФорматнаяСтрокаЧисловойЧасти = "Ч(0)" + (СтрДлина(Номер) - Сч); НовыйНомер = Префикс + Формат(НовыйНомерЧислом, ФорматнаяСтрокаЧисловойЧасти); Сообщить("Номер = " + Номер); Сообщить("НовыйНомер = " + НовыйНомер); . Ввот...
|
|
6
125
12.01.05
✎
01:03
|
(3) Это будет работать? :-))) Спасибо!!! (4) Часть документов вводится в другой программе, на них в 1С будет только текстовая ссылка, занятые номера фиксируются, нужен первый незанятый.
|
|
7
bsg
12.01.05
✎
01:08
|
(6) Не понял ничего. Док=создатьобъект("Документ....."); Док.Новый(); Док.ДатаДок=ДатаДок; // дело происходит в модуле формы документа? Док.УстановитьНовыйНомер(); Док.Записать(); УстановитьНовыйНомер(); Док.Удалить(1);
|
|
8
125
12.01.05
✎
01:09
|
Заработало! Спасибо, Mthr :-))
|
|
9
125
12.01.05
✎
01:12
|
(7) Да, так похоже тоже можно, но создавать и удалять лишний раз почему-то не хотелось :-)
|
|