Имя: Пароль:
1C
1С v8
Своя генерация кода спарвочника
,
0 San335
 
25.05.21
08:52
Доброго времени суток!
Дайте подсказку в такой ситуации?
Есть справочник со строковым кодом. В нем пишется своя генерация кода. Шаблон кода [Префикс]-[СамКод].
При создании нового элемента,ищется максимальное значение кода из справочника запросом МАКСИМУМ(Спр.Код) и значение  СамКод = МАКСИМУМ(Спр.Код с отсечением префикса.)+1.
До значения 999 все ОК идет. После создается значение 1000, а дальше 1001 уже не создается,т.к.часть кода, которая вычисляется как максимум = 999.
Сори за кривое описание)
1 ДенисЧ
 
25.05.21
08:53
Формат(код, "ЧГ=")

ЗЫ. Очередная жертва егэ зачеркнуто неразрывного пробела
2 Dmitrii
 
гуру
25.05.21
08:57
Спрашивается - что мешало использовать платформенную нумерацию, ограничившись подстановкой нужного префикса. А платформа сама бы считала код.
3 San335
 
25.05.21
08:58
(1) И как формат поможет если максимум из запроса выбирается?
Вот пример кодов существующих элементов:
префикс1-001
префикс1-100
префикс1-999
префикс1-1000
При создании нового сгенерируется по-новой префикс1-1000, т.к. запросом по коду МАКСИМУМ = префикс1-999.
4 ДенисЧ
 
25.05.21
09:00
(3) Так вырезай свой кусок, приводи к числу и ищи максимум.
5 San335
 
25.05.21
09:03
(2) При стандатрной генирации помимо самого префикса и значения кода, остальная часть кода заполнялась нулями.
6 San335
 
25.05.21
09:04
(4) К числу в запросе? А,если вдруг часть кода руками кто-нить ZZZ например введет?
7 Kassern
 
25.05.21
09:06
(5) и чем вас не устроили нули в коде? Зато у вас фиксированная длинна кода. В печатных формах можете эти нули срезать, если уж так надо.
8 ДенисЧ
 
25.05.21
09:06
(6) Тогда эти руки положено оторвать и выкинуть. Да и вообще всю идею под корень нужно.
9 Dmitrii
 
гуру
25.05.21
09:09
Остаётся написать служебку руководству с рекомендацией уволить того дебила, который предложил такой механизм нумерации, вместе с тем, который эту ересь реализовал в конфигурации.
10 RomanYS
 
25.05.21
09:45
(3) Если хотите автоматической нумерации в 4 значащих цифры, то должно быть так:
префикс1-0001
префикс1-0100
префикс1-0999
префикс1-1000
11 San335
 
25.05.21
09:57
(7) Требование пользователя к внешнему виду кода
12 mikecool
 
25.05.21
10:01
(11) таки даже в списке можешь выводить без нулей, посмотри типовые - в них реализовано
13 Kassern
 
25.05.21
10:10
(11) выводите пользователю как ему надо, но храните коды как положено
14 San335
 
25.05.21
10:25
Благодарствую. Направили меня на мысль, чтобы и волки целы были, и овцы сыты и говнокода в 1С не было)
15 RomanYS
 
25.05.21
10:27
(11) А что за требования такие: "001" их устраивало, а "0001" нет?
16 San335
 
25.05.21
10:30
(15) Длина перфикса не фиксирована. Может код быть префикс1-превикс2-префикс3-001. Просто нужно, чтобы сама часть кода имела длину минимум 3 символа.
Т.е. допустимо
префикс1-превикс2-префикс3-001
префикс1-превикс2-префикс3-050
префикс1-превикс2-префикс3-1200


А вот например:
префикс1-превикс2-префикс3-0000001
префикс1-превикс2-префикс3-001001
префикс1-превикс2-префикс3-000009996
уже не допустимо.
17 El_Duke
 
гуру
25.05.21
10:39
(11) Чо ?
Пользователю не пофиг ли как выглядит код элемента в справочнике ?
18 mistеr
 
25.05.21
10:42
(16) Что за бред? В чем реально проблема?
19 big
 
25.05.21
10:44
ВОЮШМАТЬ!!!
20 Kassern
 
25.05.21
11:13
(16) зачем использовать код для этих целей? Используйте артикул, если уж так приспичило, не трогайте вы код справочника. Потом вам могут аукнуться ваши коды, когда длина следующего кода будет не доступна.
21 Kassern
 
25.05.21
11:14
(20) для пользователя, если уж так критично, можете как угодно реквизит обозвать на форме и написать свой алгоритм его заполнения.