Предположим, что данные уже загружены в ТабличноеПоле1. Результат поместим в ТабличноеПоле2.
Процедура КнопкаВыполнитьНажатие(Кнопка)
ТабличноеПоле2.Очистить();
НС=1;
Счетчик = ТабличноеПоле1.Количество() - 1;
Пока Счетчик > 0 Цикл
ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break
Если НЕ ПустаяСтрока(ТабличноеПоле1[НС].Данные) Тогда
НоваяСтрока = ТабличноеПоле2.Добавить();
ТекущееЗначение = Сред(ТабличноеПоле1[НС].Данные,12,3);
ИмяКолонки = "Контракт";
НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
ТекущееЗначение = Прав(ТабличноеПоле1[НС].Данные,11);
ИмяКолонки = "Телефон";
НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
ДлСтр2 = СтрДлина(ТабличноеПоле1[НС+1].Данные);
Стр2 = ТабличноеПоле1[НС+1].Данные;
ТекущееЗначение = Лев(Прав(Стр2,ДлСтр2-17),СтрДлина(Прав(Стр2,ДлСтр2-17))-1);
ИмяКолонки = "Пакет";
НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
ТекущееЗначение = Лев(Прав(ТабличноеПоле1[НС+2].Данные,7),3);
ИмяКолонки = "Цена";
НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
НС = НС+3;
Счетчик = Счетчик - 3;
Иначе
НС = НС + 1;
Счетчик = Счетчик - 1;
Продолжить;
КонецЕсли;
КонецЦикла;
ЭлементыФормы.ТабличноеПоле2.Значение = ТабличноеПоле2;
ЭлементыФормы.ТабличноеПоле2.СоздатьКолонки();
КонецПроцедуры
Нужно учесть, что данный код будет работать корректо только на данном примере, т.к. если, например, данные
ВАРТІСТЬ ПАКЕТА/ЩОМІСЯЧНА ПЛАТА будут с копейками, то результат будет неверным. Для этого необходимо более сложный алгоритм разбора строки. Либо при заполнении исходного файла предусмотреть точное форматирование данных (писать не 100 грн, а всегда 100,00 грн. и т.д.)
[необходимо зарегистрироваться для просмотра ссылки]