Гарантированное удаление строк в макете
Обнаружил, что мой код удаления строк плохо работает если встречаются строки разного формата, тогда, несмотря на то, что я указываю в размере ширину таблицы, строки не удаляются, вместо них остается пустое место.
Поэтому я поступил более простым способом — указываю в адресе RN, где N — номер строки. Раньше я не любил этот способ, т.к. нужно было убирать разделитель разрядов числа через Формат, но сейчас появилась простая функция XMLСтрока:
Процедура ОчиститьСтрокиТабличногоДокументаСодержащиеМаркер(ДокументРезультат, Маркер, ЯчейкаЦеликом = истина) Экспорт Пока Истина Цикл Область = ДокументРезультат.НайтиТекст(Маркер,,,, ЯчейкаЦеликом); Если Область = Неопределено Тогда Возврат; КонецЕсли; //ОбластьСтрока = ДокументРезультат.Область(Область.Верх, 1, Область.Верх ,ДокументРезультат.ШиринаТаблицы); ОбластьСтрока = ДокументРезультат.Область("R" + XMLСтрока(Область.Верх)); ДокументРезультат.УдалитьОбласть(ОбластьСтрока, ТипСмещенияТабличногоДокумента.ПоВертикали); КонецЦикла; КонецПроцедуры
Есть также довольно удобная типизация в Число через XMLЗначение
я использую свою функцию, которая вырезает НПП, меняет запятые на точку и т.п.