Имя: Пароль:
1C
1С v8
Общий нумератор для разных справочников
,
0 Asmody
 
17.04.12
16:46
Хочется для нескольких справочников сделать общий нумератор с поддержкой уникальности. И так, чтобы минимум кода было. Что-то ничего адекватного в голову не приходит.
1 Asmody
 
17.04.12
16:47
т.е. аналог нумератора документов, только для справочников
2 SpellKeeper
 
17.04.12
16:51
Вопрос, что называть минимумом.
Вот вариант.
В данном случае понятно, что код надо вручную считать.
В общем модуле делаешь процедуру, где в запросе делаешь выборку кода из всех нужных справочников с поиском максимума.
К результату прибавляешь единицу - получаешь новый код.
Если код строковый, то необходимо сделать переводы из строки в число.
Собственно, не так уж и много кода.
3 SpellKeeper
 
17.04.12
16:52
Процедуру вызываешь в процедуре ПередЗаписью.
4 vmv
 
17.04.12
16:53
документооборот - подсистема нумерации, сложновата, но позволяет строить нумераторы как между классами данных, там и с включением в перфикс доп данных(код подразделения, объекта, размера сисек секретарши и т.д.)
5 Asmody
 
17.04.12
17:16
(2) (4) не, это жуть какая-то…
6 Asmody
 
17.04.12
17:18
задачка-то элементарная, называется «инвентарные номера» для внутренней системы учёта. только эти номера лепятся на всё подряд: от системников до «коней с крыльями». городить справочник «ИнвентарнаяЕдиница» что-то нет желания
7 MRAK
 
17.04.12
17:19
(0) подписку на событие "ПриУстановкеНовогоКода" для СправочникОбъект.
8 MRAK
 
17.04.12
17:19
(6) а здесь я все-таки предпочел бы РС
9 MRAK
 
17.04.12
17:20
+ хотя можно и совместить.
10 Asmody
 
17.04.12
17:21
(7) как вариант… только всё равно: следующий либо хранить, либо вычислять…
11 MRAK
 
17.04.12
17:22
(10) ну так совмести с РС. Заодно потом можно все это безобразие во всякие отчеты выводить
12 vmv
 
17.04.12
17:25
(6) Справочники "Инвестиции", "НематериальныеАктивы", "Основные Средства" с присвоением внутреннего иныентарного с момента покупки до списания?

Ну да либо РС, либо подписка. верно сказано в подписке писать в РС:

- Измерение "ИнвентарныйОбъект"
составной тип: "Инвестиции", "НематериальныеАктивы", "Основные Средства", либо тип объявить характеристкой, а сами типы в ПВХ, чтобы не проводить реструктуризацию регистра
- Ресур "ИнвНомер" тип: число, строка
13 Kreont
 
17.04.12
17:27
(0) если только для внутр.потребностей тогда главное уникальность а не то что сразу большой будет номер, можно просто разделить префиксами (цифровыми):
Инвестиции: 10000000000
НематериальныеАктивы:20000000000
Номенклатура:30000000000
и т.п.
14 MRAK
 
17.04.12
17:34
(12) +100, воот.
(0) посмотри, как в типовой, тойже БП учет инв. номеров по ОС сделан
15 GenV
 
17.04.12
17:36
Можно сделать как отдельный справочник - типа штрих-кодов.
16 Vladal
 
17.04.12
17:36
(3) В подписке, не?
17 MRAK
 
17.04.12
17:37
(15) чем справочник лучше РС? Кстати, в УТ шрихкоды в РС
18 trad
 
17.04.12
17:38
Я бы сделал на РС. В общих чертах:

измерение - ИДНумератора (можно типа строка) для перспективы заводить всякие разные нумераторы;
ресурс - Номер;

В модуле менеджера РС одну простенькую функции получения следующего номер по ИД с блокировкой в транзакции для изменения. В ней же установка номер+1
И вызов этой функции в ПередЗаписью объекта если у этого объекта Номер еще не присвоен.

Но это только последовательная нумерация, без контроля уникальности.
Если с контролем уникальности, то в РС нужно добавить измерение типа ЛюбаяСсылка.
19 Vladal
 
17.04.12
17:38
Ну и отработать вариант, когда N пользователей, хотя, нет, N - мало, возьмём Z пользователей, одновременно будут записывать элменты разных справочников, ну или одного, а попутно робот из задания тоже будет что-то там писать в какой-то справочник.
20 Vladal
 
17.04.12
17:39
Asmody, ну вот меня раздирает любопытство праздное - где такое применить?
21 GenV
 
17.04.12
17:40
(17) Я не говорю лучше. Элемент справочника можно вручную выбрать.
22 Vladal
 
17.04.12
17:44
(21) Да и записть в РС тоже...
23 Vladal
 
17.04.12
17:45
*запись
24 GenV
 
17.04.12
17:45
(22) Да, но уже не минимальным кодом.
25 Asmody
 
17.04.12
17:47
(20) ну в (6) же
26 Bober
 
17.04.12
17:59
новый справочник. 1 реквизит: вид объекта(управляет префиксом нового кода объекта)
- записываешь объект.
- получаешь его код без префикса

решение с РС тебя не спасет, если параллельно будет идти вызов.
27 nbIx
 
17.04.12
18:05
Я бы извратился.
Создал бы новый справочник для нумерации. При записи этих двух справочников, добавлял бы новый элемент в этот справочник с таким же кодом.
Ну дальше все понятно.
28 zva
 
17.04.12
18:20
Я бы так сделал:
Допустим 5 видов справочников.
Обработкой изменить нумерацию существующих:
у первого типа номера 5n, у второго 5n+1,.. у пятого 5n+4
Дальше стандартный механизм присвоения нового номера, только вместо 1 прибавляеся 5.
29 catena
 
17.04.12
18:24
(15)Справочник сам будет новый номер создавать. Плюс, можно назначить префикс нумерации разным группам объектов и вести все номера одним справочником :) Вычислять ничего не надо - только создавать элемент и присваивать его код своему объекту.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший