|
Как лучше реализовать раздельную нумерацию документа для разных видов операций | ☑ | ||
---|---|---|---|---|
0
Mashap
22.08.12
✎
18:39
|
Как лучше реализовать раздельную нумерацию для разных видов операций одного документа. Т.е. есть документ с разными видами операции, по одному виду операции нумерация в пределах года, по второму - в пределах дня, также разные маски номера: где-то нужен префикс организации, где-то не нужен, где-то нужна маска дня, где-то не нужна. Спасибо.
|
|||
1
Fragster
гуру
22.08.12
✎
18:41
|
ПриУстановкеНовогоНомера
|
|||
2
Fragster
гуру
22.08.12
✎
18:41
|
ПередЗаписью
|
|||
3
Fragster
гуру
22.08.12
✎
18:41
|
как угодно
|
|||
4
Aleksey
22.08.12
✎
18:41
|
(1) Не взлетит
|
|||
5
Fragster
гуру
22.08.12
✎
18:42
|
(4) почему? сделать префикс равный длине номера...
|
|||
6
Aleksey
22.08.12
✎
18:42
|
Для начало нужно убрать "по одному виду операции нумерация в пределах года, по второму - в пределах дня,". А остальное реализуемо, даже в типовой, например фактуры на аванс, или разная нумерация в зависимости от подразделения в БП КОРП
|
|||
7
Mashap
22.08.12
✎
18:42
|
а нумерация одного в пределах дня, а второго в пределах года?
|
|||
8
Aleksey
22.08.12
✎
18:42
|
(5) И?
|
|||
9
Mashap
22.08.12
✎
18:43
|
а если завести отдельный реквизит? Программно искать последний номер, присваивать его?
|
|||
10
Mashap
22.08.12
✎
18:43
|
присваивать следующий?
|
|||
11
ЧашкаЧая
22.08.12
✎
18:43
|
по одному виду операции нумерация в пределах года, по второму - в пределах дня
Только отключать проверку уникальности номеров - соответственно самостоятельно следить, соответственно тормоза. |
|||
12
happysan
22.08.12
✎
18:45
|
||||
13
Mashap
22.08.12
✎
18:46
|
(12) Т.е. дополнительный реквизит...
|
|||
14
happysan
22.08.12
✎
18:47
|
(13)лучше не придумаешь
|
|||
15
Mashap
22.08.12
✎
18:48
|
(14) могут быть проблемы типа, одновременно нажали кнопку записать, присвоились одинаковые номера документов, контролировать уникальность и т.д. Будет тормозить..
|
|||
16
happysan
22.08.12
✎
18:57
|
(15)тормозить будет в любом случае
|
|||
17
GenV
22.08.12
✎
18:59
|
(0) Разный префикс номера для разных операций. В пределах дня - содержит дату, в пределах года - содержит год. Ничего не тормозит.
|
|||
18
Mashap
22.08.12
✎
19:01
|
(18) Ну вот я написала нечто похожее, но я не знаю - будет ли такое работать. Изменения для процедуры "ПриУстановкеНовогоНомера":
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ДоговорУправленческий") Тогда Если Источник.ВидОперации = Перечисления.ВидыОперацийДоговорУправленческий.Общий Тогда ДобавитьПрефиксОрганизации(Источник, Префикс); КонецЕсли; Если Источник.ВидОперации = Перечисления.ВидыОперацийДоговорУправленческий.Курсовой Тогда День =""+ Строка(День(Источник.Дата)); Если СтрДлина(День) = 1 Тогда День = "0"+День; КонецЕсли; Месяц = Строка(Месяц(Источник.Дата)); Если СтрДлина(Месяц) = 1 Тогда Месяц = "0"+Месяц; КонецЕсли; Год = Строка(Год(Источник.Дата)); Префикс = ""+День+"/"+Месяц+"/"+Год; КонецЕсли; Если Источник.ВидОперации = Перечисления.ВидыОперацийДоговорУправленческий.ДоговорСчет Тогда День =""+ Строка(День(Источник.Дата)); Если СтрДлина(День) = 1 Тогда День = "0"+День; КонецЕсли; Месяц = Строка(Месяц(Источник.Дата)); Если СтрДлина(Месяц) = 1 Тогда Месяц = "0"+Месяц; КонецЕсли; Префикс = ""+День+"/"+Месяц; КонецЕсли; КонецЕсли; |
|||
19
GenV
22.08.12
✎
19:02
|
(18) Буквы разные добавь для разных операций иначе пересекутся номера. И можно использовать функцию Формат для получения префикса по дате.
|
|||
20
GenV
22.08.12
✎
19:03
|
19+ буквы в начало префикса
|
|||
21
Mashap
22.08.12
✎
19:04
|
работает как-то криво, перескакивают номера через один.. сейчас.
|
|||
22
pumbaEO
22.08.12
✎
19:04
|
Если дату поменяют, что будешь делать?
|
|||
23
GenV
22.08.12
✎
19:05
|
(22) Очищать номер
|
|||
24
Mashap
22.08.12
✎
19:06
|
(23) как?
|
|||
25
Mashap
22.08.12
✎
19:06
|
(23) в какой момент в какой процедуре?
|
|||
26
Fragster
гуру
22.08.12
✎
19:07
|
(18) префиксы хорошо бы одной длины. ну и разделение префиксов по виду операции
|
|||
27
GenV
22.08.12
✎
19:07
|
(24) Номер = "" ) Как же еще )
|
|||
28
Mashap
22.08.12
✎
19:07
|
(22) да, это очевидно
|
|||
29
GenV
22.08.12
✎
19:07
|
(25) ПриИзмененииДаты если не ошибаюсь
|
|||
30
Mashap
22.08.12
✎
19:07
|
(27) думала, вы говорите про перескакивание номеров - в чем ошибка - не понимаю.
|
|||
31
Mashap
22.08.12
✎
19:08
|
(29) про изменение даты понятно, спасибо.
|
|||
32
Mashap
22.08.12
✎
19:10
|
Делаю один документ с операцией 1, сохраняю. Делаю второй документ с операцией 2, сохраняю. У первого: О0000001, у второго О0000003.
Как бороться? |
|||
33
GenV
22.08.12
✎
19:10
|
(30) Номер 20/1200001 и 20/12/120001 - для программы общие, т.к. начало общее. Добавь букву в начала, самый простой способ различать их. Или единый префикс вида ГГГГ0000, ГГГГММДД, где год будет вначале, потом месяц, потом день.
|
|||
34
Mashap
22.08.12
✎
19:10
|
(32) не так. Вот так: Делаю один документ с операцией 1, сохраняю. Делаю второй документ с операцией 1, сохраняю. У первого: О0000001, у второго О0000003.
Как бороться? |
|||
35
Mashap
22.08.12
✎
19:12
|
да, добавила в начало для каждой операции по одному символу. Вот так теперь:
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ДоговорУправленческий") Тогда Если Источник.ВидОперации = Перечисления.ВидыОперацийДоговорУправленческий.Общий Тогда ДобавитьПрефиксОрганизации(Источник, Префикс); Префикс = "О"+Префикс; КонецЕсли; Если Источник.ВидОперации = Перечисления.ВидыОперацийДоговорУправленческий.Курсовой Тогда День =""+ Строка(День(Источник.Дата)); Если СтрДлина(День) = 1 Тогда День = "0"+День; КонецЕсли; Месяц = Строка(Месяц(Источник.Дата)); Если СтрДлина(Месяц) = 1 Тогда Месяц = "0"+Месяц; КонецЕсли; Год = Строка(Год(Источник.Дата)); Префикс = ""+День+"/"+Месяц+"/"+Год; Префикс = "К"+Префикс; КонецЕсли; Если Источник.ВидОперации = Перечисления.ВидыОперацийДоговорУправленческий.ДоговорСчет Тогда День =""+ Строка(День(Источник.Дата)); Если СтрДлина(День) = 1 Тогда День = "0"+День; КонецЕсли; Месяц = Строка(Месяц(Источник.Дата)); Если СтрДлина(Месяц) = 1 Тогда Месяц = "0"+Месяц; КонецЕсли; Префикс = ""+День+"/"+Месяц; Префикс = "С"+Префикс; КонецЕсли; КонецЕсли; |
|||
36
Mashap
22.08.12
✎
19:16
|
(33) как бороться в пределах дня/в пределах месяца?
|
|||
37
Mashap
22.08.12
✎
19:18
|
Последовательно создавала документы:
1. вид операции 1 2. вид операции 2 3. вид операции 3 4. вид операции 1 Получила такие номера: 1. О00000001 2. К22/08/2 3. С22/08001 4. О00000004 Что делать? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |