|
Обеспечить сквозную нумерацию 2 справочников | ☑ | ||
---|---|---|---|---|
0
azernot
06.12.12
✎
11:24
|
Существует 1С 8, в ней есть 2 справочника (предположим Контрагенты и Подразделения контрагентов). Из 1С данные этих справочников выгружаются в некую внешнюю систему, в которой оба этих справочника - одна таблица. Синхронизация осуществляется по коду.
Вопрос, какую методику предложили бы вы для организации сквозной нумерации 2 справочников в 1С? (интересует много разных). Справочники могут заводиться интерактивно, программно, загружаться из других систем и т.п. Никаких ограничений. |
|||
1
shuhard
06.12.12
✎
11:25
|
(0)ТЗ не полное,
не описан жизненный цикл |
|||
2
Cube
06.12.12
✎
11:26
|
(0) Подписка на событие ПриУстановкеНовогоКода...
|
|||
3
Широкий
06.12.12
✎
11:26
|
Выгружать с префиксами "К" и "П"
|
|||
4
YHVVH
06.12.12
✎
11:26
|
(0) программно?
|
|||
5
YHVVH
06.12.12
✎
11:27
|
код = уникальный идентификатор
|
|||
6
DrunkAnimal
06.12.12
✎
11:28
|
(0) по гуиду синхронизируйся
|
|||
7
azernot
06.12.12
✎
11:28
|
Уточнение: код именно числовой.
|
|||
8
samozvanec
06.12.12
✎
11:28
|
(0) префиксы поставь
|
|||
9
cw014
06.12.12
✎
11:29
|
Код во внешней системе цифровой. Там же единая таблица. Или химичить с UUID, или делать подписку на событие (см (2)), или отдельный реквизит для синхронизации с внешней прогой
|
|||
10
azernot
06.12.12
✎
11:30
|
(4) Вручную пользователя устанавливать коды заставлять нельлзя :) Так что, да, программно.
(2) Ну как бы момент установки кода я отследил, а дальше что? |
|||
11
Cube
06.12.12
✎
11:31
|
(7) И что? С каких пор в строке нельзя хранить число? В (2) решение.
|
|||
12
Heckfy
06.12.12
✎
11:31
|
Создай отдельный справочник СквознаяНумерация. Перед записью своих справочников добавляй туда элемент и записывай. В своем справочнике присваивай код из справочника СквознаяНумерация.
Как вариант. |
|||
13
Cube
06.12.12
✎
11:31
|
(10) "Ну как бы момент установки кода я отследил, а дальше что?" - а что дальше?
|
|||
14
azernot
06.12.12
✎
11:32
|
(12) Как вариант, согласен.
|
|||
15
Serg_1960
06.12.12
✎
11:33
|
"Для организации сквозной нумерации"... в 1С существуют нумераторы. Вот :)
|
|||
16
YHVVH
06.12.12
✎
11:33
|
(7) при синхронизации множ на кратное 10, в зависемости от размера справочников. или переделай нумерацию в самом маленько справочники от 100 000 например. в первом будет всегда меньше 100 000 а во втором больше и они буду разные.
|
|||
17
YHVVH
06.12.12
✎
11:34
|
и делать ничего не надо надо просто в одном создать первый элемент с кодом большого числа
|
|||
18
azernot
06.12.12
✎
11:34
|
(15) Да, это был бы выход.. но для справочников оно не работает..
|
|||
19
Cube
06.12.12
✎
11:35
|
(17) Тоже неплохой вариант.
|
|||
20
azernot
06.12.12
✎
11:36
|
(16) Тоже вариант. Но он с ограничениями на размер справочника, и есть элемент доверия пользователю (а что, если чьи-то шаловливые руки начнут менять нумерацию?)
|
|||
21
azernot
06.12.12
✎
11:37
|
(13) Ну дальше,откуда взять уникальный сквозной номер? Как-бы вопрос не в том, чтобы отследить момент установки кода.
|
|||
22
Cube
06.12.12
✎
11:37
|
azernot на (13) ответь
|
|||
23
Нуф-Нуф
06.12.12
✎
11:41
|
подписка. иниипите мозг честным людям
|
|||
24
azernot
06.12.12
✎
11:42
|
(23) Что подписка? Чем мне поможет сама по себе подписка?
|
|||
25
YHVVH
06.12.12
✎
11:42
|
(20) если начнут менять тебе уже ничего не поможет. ни один метод.
|
|||
26
Нуф-Нуф
06.12.12
✎
11:42
|
(23) если в подписке указать определенную процедуру - то поможет
|
|||
27
Cube
06.12.12
✎
11:43
|
(24) Встречный вопрос: а чем она не поможет?
|
|||
28
YHVVH
06.12.12
✎
11:43
|
(20) нумерация автоматически делай, код запрещай менять и все тут. если только программно не нехреновертят.
|
|||
29
Нуф-Нуф
06.12.12
✎
11:43
|
подпишись на событие, будь мужиком, блеать!
|
|||
30
azernot
06.12.12
✎
11:44
|
(26) Так вопрос-то как раз в том КАКУЮ процедуру там указать.
(25) Да, и вопрос в том, чтобы отслеживать кто-то менял и дальше поправлять некорректные дейсвтия пользователя. И вопрос, как это делать? По какой методике? |
|||
31
Нуф-Нуф
06.12.12
✎
11:45
|
1. в процедуре подписки выполнять запрос и находить последний код и +1
2. допсправочник сквозная нумерация. хотя оба решения отдают говвнокодом... |
|||
32
Undefined vs NULL
06.12.12
✎
11:45
|
почему для справочников нет нумераторов?
|
|||
33
Cube
06.12.12
✎
11:46
|
(30) "КАКУЮ процедуру там указать"
Угараешь? В процедуре находишь самый большой из существующих номеров, прибваляешь к нему единицу и суешь этот номер в устанавливаемый номер. Не? |
|||
34
Undefined vs NULL
06.12.12
✎
11:46
|
(31) РС еще можно прикрутить
|
|||
35
Нуф-Нуф
06.12.12
✎
11:46
|
(32) это вопрос или предъява?
|
|||
36
Нуф-Нуф
06.12.12
✎
11:47
|
кстати. а почему бы обоим справочникам не сделать префикс? решит проблемы при синхронизации с внешней системой
|
|||
37
Cube
06.12.12
✎
11:49
|
(36) См. (7) Если то про числовой префикс, то см. (16)
|
|||
38
Undefined vs NULL
06.12.12
✎
11:51
|
(35) вопрос, но не тебе лично
|
|||
39
YHVVH
06.12.12
✎
11:52
|
создай в одном из справочники элемент с большим кодом и все не прася, делов - 2 секунды.
|
|||
40
Reset
06.12.12
✎
11:53
|
Если достаточно непересечения, можно наверное обойтись достаточно тупым решением, в одном спровочнике с 1, во втором с макс/2 (с простой проверкой перед записью)
|
|||
41
Reset
06.12.12
✎
11:53
|
(40) ну то есть изначально создать в одном с кодом 1, во втором с кодом 5000000
|
|||
42
Нуф-Нуф
06.12.12
✎
11:54
|
(41) а если к 5000000 они подойдут через год?
|
|||
43
Reset
06.12.12
✎
11:54
|
(42) Тогда опа.
|
|||
44
Reset
06.12.12
✎
11:55
|
задать длину так, чтобы ее половины точно хватило на 100 лет
|
|||
45
Shandor777
06.12.12
✎
11:56
|
(38) Нумераторы для документов, а не для справочников. Кажется так :)
|
|||
46
azernot
06.12.12
✎
11:56
|
Итак, на текущий момент 3 варианта:
1. Допсправочник с наследованием нумерации из него. 2. Превентивное разделение нумерации (номера до Х - первый справочник, номера после Х - второй справочник) 3. В момент установки кода поиск максимального и увеличение на 1. От себя добавлю, что сейчас у меня применяется аналог 3-го варианта, но только поиск не запросом, а константа с максимальным номером. Какие ещё варианты сможем накидать? Все решения какие-0то неизящные, что-ли.. :) |
|||
47
Cube
06.12.12
✎
12:00
|
(46) Еще вариант: во внешней системе длина номера должна быть на 1 символ больше. Тогда в 1С используем стандартную нумерацию, а при выгрузке к контрагентам добавляем лидирующую 1, а к подразделениям лидирующую 2.
|
|||
48
Нуф-Нуф
06.12.12
✎
12:01
|
(47) вариант норм, только разлелители должны быть не 1 и 2, а 0 и 1
|
|||
49
azernot
06.12.12
✎
12:07
|
(47) Да, хороший вариант. Мне нравится.
|
|||
50
Undefined vs NULL
06.12.12
✎
12:20
|
(45) спасибо, кэп
|
|||
51
КонецЦикла
06.12.12
✎
12:22
|
(49) четное/нечетное число?
ммм... шо ж еще нафантазировать? |
|||
52
azernot
06.12.12
✎
14:26
|
(51) Это конечно тоже вариант, но боюсь его реализация очень уж будет напоминать вариант 3 (только в запросе я буду искать макисмальное чётный или нечётный код и увеличивать на 2).
|
|||
53
Базис
naïve
06.12.12
✎
14:32
|
Чётность или один идёт снизу диапазона, второй сверху.
|
|||
54
Кокос
06.12.12
✎
14:35
|
(0) заведи отдельный справочник. чисто с одним числовым полем кода и автонумераций. В каждый другой справочник добавь реквизит типа этого справочника. в "ПередЗаписью" если этот реквизит не заполнен, создай элемент нумерующего справочника и тупо туда впиши. Вот тебе и сковзная нумерация. А я вот не помню: нумераторы в 8рке есть? Просто если есть у меня не было повода ими воспользоваться.
|
|||
55
Heckfy
06.12.12
✎
14:36
|
(54) (12) :):):)
|
|||
56
Кокос
06.12.12
✎
14:37
|
(55) чукча не читатель, чукча писатель :)))
|
|||
57
Kreont
06.12.12
✎
14:38
|
Я за вариант (2), доступно да и делать пару минут
|
|||
58
Reset
06.12.12
✎
14:52
|
ПриУстановкеНовогоКода (если не переврал событие)
можно в одном спр домножать на 2 и прибавлять 1, а во втором просто домножать на 2. (это вариант реализации чет/нечет без (52) |
|||
59
Vitamax3
06.12.12
✎
15:02
|
(58)ну и на сколько карточек хватит длины номера из 11 символов?
|
|||
60
Обработка
06.12.12
✎
15:11
|
А вот если просто чет нечет для двух спр то как?
|
|||
61
КонецЦикла
06.12.12
✎
15:16
|
(60) Нет. Это слишком просто
Тут нужно приплести космические технологии |
|||
62
Reset
06.12.12
✎
15:19
|
(59) на 10^11/2 карточек в каждом справочнике (с) Кэп
|
|||
63
Reset
06.12.12
✎
15:21
|
(62) А не, походу прогнал Кэп.
Прав (59) |
|||
64
Reset
06.12.12
✎
15:22
|
Не умножать на 2, а проверять на чет в одном и при неоходимости увеличение на 1, а во втором на нечет и также увеличение на 1
|
|||
65
Jaffar
06.12.12
✎
15:44
|
(48) ну или 0 и 5 - аналог варианта 2 из (46)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |