Функция Преобразование Строки Без Пробелов(СтрокаБезПробелов)
Функция ПреобразованиеСтрокиБезПробелов в Строку с пробелами с разделением по Заглавным буквам.
ОКОНЧАТЕЛЬНАЯ ВЕРСИЯ!
Теперь с воможностью добавления исключений, которые не надо преобразовывать в нижний регистр (НДС, ГТД…). Вы можете добавить свои исключения в массив исключений.
В строке без пробелов может быть неорганиченное количество РАЗНЫХ Исключений (если, нпример, НДС повторяется в строке 2 раза функция преобразует вторую НДС в нижний регистр).
- Описание
- Подробнее
Описание
Эта функция будет полезна при создании элементов формы программно.
Например, нужно при открытии обработки в какой-либо конфигурации создать в форме обработки элементы всех реквизитов справочника «Номенклатура». Названия реквизитов справочника указаны строками без пробелов, а в форме хотелось бы видеть заголовки элементов «нормально» с пробелами.
Не реализована ещё в этой функции проблема исключений. таких , как например, НДС или ГТД, которые не надо преобразовывать в нижний регистр. Позже доработаю.
/////////////////////////
&НаСервере
Функция ПреобразованиеСтрокиБезПробелов(СтрокаБезПробелов)
СтрокаСПробелами = Лев(СтрокаБезПробелов,1);
Для к = 2 По СтрДлина(СтрокаБезПробелов) Цикл
ТекущийЗнак = Сред(СтрокаБезПробелов,к,1);
КодСимвола = КодСимвола(ТекущийЗнак);
Если (КодСимвола > 64 И КодСимвола < 91) Или (КодСимвола > 1039 И КодСимвола < 1072) Тогда
СтрокаСПробелами = СтрокаСПробелами + » » + НРег(ТекущийЗнак);
Иначе
СтрокаСПробелами = СтрокаСПробелами + ТекущийЗнак;
КонецЕсли;
КонецЦикла;
Возврат СтрокаСПробелами;
КонецФункции
&НаСервере
Процедура ДобавитьЭлемент()
РеквизитыНоменклатуры = Метаданные.Справочники.Номенклатура.Реквизиты;
КоличествоРеквизитов = РеквизитыНоменклатуры.Количество();
мРекв = Новый Массив;
Для Каждого РеквизитНоменклатуры Из РеквизитыНоменклатуры Цикл
РеквизитИмя = РеквизитНоменклатуры.Имя;
РевизитТип = РеквизитНоменклатуры.Тип;
НовыйРеквизит = Новый РеквизитФормы(РеквизитИмя,РевизитТип,,РеквизитИмя);
мРекв.Добавить(НовыйРеквизит);
КонецЕсли;
КонецЦикла;
ЭтаФорма.ИзменитьРеквизиты(мРекв);
Для каждого Элемент Из мРекв Цикл
НовыйЭлемент = Элементы.Добавить(«Поле»+Элемент.Имя,Тип(«ПолеФормы»), Элементы.Группа);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = Элемент.Имя;
НовыйЭлемент.Доступность = Истина;
НовыйЭлемент.Заголовок = ПреобразованиеСтрокиБезПробелов(Элемент.Имя);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ДобавитьЭлемент();
КонецПроцедуры
////////////////////////
