Имя: Пароль:
1C
1С v8
Поправить нумерацию документа
0 nAPACEHAK
 
17.11.21
09:35
Доброго

1с8 БП3 перепиленная. Документ Платежное поручение.

юзер поменял руками номер. вовремя не заметили.
теперь, при создании нового документа, при записи присваивается номер 00ДД-99999. далее стандартно "не могу записать номер документа существует"
Если номер поправить руками, например на 00ДД-199999 - док запишется. но след новый номер всеравно будет сгенерирован 00ДД-99999

1)
Об = ПП.ПолучитьОбъект();
Об.УстановитьНовыйНомер(НовНомер);
Об.Записать();
2)
Массив = Новый Массив;
Массив.Добавить(Метаданные.Документы.ПлатежноеПоручение);
ОбновитьНумерациюОбъектов(Массив);

после 1) или 2) всеравно при
Об = Документы.ПлатежноеПоручение.СоздатьДокумент();
Об.Дата = ТекущаяДата();
оБ.УстановитьНовыйНомер();
Нов = Об.Номер; // будет сгенерирован 00ДД-99999.
Периодичность номеров - год. соотв, если я сменю дату дока на, например, Текущая + Год то номер сгенерится нормально. Проблема только в текущем году.

Ручных генераций номера - нет. ПриУстановкеНовогоНомера() - нет. Подписок по номеру - нет. Отдельных нумераторов - нет.

Вопрос: куда пнуть?

Спасибо
1 nAPACEHAK
 
17.11.21
09:38
СтрДлина("00ДД-99999") = 10
НомераДокумента = Строка, 11, фиксированная
Почему номер не может сгенерироваться как следующий после 99999? длины вроде хватает
2 Галахад
 
гуру
17.11.21
09:39
Есть номер 00ДД-99998?
3 GlRoznica
 
17.11.21
09:40
Пилить банк в БП, у вас там все хорошо?
4 nAPACEHAK
 
17.11.21
09:42
(2) да, 99998, 99997, 99996...... он создавал до 99999 потом алескапут
(3) вы о чем?
5 Злопчинский
 
17.11.21
09:42
(1) потому что 99999 - 5 знаков под цифровую часть.
6 nAPACEHAK
 
17.11.21
09:44
(5) руками введу 100000, 312345 и все запишется
след. номер автоматом сгенерится снова как 99999
7 delgadoo
 
17.11.21
09:45
если документов не так много, то исправить номера руками как должно быть и запустить процедуру ОбновитьНумерациюОбъектов для этого метаданного
8 Злопчинский
 
17.11.21
09:45
потому что "99999" больше чем "100000"
9 Злопчинский
 
17.11.21
09:47
потому что грубо говоря - откусили префиксы. оставшееся остортировали (а у нас вед строка, ведь так?). максимальное в результате сортировки взяли как число и нарастили на 1.
.
пусть меня старого клюшечника восьмерочники асы поправят...
10 nAPACEHAK
 
17.11.21
09:48
(8) а 9999 больше чем 10000. однако следующий номер после 9999 был сгенерирован как 10000. но, следующий после 99999 генерируется как 99999
11 Галахад
 
гуру
17.11.21
09:50
(10) Наверное, после 09999 был 10000.
12 Kesim
 
17.11.21
09:50
(6) вводи новый номер 00ДД0000001 или 00ДДД000001, они тебе все равно нелогичную 1совскую ересть расскажут, которая в мозг неодинесника не уляжется))
13 Жан Пердежон
 
17.11.21
09:51
а если поправить руками, например, на 00ДД-099999
14 Смотрящий
 
17.11.21
09:53
1ска при формировании номера смотрит самый короткий не взирая на то что разрядность номера большая
т.е. при наличии номера "00ДД-09" и "00ДД-099" для генерации автонумерации будет взят "00ДД-09"

у тебя ситуация "нехватки" разрядности
1. Возьми в правую руку молоток - долбани себе по пальцам левой, это чтоб не забывал инструктировать пользователь
2. Выверни этой дуре матку наизнанку
3а) если номеров не много - верни нумерацию взад
3б) если дохрена - раздвинь номер подсунув лидирующий "0" во все документы в этом году;
т.е. Преврати номера "00ДД-99999" в "00ДД-099999" и тогда автонумерация побежит
15 nAPACEHAK
 
17.11.21
09:54
(9) вот теперь еще интереснее.

только что.
1) снимаем копию с серверной базы, разворачиваем у себя файловой
2) генерируем новый номер на файловой - генерируется правильно. хоть из формы списка ПП, хоть кнопками на основании хоть как
3) возвращаемся на серверную - генерирует 99999

разница между базой/копией = пару часов

я понимаю что я что то не понимаю ((((

(13)(14) после 00ДД-099999 следующий автосгенерированный будет 00ДД-99999
16 Kesim
 
17.11.21
09:56
(13) 00ДД-099999 меньше чем 00ДД-99999
17 Смотрящий
 
17.11.21
09:57
(15) "во все документы в этом году"
18 Kesim
 
17.11.21
09:57
(15) ключевая фраза  в (14) "во все документы в этом году"
19 nAPACEHAK
 
17.11.21
09:57
(17) совершенно верно. Если год возьму отличный от текущего то номер сгенерируется правильно
20 Kesim
 
17.11.21
09:59
(19) Если год возьму отличный от текущего то номер сгенерируется правильно -  это очень подозрительно, никогда такого не было.... и вот опять
21 nAPACEHAK
 
17.11.21
10:00
(17) поторопился
а... упс... ща понял про "во все"

вопрос. куча платежек ушла в банк. там 00ОД-12345
насколько критично добавленный 0 в номер? 00ОД-012345. чот я очкую ))
22 nAPACEHAK
 
17.11.21
10:03
и вот это в (15) очень смущает
23 Смотрящий
 
17.11.21
10:04
банку пофигу
24 unbred
 
17.11.21
10:05
(21) думаешь, деньги из банка вернут теперь? не сможешь справиться с наплывом ДС? отсылай мне, я разберусь.
25 Смотрящий
 
17.11.21
10:06
прям в боевой, запрети трогать эти документы с кривой нумерацией
и групповой обработкой с Обменданными истина, помесячно перезапиши номер
26 Ногаминебить
 
17.11.21
10:09
"Как поймают, юзера на кол посадить — это первое дело, а уж опосля!..."
27 ДенисЧ
 
17.11.21
10:13
(26) А кол - в бочку с порохом. И пущай полетает (с)
28 Dmitrii
 
гуру
17.11.21
10:13
(15) Хватит уже тупить.
Нумерация объектов - это сервис, предоставляемый кластером сервером для каждой информационной базы.
Если ты базу скопировал внутри кластера, перенёс на другой сервер, переделал в файловый вариант, то нумерация всех объектов обнулилась. Именно из-за этого на форуме стабильно пять раз в неделю возникает ветка с вопросом о том, что после того как копию базы развернули на сервере вываливаются ошибки о невозможности присвоить номер или код новым документам или справочникам.

Алгоритм восстановления кривой автоматической нумерации давно известен и он не менялся и тебе уже несколько человек его озвучили.
1. Перенумеровать все документы в течении года, у которых кривой номер в разрезе всех префиксов. В твоём случае это все(!!!) платежные поручения с номерами 00ДД-ХХХХХ переделать в 00ДД-0ХХХХХ (добавить необходимое количество ведущих нулей в цифровую часть номера), а не только один лишь 00ДД-99999.
2. Выполнить ОбновитьНумерациюОбъектов.

После этого нумерация будет работать нормально.
Ну и почитать на ИТС о том как устроена нумерация объектов в 1С.
29 Жан Пердежон
 
17.11.21
10:21
(15) тогда дерни ОбновитьНумерациюОбъектов() для твоего документа
30 nAPACEHAK
 
17.11.21
10:22
(24) я не думаю. я реакцию бухов не знаю )))))
(26) не спасает (((
(25) а сориентируйте, знающие люди

мы выгрузили платежки в клиент-банк
в следраз КБ ищет ПП по номеру
вот если лидирующих нулей понапихаем КБ нам снова не загрузит по второму разу?
он как номер парсит? как текст? тогда 1 не равно 01 и вот ловите еще раз тожесамое но с другим номером

*** пока склоняются к костылю - привернуть на этот год свой нумератор

(29) см. (1)
31 Смотрящий
 
17.11.21
10:27
(30) Проще исправить номер документа и поглядеть в КБ что он там и как ищет и его поправить
чем городить свою номерацию