diff --git a/src/cf/CommonModules/узОбщийМодульСервер/Ext/Module.bsl b/src/cf/CommonModules/узОбщийМодульСервер/Ext/Module.bsl index 04bdd8b14..eae3790d1 100644 --- a/src/cf/CommonModules/узОбщийМодульСервер/Ext/Module.bsl +++ b/src/cf/CommonModules/узОбщийМодульСервер/Ext/Module.bsl @@ -268,10 +268,13 @@ КонецПроцедуры -Функция СобратьНазваниеДляПапки(Наименование, Код) +Функция СобратьНазваниеДляПапки(ЗНАЧ Наименование, ЗНАЧ Код) + Код = ""+Формат(Код,"ЧГ=0"); Шаблон = "#%1 %2"; - СокращенноеНаименование = Лев(Наименование, 40); + + СокращенноеНаименование = ПолучитьСокращенноеНаименованиеЗадачи(Наименование); + ОбработанноеНаименование = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(СокращенноеНаименование, ""); Результат = СтрШаблон(Шаблон, Код, ОбработанноеНаименование); @@ -279,6 +282,32 @@ КонецФункции +Функция ПолучитьСокращенноеНаименованиеЗадачи(НаименованиеЗадачи) + Перем СокращенноеНаименование; + + МассивПодстрок = СтрРазделить(НаименованиеЗадачи," "); + КоличествоСлов = МассивПодстрок.Количество(); + + ДлинаОдногоСлова = 10; + ДлинаСокращенногоНаименования = 30; + + СокращенноеНаименование = ""; + Для каждого пСлово из МассивПодстрок цикл + СловоДляНаименования = пСлово; + + Если СтрДлина(СловоДляНаименования) > ДлинаОдногоСлова Тогда + СловоДляНаименования = Лев(пСлово,ДлинаОдногоСлова) + "."; + Конецесли; + + СокращенноеНаименование = СокращенноеНаименование + СловоДляНаименования + " "; + Конеццикла; + + СокращенноеНаименование = Лев(СокращенноеНаименование,ДлинаСокращенногоНаименования); + СокращенноеНаименование = СокрЛП(СокращенноеНаименование); + + Возврат СокращенноеНаименование; +КонецФункции + Функция ЗначениеРеквизитаОбъекта(Ссылка, Реквизит) Экспорт Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, Реквизит); КонецФункции \ No newline at end of file