Удобнее чем шаблоны для макетов

При заполнении сложных табличных документов, например, текстов договоров, удобнее использовать собственную реализацию шаблонов. Потому что если изменять тип поля с текст на шаблон, меняется форматирование поля.

Вот пример макета:

Все поля имеют формат текст, а не шаблон, заполнение параметров реализуется собственной функцией:

Шаблоны = Новый Соответствие();
Шаблоны.Вставить("[Город]", "Москва");
Шаблоны.Вставить("[НомерДоговора]", ДоговорКонтрагента.Номер);
Шаблоны.Вставить("[Дата]", Формат(ДатаДоговора,"ДФ='«dd» MMM yyyy'") +" г.");
Шаблоны.Вставить("[ПокПН]", ПокПН);
Шаблоны.Вставить("[ПокДолжностьИмя]", ПокДолжностьИмя);
Шаблоны.Вставить("[ПокЮрАдрес]", СведенияОбОрганизации.ЮридическийАдрес);
Шаблоны.Вставить("[ПокИНН]", СведенияОбОрганизации.ИНН);
Шаблоны.Вставить("[ПокКПП]", СведенияОбОрганизации.КПП);
Шаблоны.Вставить("[ПокРасчСчет]", СведенияОбОрганизации.НомерСчета);
Шаблоны.Вставить("[ПокБанк]", СведенияОбОрганизации.Банк.Наименование);
Шаблоны.Вставить("[ПокБИК]", СведенияОбОрганизации.БИК);
Шаблоны.Вставить("[ПокТелефон]", "");
Шаблоны.Вставить("[ПокКорСчет]", СведенияОбОрганизации.КоррСчет);
Шаблоны.Вставить("[ПокРуководитель]", ПокРуководитель);   


ЗаменитьШаблоныДоговора(Область, Шаблоны);
ТабДок.Вывести(Область);                      
         
         
Функция ЗаменитьШаблоныДоговора(ТД, Шаблоны)
	Для Каждого Шаблон ИЗ Шаблоны Цикл
		Искомое = Шаблон.Ключ;
		Замена = Шаблон.Значение;
		Начало = Неопределено;
		Пока Истина Цикл
			ИскОбласть = ТД.НайтиТекст(Искомое, Начало);
			Если ИскОбласть = Неопределено Тогда
				Прервать;
			КонецЕсли;
			ИскОбласть.Текст = СтрЗаменить(ИскОбласть.Текст, Искомое, Замена);
		КонецЦикла;
	КонецЦикла;
КонецФункции

При этом если какой-то параметр отсутствует, не будет выдано сообщение об ошибке, что позволяет удалять ненужные параметры из макета.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 2

  1. Аерм:

    Макеты надо вообще выкинуть как понятие из 1с. Они очень плохо сравниваются и объединяются. И эти злодеи на них реализуют регл отчетность. В итоге если все баланс с изменениями — вы замучаетесь каждый раз переносить свои правки в макеты. Но 1с это не беспокоит

    • Могу порекомендовать вносить изменения в макеты программно.
      Сами макеты — это шедевр, круче Экселя.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *