|
Нумерация документа с заданного номера | ☑ | ||
---|---|---|---|---|
0
maxi0n
25.06.14
✎
10:23
|
Добрый день, подскажите пожалуйста как можно сделать нумерацию документа чтобы он начинался с заданного номера и дальше по порядку... Например был номер Д0000000049, а стал таким Д0000000060, а след Д0000000061... Как можно задать принудительно номер документа
|
|||
1
websony
25.06.14
✎
10:30
|
Если речь идет о пользовательском режиме, то после "насильной" смены номера ,например с Д0000000049 на Д0000000060, следующий созданный документ и так будет иметь номер, следующий по порядку, т.е. Д0000000061
|
|||
2
maxi0n
25.06.14
✎
10:39
|
Как это можно сделать программно, если кому не трудно приведите пример кода...
|
|||
3
Fedor-1971
25.06.14
✎
10:52
|
Например, так:
Если Число(Прав(ЭтотОбъект.Номер,2))<60 тогда ЭтотОбъект.Номер="Д0000000060"; КонецЕсли; только этот номер присвоится всем (!!!) документам с номером меньше 60. В (1) самое правильное решение, один раз меняем руками номер документа и дальше не паримся. |
|||
4
websony
25.06.14
✎
11:58
|
Например так:
В модуле менеджера документа : процедура ПеренумероватьДокументНачинаяС(ДокументСсылка,НовыйНомер) экспорт Префикс = ""; номер=1; Пока НЕ(сред(НовыйНомер,номер,1) >="0" и сред(НовыйНомер,номер,1) <="9") Цикл Префикс = Префикс + сред(НовыйНомер,номер,1); номер = номер +1; КонецЦикла; НомерЧисла = число(прав(НовыйНомер,номер)); ДлинаНомера = СтрДлина(НовыйНомер) - СтрДлина(Префикс); признакНачалаИзменений = ложь; Док = Документы.Документ1.Выбрать(); Пока Док.Следующий() Цикл Если признакНачалаИзменений = ложь Тогда Если Док.Ссылка = ДокументСсылка.Ссылка тогда признакНачалаИзменений = истина; иначе Продолжить; КонецЕсли; конецЕсли; ОбъектДок = Док.ПолучитьОбъект(); ОбъектДок.Номер = ВернутьНовыйНомер(Префикс,ДлинаНомера,НомерЧисла); ОбъектДок.Записать(); НомерЧисла = НомерЧисла+1; КонецЦикла; конецпроцедуры Функция ВернутьНовыйНомер(Префикс,ДлинаНомера,НомерЧисла) номер = строка(НомерЧисла) ; ДлинаНомера1 = ДлинаНомера - СтрДлина(номер); Для х =1 по ДлинаНомера1 Цикл номер = "0"+номер; КонецЦикла; возврат Префикс+номер; КонецФункции а в любой обработке в серверной функции вызываете : &НаСервереБезКонтекста Процедура ПеренумероватьНаСервере(Документ, НомерДокумента) Документы.Документ1.ПеренумероватьДокументНачинаяС(Документ, НомерДокумента); КонецПроцедуры где Документ - ссылка на документ, с которого надо начать перенумеровывать, НомерДокумента - строковый номер, с которого надо начать нумерацию(с учетом возможного префикса)... Может и долго, зато точно работает)... |
|||
5
maxi0n
25.06.14
✎
12:04
|
Спасибо большое
|
|||
6
YF
25.06.14
✎
12:04
|
(0) Зачем?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |