1С 8.3 Вставить параметры в строку - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Вставить параметры в строку

Данные > Примеры кода 1С > 1С 8.3 Строка, текст, буквы
Перейти в раздел примеры кода 1С 8.3:
В БСП есть метод ВставитьПараметрыВСтроку. Но в его реализации есть минусы:
  • Работает только со структурами и соответствиями (не передать, например, строку таблицы значений)
  • Внутри перебирает все свойства коллекции (в шаблоне может нужно только одно свойство, а перебираться будут все)
  • Делает множество замен (строка меняется столько раз, сколько свойств в коллекции, хотя может они не все и нужны)
В указанный ниже метод можно передать любой объект и будут использованы только те свойства, которые есть в шаблоне.
Для отличия метод использует другой (допустимый в стандартах) формат именованных параметров: %Свойство%


Вставить параметры в строку в 1С 8.3:
// Заменяет в строке именованные параметры на значения свойств объекта (по формату %ИмяСвойства%)
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/1
//
// Параметры:
//  ШаблонСтроки - Строка - Строка, в которую необходимо всавить свойства объекта
//  Объект - Произвольный - Произвольный объект, свойства которого необходимо вставить в строку
//
// Возвращаемое значение:
//  Строка
Функция ВставитьПараметрыВСтроку(Знач ШаблонСтроки, Знач Объект) Экспорт

   Разделитель = "%";
   ЭтоПараметр = Ложь;
   ЧастиСтроки = СтрРазделить(ШаблонСтроки, Разделитель, Истина);
   Для Индекс = 0 По ЧастиСтроки.Количество() - 1 Цикл

       Если ЭтоПараметр Тогда
           ИмяСвойства = ЧастиСтроки[Индекс];
           ЧастиСтроки[Индекс] = Строка(Объект[ИмяСвойства]);
           ЭтоПараметр = Ложь;
       Иначе
           ЭтоПараметр = Истина;
       КонецЕсли;

   КонецЦикла;

   Возврат СтрСоединить(ЧастиСтроки, "");

КонецФункции

// MIT License
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
// merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:

// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 05.08.2024
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому