Как получение номер документа без префикса в 1С. Функции НомерНаПечать(), ПолучитьНомерНаПечать()

Получить номер на печать очень просто, достаточно вызвать процедуру из общего модуля

Для современных конфигураций под управляемые формы работающих на БСП (УТ 11, БП 3, УНФ и т.д. ),  это делается так:

НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(НомерДокумента, Истина, Истина);

Описание процедуры:

Для конфигураций (УТ 10.3, БП 2.0) на обычных формах, эта процедура имеет следующий вид:

Номер = ОбщегоНазначения.ПолучитьНомерНаПечать(СсылкаНаОбъект);

Для Альфа — Авто 5

Номер = дкПолучитьНомерДляПечати(ЭтотОбъект);

где ЭтотОбъект ДокументОбъект или ДокументСсылка — документ, для которого нужно получить номер

Своя функция

Пример 1

// Функция - Возвращает номер без лидирующих нулей //
// Параметры: 
// Номер - Строка - Исходный номер документа 
// Префикс - Строка - Префикс, который нужно удалить 
// ДобавитьПрефикс - Булево - Добавляет префикс в результат 
// 
// Возвращаемое значение: 
// Строка - номер без нулей 
// 
Функция ПолучитьНомерДляПечати(Номер, Префикс, ДобавитьПрефикс = Ложь) 
	НомерДляПечати = СтрЗаменить(Номер,СокрЛП(Префикс),""); 
	Пока Лев(НомерДляПечати,1) = "0" Цикл 
		НомерДляПечати = Сред(НомерДляПечати,2); 
	КонецЦикла; НомерДляПечати = "" + ?(ДобавитьПрефикс,СокрЛП(Префикс), "") + НомерДляПечати; 
	Возврат НомерДляПечати; 
КонецФункции

Пример 2

Функция ПолучитьНомерДляПечати(Док) Экспорт
		
	НомерПолный = СокрЛП(Док.Номер);
	
	//Ищем первую цифру в номере
	НачалоНомера = "123456789";
	Для Индекс = 1 По СтрДлина(НомерПолный) Цикл 	
		Символ = Сред(НомерПолный, Индекс, 1);		
		Если СтрНайти(НачалоНомера, Символ) > 0 Тогда
			Возврат Сред(НомерПолный, Индекс);
		КонецЕсли;  	
	КонецЦикла;
	
	Возврат НомерПолный;
	
КонецФункции // ПолучитьНомерДляПечати()

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии