|
Автонумерация с префиксом | ☑ | ||
---|---|---|---|---|
0
Arutynov
02.04.13
✎
08:47
|
Надо чтобы при создании обработкой документа автонумерация шла с префиксом.
Пробовал вот так МАГ=Документы.ОтчетОРозничныхПродажах.СоздатьДокумент(); Маг.УстановитьНовыйНомер("М"); Пишет номер не уникальный. В базе все номера нормальные |
|||
1
mikecool
02.04.13
✎
08:49
|
"В базе все номера нормальные" - может конечно и нормальные
посмотреть какой номер генерится после Маг.УстановитьНовыйНомер("М"); и поискать такой же в базе |
|||
2
Arutynov
02.04.13
✎
08:50
|
Может кто-то знает что не так или еще способ?
|
|||
3
Serg_1960
02.04.13
✎
08:50
|
Забыл про дату. Где дата для пространства автонумерации? Или у тебя нумерация "сквозная" по всей базе?
|
|||
4
Siberia
02.04.13
✎
08:50
|
Из синтакс-помощника про УстановитьНовыйНомер():
Если дата - пустая, процедура установит номер в пределах периода соответствующего пустой дате. может дату сначала в документ занести? |
|||
5
Arutynov
02.04.13
✎
08:53
|
Поменял местами. Сначала дата потом установить. Пишет обычный номер
|
|||
6
Serg_1960
02.04.13
✎
08:53
|
И вот ещё: в актуальных конфигурациях номер (как и код) присваиваются при записи объекта. Мелочь, но...
|
|||
7
Arutynov
02.04.13
✎
08:54
|
попробовал только что перед записью.. делает тоже самое. Обычный номер
|
|||
8
Siberia
02.04.13
✎
08:57
|
может вот таким событием воспользоваться:
ПриУстановкеНовогоНомера(<СтандартнаяОбработка>, <Префикс>) и отменить стандартную обработку? |
|||
9
Arutynov
02.04.13
✎
09:00
|
||||
10
Arutynov
02.04.13
✎
09:00
|
пробовал
|
|||
11
Serg_1960
02.04.13
✎
09:02
|
Мне доставляет удовольствие накаждый чих говорить "Будь здоров" :)
v8: Как работает метод УстановитьНовыйНомер("Префикс") v8: Как установить новый номер документа с префиксом |
|||
12
Serg_1960
02.04.13
✎
09:07
|
Маг = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент();
Маг.Дата = ТекущаяДата(); Маг.УстановитьНовыйНомер("М"); Маг.Записать(РежимЗаписиДокумента.Запись); Сообщить(Маг.Номер); |
|||
13
Arutynov
02.04.13
✎
09:12
|
У меня именно так и сделано. Сообщает 00000000212
|
|||
14
Siberia
02.04.13
✎
09:14
|
(13) А тип номера у документа строковый?
|
|||
15
Arutynov
02.04.13
✎
09:17
|
Да стандартный
|
|||
16
Serg_1960
02.04.13
✎
09:30
|
Подписка на событие ПриУстановкеНовогоНомераДокумента "сносит" твой префикс. Первой же строкой при вызове процедуры ДобавитьПрефиксОрганизации(ДокументОбъект, Префикс):
Процедура ДобавитьПрефиксОрганизации(ДокументОбъект, Префикс) Экспорт // Если в документе нет реквизита "Организация" или для организации не задан префикс, // то используем пустой префикс, иначе используем префикс организации. Префикс = "0"; ... |
|||
17
Arutynov
02.04.13
✎
09:39
|
То же самое.
|
|||
18
Arutynov
02.04.13
✎
09:41
|
Процедура ПриУстановкеНовогоНомераДокументаПриУстановкеНовогоНомера(Источник, СтандартнаяОбработка, Префикс) Экспорт
ОбщегоНазначения.ДобавитьПрефиксОрганизации(Источник, Префикс); ОбщегоНазначения.ДобавитьПрефиксУзла(Префикс); КонецПроцедуры Процедура ДобавитьПрефиксОрганизации(ДокументОбъект, Префикс) Экспорт МетаданныеДокумента = ДокументОбъект.Метаданные(); Префикс = "М"; Конецпроцедуры |
|||
19
Arutynov
02.04.13
✎
09:42
|
Я что-то не правильно делаю
|
|||
20
Arutynov
02.04.13
✎
09:42
|
!
|
|||
21
Arutynov
02.04.13
✎
09:49
|
Процедура ПриУстановкеНовогоНомераДокумента(ДокументОбъект, СтандартнаяОбработка, Префикс) Экспорт
ДобавитьПрефиксОрганизации(ДокументОбъект, Префикс); Конецпроцедуры Процедура ДобавитьПрефиксОрганизации(ДокументОбъект, Префикс) Экспорт МетаданныеДокумента = ДокументОбъект.Метаданные(); Префикс = "М"; Конецпроцедуры |
|||
22
Arutynov
02.04.13
✎
09:50
|
Что надо дописать.
|
|||
23
Arutynov
02.04.13
✎
09:50
|
Что не так
|
|||
24
Arutynov
02.04.13
✎
09:51
|
Вот сюда ничего дописать не надо ?
Маг = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент(); Маг.Дата = ТекущаяДата(); Маг.УстановитьНовыйНомер("М"); Маг.Записать(РежимЗаписиДокумента.Запись); Сообщить(Маг.Номер); |
|||
25
Trotter
02.04.13
✎
09:51
|
(24) Ты случайно эо всё не на клиенте пытаешься провернуть ?
|
|||
26
Arutynov
02.04.13
✎
09:52
|
У меня бухгалтерия корп 2.0 толстый клиент
|
|||
27
Trotter
02.04.13
✎
09:53
|
&НаСервере или на &НаКлиенте ?
Хотя это наверное роли не играет ?) |
|||
28
Arutynov
02.04.13
✎
09:53
|
у меня нет такого. У меня не тонкий
|
|||
29
Arutynov
02.04.13
✎
10:04
|
и так попробовал http://www.1c-pro.ru/topic44934.html
|
|||
30
Serg_1960
02.04.13
✎
10:17
|
Надо внедриться в типовой механиз автонумерации. Способов - много. Вот, например, только что не долго думая написал "дополнение" для типовой процедуры типовой конфигурации :))
Процедура ПриУстановкеНовогоНомераДляДокументов(Источник, СтандартнаяОбработка, Префикс) Экспорт ЗнаюЧтоПишуБыдлоКодНоМнеДоФени = Префикс; ДобавитьПрефиксОрганизации(Источник, Префикс); ДобавитьПрефиксУзла(Префикс); Если ЗначениеЗаполнено(ЗнаюЧтоПишуБыдлоКодНоМнеДоФени) Тогда Префикс = ЗнаюЧтоПишуБыдлоКодНоМнеДоФени + Префикс КонецЕсли; КонецПроцедуры |
|||
31
Serg_1960
02.04.13
✎
10:18
|
:)
|
|||
32
Arutynov
02.04.13
✎
10:24
|
мне нельзя внедрятся в конфу
|
|||
33
Serg_1960
02.04.13
✎
10:50
|
Ну тогда сам генерируй номер. Определи по метаданным период автонумерации; запросом получи максимальный номер; выдели и увеличь на единицу цифровую часть номера... Долго и муторно. Но если низя, но очень хочетца...
Внимание: быдлокод детектед! Маг = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент(); Маг.Дата = ТекущаяДата(); РИБ = ПараметрыСеанса.ИспользованиеРИБ; ПрефиксУзла = ПараметрыСеанса.ПрефиксУзлаРаспределеннойИнформационнойБазы; ПараметрыСеанса.ИспользованиеРИБ = Истина; ПараметрыСеанса.ПрефиксУзлаРаспределеннойИнформационнойБазы = "М" + ПрефиксУзла; Маг.Записать(РежимЗаписиДокумента.Запись); ПараметрыСеанса.ИспользованиеРИБ = РИБ; ПараметрыСеанса.ПрефиксУзлаРаспределеннойИнформационнойБазы = ПрефиксУзла; Сообщить(Маг.Номер); |
|||
34
Reset
02.04.13
✎
10:54
|
Вот тут имхо собака порылась (14)
Числовой поди номер-то |
|||
35
Serg_1960
02.04.13
✎
10:55
|
(34) Ведущие нули есть - не числовой, строчный
|
|||
36
Reset
02.04.13
✎
10:56
|
(35) Точно)
|
|||
37
Reset
02.04.13
✎
10:58
|
Маг = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент();
Маг.Дата = ТекущаяДата(); Маг.УстановитьНовыйНомер("М"); Сообщить(Маг.Номер); // если здесь с префиксом Маг.Записать(РежимЗаписиДокумента.Запись); Сообщить(Маг.Номер); // а здесь нет // то (16) :) |
|||
38
Reset
02.04.13
✎
10:59
|
опять фигню сказал.
Ладно, самоустраняюсь :) |
|||
39
Arutynov
02.04.13
✎
12:30
|
Спасибо всем помогла (33)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |