0
maxi0n
25.06.14
✎
10:23
|
Добрый день, подскажите пожалуйста как можно сделать нумерацию документа чтобы он начинался с заданного номера и дальше по порядку... Например был номер Д0000000049, а стал таким Д0000000060, а след Д0000000061... Как можно задать принудительно номер документа
|
|
1
websony
25.06.14
✎
10:30
|
Если речь идет о пользовательском режиме, то после "насильной" смены номера ,например с Д0000000049 на Д0000000060, следующий созданный документ и так будет иметь номер, следующий по порядку, т.е. Д0000000061
|
|
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.ПеренумероватьДокументНачинаяС(Документ, НомерДокумента);
КонецПроцедуры
где Документ - ссылка на документ, с которого надо начать перенумеровывать, НомерДокумента - строковый номер, с которого надо начать нумерацию(с учетом возможного префикса)...
Может и долго, зато точно работает)...
|
|