Имя: Пароль:
1C
1С v8
Слетела автоматическая нумерация документов.
,
0 Денис Прог
 
04.05.18
14:41
Всем доброго время суток.
Есть документ "Платежное поручение исходящее" в которой для каждой организации ведется своя нумерация.
Нумерация заполняется автоматически и создается по принципу "наибольший текущий номер +1". У каждой
организации есть свои префикс.

Пример:
    
последний документ с номером ЛП000000200, следующий создается с номером ЛП000000201.

Вследствии времени префикс номера сменили на другой(Лпл00000124), потом захотели обратно, НО!
Номер остается с тем же префиксом, и послеидущем по порядку - Лпл00000125.

Какие методы использовал:

1. Вручную указывать нужный мне номер - следующий автоматически не проставляется;
2. ОбновитьНумерациюОбъектов() - не помогает(с указанием метаданных тоже);
3. Перенумерация с помощью обработки УниверсальныеПодборИОбработкаОбъектов - делал, новый префикс работает отлично,
при возвращении к старому - снова номер Лпл00000125;
4. УстановитьНовыйНомер() - возвращает Лпл00000125.
1 Волшебник
 
04.05.18
14:43
Сделай префикс с минусом, т.е. лпл-001
2 Денис Прог
 
04.05.18
14:50
(1) а как это повлияет на прошлый префикс? Мне его нужно вернуть для дальнейшей работы.
3 novichok79
 
04.05.18
15:03
(2) ну только если отлавливать события при установке номера и корректировать его с учетом организации. но это будет геморно. лучше не трогать номер документа, а сделать отдельное поле для таких извратов.
4 novichok79
 
04.05.18
15:03
(2) леща еще можно отгрузить за такие фокусы пользакам.
5 Волшебник
 
04.05.18
15:08
(2) в старый префикс тоже добавь минус вместо одного нуля
6 Денис Прог
 
04.05.18
15:33
(5) Вручную меняю номер на нужный ЛП-00000200, очищаю таблицу регистрации, снова создаю документ с номером ЛП-00000201, и в новом документе следующий новый номер - Лпл00000125
7 Джинн
 
04.05.18
15:35
ОбновитьНумерациюОбъектов
8 saaken
 
04.05.18
15:36
(0) создай нового пользователя
9 Джинн
 
04.05.18
15:37
(7) + после нее перезаписать последний правильный документ
10 Денис Прог
 
04.05.18
15:39
(7) делал
(9) и это тоже
11 Azverin
 
04.05.18
15:39
(7) не поможет
12 Денис Прог
 
04.05.18
15:39
(8) А пользователь причем тут?
13 Azverin
 
04.05.18
15:41
(10) фишка в том, что в платформе зашит поиск префикса по символам. "ЛП" и "Лпл" - первые символы префикса совпадают. Сам на этом собаку съел.
14 saaken
 
04.05.18
15:44
(12) возможно кэширование
15 Денис Прог
 
04.05.18
15:45
(13) то есть для платформы это одно и тоже?
16 Денис Прог
 
04.05.18
15:45
(14) Чистил, не помогло
17 Azverin
 
04.05.18
15:46
(15) Да. Мы переименовывали префикс - первую букву, и взлетело всё.
18 saaken
 
04.05.18
15:50
(16) не кэш чисти, а пользователя пересоздай
19 Azverin
 
04.05.18
15:52
(18) и как это поможет?

(15) после выравнивания префиксов, не забудьте сделать ОбновитьНумерациюОбъектов для метаданных (Платежное поручение исходящее).
20 saaken
 
04.05.18
15:53
(19) вам решение надо или теоретическое обоснование.
мне помогло
21 Azverin
 
04.05.18
15:54
(20) так бы сразу и сказал, что помогло)
теперь да, хочется понять почему?
22 Денис Прог
 
04.05.18
15:57
(19)

В общем сделал вот что:

1. Обработкой "УниверсальныеПодборИОбработкаОбъектов" проставил новый префикс ЛПО;
2. Создал новый документ и вручную его установил;
3. Сделал "ОбновитьНумерациюОбъектов";
4. Повторил шаг 2;

и в последующих документах мой префикс начал подставляться.

Как оно работает?))
23 Денис Прог
 
04.05.18
15:58
(20) сейчас, эксперимента ради, попробую
24 Azverin
 
04.05.18
16:04
(22) тогда получается, что и правда сначала ищется ранее введённый префикс, или же криво работает платформа.
25 Serg_1960
 
04.05.18
16:04
"Как оно работает?" - работает оно просто и примитивно :) Просто запомни: нельзя использовать префиксы, которые являются подмножеством других префиксов. Сложно сказал? Если сложно -
тогда читай (13) и последующий диалог до просветления :)
26 Azverin
 
04.05.18
16:06
(25) "которые являются подмножеством других префиксов" - бинго!
у нас были "ГК" и "ГКг" )))
27 Serg_1960
 
04.05.18
16:13
(24) Это старый баг, имхо, который ради совместимости не стали исправлять :)

(26) Чисто теоретически рассуждая, самый простой выход из неоднозначных ситуаций - использовать однородные префиксы одинаковой длины. В случае префиксов "ГК" и "ГКг",имхо, можно избежать конфликта, если "ГК" заменить на "ГК0". Ну, по крайней мере, на старых платформах можно было короткие префиксы добивать до нужной длины нулями...
28 YaFedor
 
04.05.18
16:19
Очевидно же, что строка ЛП0 меньше чем Лпл, поэтопу при применении префикса ЛП ищется максимальный номер с префиксом ЛП, а это Лпл0...х и потом он увеличивается на единицу

Можно попробовать префикс ЛПО, где последний символ это русская буква "о"
29 Денис Прог
 
04.05.18
16:20
(25) да не, понятно сказал. Просто думал что не может быть такого.
30 Денис Прог
 
04.05.18
16:20
Всем спасибо за обсуждение!
Тему можно считать закрытой.
31 Azverin
 
04.05.18
16:22
(30) так что с новым пользователем? - вроде не поможет.
32 Serg_1960
 
04.05.18
16:23
(29) Тогда вот Вам ссылка "Особенности работы механизма автонумерации" и Бог в помощь
https://its.1c.ru/db/metod8dev#content:1550:hdoc
33 Денис Прог
 
04.05.18
16:38
(31)
1. Создал нового пользователя;
2. Сделал новый документ и присвоил вручную префикс;
3. Новый документ с префиксом, который был до моих изменений. Наверное, в (25) и (13) и есть ответ. Ну и (32) для справки.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.