|
Нумерация Платежных поручений УПП 1.2 | ☑ | ||
---|---|---|---|---|
0
Droning1C
20.02.19
✎
10:19
|
Ситуация следующая- в базе за текущий год накопилось 600 платежек. Последний номер КТ000000600. Дальнейшую нумерацию хотелось бы продолжить, исходя из этого. Тоесть следующий номер должен сформироваться 601. НО при обмене с клиент-банком залились счета с номерами КТ000008266 например. Платформа нумерует новые документы соответственно совсем не так, как надо. Как исправлять такую ситуацию, не исправляя ошибочные номера? Направьте на путь истинный плз.
|
|||
1
Droning1C
20.02.19
✎
10:27
|
Тоесть мне нужно получить запросом последний созданный документ, вытянуть его номер, дальше обработать его, прибавив 1 и запписать в документ?
|
|||
2
catena
20.02.19
✎
10:27
|
(0)Не исправляя ошибочные - это только программировать.
|
|||
3
Droning1C
20.02.19
✎
10:37
|
ВЫБРАТЬ ПЕРВЫЕ 1
ПлатежноеПоручениеИсходящее.Номер КАК Номер ИЗ Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее УПОРЯДОЧИТЬ ПО ПлатежноеПоручениеИсходящее.Дата УБЫВ |
|||
4
Droning1C
20.02.19
✎
10:38
|
я получаю номер. например КТ000000600. Как грамотно прибавить 1 к номеру, учитывая, что номер типа строка
|
|||
5
catena
20.02.19
✎
10:52
|
(4)Отрезать префикс, преобразовать в число, увеличить, форматнуть в номер с префиксом.
|
|||
6
Droning1C
20.02.19
✎
11:00
|
(5) Процедура ПриЗаписи(Отказ)
Если ЭтоНовый() Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ПлатежноеПоручениеИсходящее.Номер КАК Номер |ИЗ | Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее | |УПОРЯДОЧИТЬ ПО | ПлатежноеПоручениеИсходящее.Дата УБЫВ"; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Номер = ВыборкаДетальныеЗаписи.Номер; КонецЦикла; Если Организация.Префикс = "КТ" Тогда Строка1 =Строка(Число(Прав(Номер,9)) + 1); ДлиннаСтроки1 = СтрДлина(Строка1); Разница = 9 - ДлиннаСтроки1; Для р = 1 По Разница Цикл Строка1 = "0" + Строка1; КонецЦикла; Строка1 = Организация.Префикс + Строка1; Номер = Строка1; КонецЕсли; КонецЕсли; КонецПроцедуры а есали так? Учитывая, что мне нужно это делать только по префиксу КТ |
|||
7
catena
20.02.19
✎
11:18
|
(6)Строка(Число( будет работать до 999 номера. А потом сюприз.
|
|||
8
Droning1C
20.02.19
✎
11:34
|
(7) а почему? вместо 1000 получу 1?
|
|||
9
DrWatson
20.02.19
✎
11:43
|
(8) Вместо 1000 получишь 1 000. Надо использовать Формат().
|
|||
10
catena
20.02.19
✎
11:45
|
(8)Ну открой таблу и посмотри на Строка(Число(1000))
|
|||
11
Droning1C
05.03.19
✎
13:12
|
(9) вот и настал тот час, когда перевалило за 1000))) Ввиду отсутствия времени в тот раз оставил как было. А куда цеплять Формат()?
|
|||
12
Droning1C
05.03.19
✎
13:13
|
(9) И как конкретно им пользваться в данном случае?
|
|||
13
Droning1C
05.03.19
✎
13:15
|
я так понимаю в конструкторе форматной строки группировку в 0 поставить?
|
|||
14
catena
05.03.19
✎
13:19
|
(13)Там ведь, в конструкторе, даже увидеть можно результат всех галочек.
|
|||
15
Александр Б
05.03.19
✎
13:38
|
(0) плохой алгоритм решения проблемы.
Когда твоя нумерация дойдет до этих "ошибочных" с номером "КТ000008266" (например), у тебя перестанут записываться документы из-за дублей номеров и придётся заново всё переписывать. |
|||
16
Флориан
05.03.19
✎
14:16
|
"НО при обмене с клиент-банком залились счета с номерами КТ000008266 например." - правьте обработку клиент-банк, что бы загруженные шли с другим префиксом
|
|||
17
Serg_1960
05.03.19
✎
14:39
|
Угу. Тем более что вместо русских "К" и "Т" в префиксе всегда можно использовать другой префикс с их "английскими аналогами".
А как по мне, так договорись с юзверями, перенумеруй счета с "неправильными" номерами и не парься. |
|||
18
Serg_1960
05.03.19
✎
14:46
|
*(17) Тьфу :) Не "перенумеруй", а "перепрефиксуй" (если так можно выразиться) - предлагаю изменить префикс номерам типа "КТ000008266" - они попадут в другое пространство автонумерации и уже не будут мешать ТС продолжать вести нумерацию с 601 и далее.
|
|||
19
dmpl
05.03.19
✎
14:49
|
(17) А еще 0 можно поменять на О или O :)
|
|||
20
Serg_1960
05.03.19
✎
15:56
|
(19) Можно... но не нужно. Автонумерацию заключит на префиксах, которые являются подмножеством другого префикса. Префиксы типа "К", "КТ", "КТО" (вместо "КТ0") - это потенциально конфликтные префиксы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |