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