Имя: Пароль:
1C
1С v8
Нужен свой нумератор для договоров
,
0 badboychik
 
13.10.11
17:35
Как лучше сделать автонумерацию договоров, чтоб номера:
1) начинались каждый месяц заново
2) для каждого склада/подразделения были свои
1 mikecool
 
13.10.11
17:42
УстановитьНовыйНомер и придумать алгоритм формирования
2 mikecool
 
13.10.11
17:43
а вообще - реквизит Код оставить в покое и формировать Номер
а вообще - пусть канцелярия сама нумерует
3 Reset
 
13.10.11
18:06
а) Завести Роль - Нумератор, дать ее отвественному пользователю, пусть заводит договара и фиксирует в тетрадке.
б) Завести периодический регистр периодичностью месяц с измерением Подразделение и ресурсом МаксНомер
в) что-то менее бредовое, которое мне к вечеру в голову уже не приходит
4 badboychik
 
13.10.11
18:19
>> а вообще - пусть канцелярия сама нумерует
>> Завести Роль - Нумератор, дать ее отвественному пользователю, пусть заводит договара и фиксирует в тетрадке.

Да ёптыть, от этого и хотим уйти!

А периодический регистр сведений это идея.. и как я не додумался сам :) Голова не тем забита щас
5 badboychik
 
13.10.11
18:22
Код я и не трогаю, не так глуп )) Есть отдельный реквизит. Вапще у нас договора сильно прокачаны всякими доп.реквизитами )
6 Nagaru
 
13.10.11
18:25
Так а зачем регистр-то? Делаешь запрос по договорам текущего подразделения. Выбираешь максимальный, прибавляешь единичку, устанавливаешь реквизит.
7 badboychik
 
13.10.11
18:27
>> прибавляешь единичку

Ага щаз. Номер "Д 04/32(Кр)", как прибавить единичку с учетом месяца и офиса?
8 Пришел в тапках
 
13.10.11
18:29
Завести человека-негра и пусть сам вручную "формирует" ))) Хотя может тебя для этого и выбрали? )))
9 Nagaru
 
13.10.11
18:29
А как он формируется в данном случае?
10 Nagaru
 
13.10.11
18:32
Просто можно же сделать так: все префиксы в начале,а в конце несколько символов для номера. Собственно если так и есть, то для одного префикса всегда можно получать максимальный номер и регистр будет уже не нужен, если же нумерация только в таком виде, как ты указал, то надо смотреть уже что целесообразнее, разбирать строку на составляющие или хранить в регистре последний номер по подразделению
11 acsent
 
13.10.11
18:33
В документообороте есть такое
12 badboychik
 
13.10.11
18:39
Д - буква просто
04 - месяц
32 - порядковый номер
(Кр) - код офиса где договор создан
13 badboychik
 
13.10.11
18:42
не, периодический регистр оптимальнее, нафик разбор... Офис - измерение, порядковый номер - ресурс.

Запрос на текущую дату с текущим офисом даст уже готовый номер, если договор сохранен, регистр обновляем новым номером. При помечании на удаление, удаляем запись регистра. Все норм!
14 vmv
 
13.10.11
18:49
1. в типовой украинской бух или УПП смотри нумерацию налоговых накладных - меня устраивает, хотя докопаться можно до всего.

эту же техлогию размножь на договора, чтобы не ломать глобальные модули с их нумератораторам - создать свои обрабтчики ПередЗаписьюДоговора(Источник, ...) и ПриЗаписиДоговора(Источник,...) в которые запихнуть методы своей нумерации, которая пошлет побоку типовые, но никакак не будет "мешать" при обновлениях.

Эта все - можешь идти за пивом
15 vmv
 
13.10.11
18:52
Периодидический регистр сведений в качестве нубератора - ета бред, так эта святлая идея рано или поздно, скорее рано, потянет за собой кучу проблем, костылей, гемора и прочих прелестей восторженного специалиста по ублажению чаяний ненасытных теток-канцелярщ)
16 badboychik
 
13.10.11
19:03
(14) ну я так и хочу сделать, а глобальные модули мне не нужны, только в договор функции вставить и все. А про обновления речь не идет уже года 3 )))
17 vmv
 
13.10.11
19:09
(16) хрена в модуль договора или модули форм договора вставлять что-то при такой постановке задачи - нравиться секс с обновлениями потом?
18 vmv
 
13.10.11
19:10
даже если договор самописный, даже есть супер-пупер - эта задача решается на подписке
19 badboychik
 
13.10.11
19:20
(17) да нет никаких обновлений ...и не будет
20 Reset
 
13.10.11
19:28
(6) Потроллю: А зачем вообще периодические регистры нужны? Достаточно ведь непериодического, выбираешь запись с максимальной датой и все.
21 Reset
 
13.10.11
19:45
(19) Вообще 2 стратегически разных подхода:
а) Запросом с разноякими ограничениями выбирается "максимальный" номер, выдается номер+1
минусы
- как правило, медленней (чем б)
- после получения нового номера его нужно немедленно записать (иначе двум процессам будет выдан один номер = задвоение)
плюсы
- отсутствие дополнительных структур хранения
б) Текущий максимальный номер хранится в каком-л хранилище, при необходимости содержимое увеличивается на 1 и выдается номер
минусы
- необходимо иметь это хранилище как структуру данных
- при использовании в транзакциях неоходимо учитывать, что изменение номера может откатаить при откате оных)
плюсы
- быстрое получение номера
- гарантируется (ну условно) незадвоение номеров, даже если выданный окажется невостребованным

"Дыры" в нумерации возможны в обоих вариантах, во втором потенциально больше.
22 Reset
 
13.10.11
19:48
+(21) платформенный УстановитьНовыйКод/Номер работает по второму варианту (это имхо, свечку не держал)
23 Nagaru
 
14.10.11
11:41
(20) Бессмысленный троллинг, в данном случае я лишь говорил о том, что лишняя таблица может не иметь смысла, если вводится малое количество договоров, то нет необходимости нагружать SQL лишними данными. Вот и все. Здесь с одной стороны быстродействие, с другой - размеры базы и в данном лучае надо просто выбрать что важнее для этой задачи и исходя из этого решать, нужен тут регистр или нет.