1С 8.3 Получить синоним из идентификатора
Данные > Примеры кода 1С > 1С 8.3 Форма, элементы
Перейти в раздел примеры кода 1С 8.3:

В 1С:Предприятие 8.3 платформа сама умеет формировать «читаемые» синонимы из идентификаторов (например, из СуммаБезНДС → Сумма без НДС). Но если нужно сделать это вручную в коде, можно воспользоваться готовыми приёмами. Пример: СуммаЗадолженностиКонтрагента → Сумма задолженности контрагента.
Когда применять:
- Для генерации заголовков колонок в ТаблицеЗначений
- Для автоматического формирования подписей на формах
- Для удобного отображения данных в отчетах
Функция разбивает строку по заглавным буквам и формирует синоним:
Функция СформироватьСиноним(ИмяРеквизита) Экспорт
Перем Синоним, Символ, ПредСимвол, СледСимвол;
Синоним = ВРег(Сред(ИмяРеквизита,1,1));
ДлинаСтроки = СтрДлина(ИмяРеквизита);
Для i = 2 По ДлинаСтроки Цикл
Символ = Сред(ИмяРеквизита, i, 1);
ПредСимвол = Сред(ИмяРеквизита, i-1, 1);
СледСимвол = ?(i < ДлинаСтроки, Сред(ИмяРеквизита, i+1, 1), "");
// Вставляем пробел перед заглавной буквой
Если (Символ = ВРег(Символ)) И (ПредСимвол <> ВРег(ПредСимвол)) Тогда
Синоним = Синоним + " " + Символ;
Иначе
Синоним = Синоним + Символ;
КонецЕсли;
КонецЦикла;
Возврат Синоним;
КонецФункции
Используя регулярные выражения (в 8.3.23 и выше):
Функция СинонимИзИдентификатора(Идентификатор) Экспорт
Возврат СокрЛП(
ВРег(Лев(Идентификатор,1)) +
НРег(СтрЗаменитьПоРегулярномуВыражению(
Сред(Идентификатор,2),"([А-ЯЁA-Z][^А-ЯЁA-z]*)"," $1")));
КонецФункции
Возврат СокрЛП(
ВРег(Лев(Идентификатор,1)) +
НРег(СтрЗаменитьПоРегулярномуВыражению(
Сред(Идентификатор,2),"([А-ЯЁA-Z][^А-ЯЁA-z]*)"," $1")));
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник