1С 8.3 Подставить параметры в строку
Данные > Примеры кода 1С > 1С 8.3 Строка, текст, буквы
Перейти в раздел примеры кода 1С 8.3:
Аналог типовой функции ПодставитьПараметрыВСтроку в 1С 8.3:
Функция ПодставитьПараметрыВСтроку(Знач СтрокаПодст,
Знач Пар1,
Знач Пар2 = Неопределено,
Знач Пар3 = Неопределено,
Знач Пар4 = Неопределено,
Знач Пар5 = Неопределено,
Знач Пар6 = Неопределено,
Знач Пар7 = Неопределено,
Знач Пар8 = Неопределено,
Знач Пар9 = Неопределено) Экспорт
// Оптимизированный вариант типовой функции ПодставитьПараметрыВСтроку (подставить параметры в строку в 1С 8.3)
Знач Пар1,
Знач Пар2 = Неопределено,
Знач Пар3 = Неопределено,
Знач Пар4 = Неопределено,
Знач Пар5 = Неопределено,
Знач Пар6 = Неопределено,
Знач Пар7 = Неопределено,
Знач Пар8 = Неопределено,
Знач Пар9 = Неопределено) Экспорт
// Оптимизированный вариант типовой функции ПодставитьПараметрыВСтроку (подставить параметры в строку в 1С 8.3)
// Работает значительно быстрее
// Пример использования из общ.модуля:
// СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 знает код %2'"), "Артур", "1С") = "Артур знает код 1С".
Если СтрокаПодст = Неопределено Или СтрДлина(СтрокаПодст) = 0 Тогда
Возврат "";
КонецЕсли;
РезультатФункции = "";
НачальнаяПозиция = 1;
Поз = Найти(СтрокаПодст, "%");
Пока Поз > 0 Цикл
СимволСтроки = Сред(СтрокаПодст, Поз, 1);
Если СимволСтроки <> "%" Тогда
Поз = Поз + 1;
Продолжить;
КонецЕсли;
РезультатФункции = РезультатФункции + Сред(СтрокаПодст, НачальнаяПозиция, Поз - НачальнаяПозиция);
Поз = Поз + 1;
СимволСтроки = Сред(СтрокаПодст, Поз, 1);
Если СимволСтроки = "1" Тогда
ЗначПараметра = Пар1;
ИначеЕсли СимволСтроки = "2" Тогда
ЗначПараметра = Пар2;
ИначеЕсли СимволСтроки = "3" Тогда
ЗначПараметра = Пар3;
ИначеЕсли СимволСтроки = "4" Тогда
ЗначПараметра = Пар4;
ИначеЕсли СимволСтроки = "5" Тогда
ЗначПараметра = Пар5;
ИначеЕсли СимволСтроки = "6" Тогда
ЗначПараметра = Пар6;
ИначеЕсли СимволСтроки = "7" Тогда
ЗначПараметра = Пар7;
ИначеЕсли СимволСтроки = "8" Тогда
ЗначПараметра = Пар8;
ИначеЕсли СимволСтроки = "9" Тогда
ЗначПараметра = Пар9;
ИначеЕсли СимволСтроки = "%" Тогда
ЗначПараметра = "%";
Иначе
ВызватьИсключение НСтр("Входная строка СтрокаПодстановки имеет неверный формат: " + ЗначПараметра);
КонецЕсли;
Если ЗначПараметра = Неопределено Тогда
ЗначПараметра = "";
Иначе
ЗначПараметра = Строка(ЗначПараметра);
КонецЕсли;
РезультатФункции = РезультатФункции + ЗначПараметра;
Поз = Поз + 1;
СтрокаПодст = Сред(СтрокаПодст, Поз);
Поз = Найти(СтрокаПодст, "%");
КонецЦикла;
Если (НачальнаяПозиция <= СтрДлина(СтрокаПодст)) Тогда
РезультатФункции = РезультатФункции + Сред(СтрокаПодст, НачальнаяПозиция, СтрДлина(СтрокаПодст) - НачальнаяПозиция + 1);
КонецЕсли;
Возврат РезультатФункции;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник