Реплейсер

Точная замена или шаблоны с {{имя}} для любого текста: в замене оставьте только нужное — остальное из совпадения удалится. Пустые строки при поиске не учитываются.

Как работают шаблоны

Шаблон — это любой фрагмент текста (не только «Отказ»): процедуры, запросы, комментарии, произвольные блоки. Фиксированные куски ищутся как есть, а между ними стоят именованные «дыры» {{имя}}.

  • Включите режим Шаблон.
  • В «Что искать» — ваш произвольный каркас и дыры {{имя}} (латиница, кириллица, цифры, _). Имена в одном шаблоне уникальны.
  • В «На что заменить» укажите только те {{имя}}, которые нужно сохранить, и любой новый текст вокруг.
  • Всё, что не попало в замену (обёртки и неиспользованные дыры), удаляется.
  • Пустая замена или «Удалить совпадения» — удалить найденные блоки целиком.
  • Пустые строки при сравнении игнорируются; отступы в непустых строках важны. Для BSL вложенные Если/КонецЕсли (и циклы) учитываются по балансу.
  • Кнопка Форматировать выравнивает BSL: табы по вложенности, операторы на отдельных строках, одна пустая строка между блоками, пробел перед Возврат.
  • Режим Удалить строки: уберёт все строки, начинающиеся с указанной подстроки (несколько префиксов — по одному на строку).
  • Для нескольких проходов подряд включите Несколько шагов и задайте пары поиск/замена через ===.

Пример 1 — любой блок: сохранить середину

Поиск:

// было начало
{{нужное}}
// было конец

Замена:

{{нужное}}

Останется только то, что попало в {{нужное}}.

Пример 2 — сменить обёртку, сохранив код

Поиск:

Попытка
{{тело}}
Исключение
	// ...
КонецПопытки;

Замена:

{{тело}}

Или подставьте другую обёртку вокруг {{тело}} — шаблон не привязан к конкретному слову.

Пример 3 — несколько дыр: часть сохранить, часть выбросить

Поиск:

Начало
{{удалитьЭто}}
Середина
{{оставить}}
Конец

Замена:

{{оставить}}

В замене нет {{удалитьЭто}} — этот фрагмент и все литералы («Начало», «Середина», «Конец») исчезнут.

Пример 4 — снять обёртку «флаг / Иначе»

Типичный каркас: флаг = Ложь → проверки → Если Флаг Тогда … Иначе … КонецЕсли. Одним шаблоном оставляете только тело успеха:

Поиск:

	Флаг = Ложь;
{{проверки}}
	Если Флаг Тогда
{{веткаОшибки}}
	Иначе
{{тело}}
	КонецЕсли;

Замена:

{{тело}}

Подставьте своё имя флага вместо Флаг. Применяется ко всем таким вхождениям. Ранние проверки с Возврат до этого каркаса шаблоном не трогаются.

Пример 5 — цепочка шагов (обычный каркас + split + цикл)

Режим ШаблонНесколько шагов. Шаги 1–3 снимают каркас с флагом (с Иначе и без него). Шаги 4–5 — типичная адаптация проверок в цикле: вместо структуры результата пишете в коллекцию ошибок и связываете проверки через ИначеЕсли. Имена и тексты замените на свои:

===
	Флаг = Ложь;
{{проверки}}
	Если Флаг Тогда
{{веткаОшибки}}
	Иначе
{{тело}}
	КонецЕсли;
===
{{тело}}
===
	Флаг = Ложь;
{{проверки}}
	Если Флаг Тогда
{{веткаОшибки}}
	КонецЕсли;
===

===
	Если НЕ Флаг Тогда
{{тело}}
	КонецЕсли;
===
{{тело}}
===
		Результат_ = Новый Структура("ТекстОшибки, Данные", "", Неопределено);
		Флаг = Ложь;
		Если НЕ Флаг И Условие1 Тогда
			Результат_.ТекстОшибки = "Сообщение1";
			Флаг = Истина;
		КонецЕсли;
		Если НЕ Флаг И Условие2 Тогда
			Флаг = Истина;
			КоллекцияОшибок.Добавить("Сообщение2");
		Иначе
{{тело}}
		КонецЕсли;
===
		Если Условие1 Тогда
			КоллекцияОшибок.Добавить("Сообщение1");
		ИначеЕсли Условие2 Тогда
			КоллекцияОшибок.Добавить("Сообщение2");
		Иначе
{{тело}}
		КонецЕсли;
===
				Результат_.ТекстОшибки = ТекстИсключения;
===
				КоллекцияОшибок.Добавить(ТекстИсключения);

Шаги идут по порядку; в статусе — число замен по каждому. Отступы (табы) должны совпадать с вашим кодом. Шаг без {{имя}} — точная замена строки.

Составьте свой шаблон под любую задачу: имена дыр и фиксированный текст задаёте вы.

Автор подсветки BSL

Режим

В режиме «Точный текст» ищется совпадение по строкам (пустые строки не учитываются).