|
Обход ячеек табличного поля |
☑ |
0
RizONE
10.08.20
✎
21:19
|
Доброго!
Вообщем нужно обойти ТП размером 6х10. Если в колонке встречается текст, начинающийся на "*", то этот текст нужно разбить на подстроки и разместить в ту же колонку, но в следующие строки.
Как такое решается?
Для Колонка = 1 по 6 Цикл
Для Каждого Стр из тпТаблица Цикл
Если Найти(Стр[Колонка], "*") > 0 Тогда
РазложитьНа = Стр.Длительность / 15;
Индекс = тпТаблица.Индекс(Стр);
Массив = РазложитьСтрокуВМассивПодстрок(Стр[Колонка], Символы.ПС);
Если РазложитьНа = 1 Тогда
Стр[Колонка] = Массив[0];
тпТаблица[Индекс].Колонка12 = Массив[1];
ИначеЕсли РазложитьНа = 2 Тогда
Стр[Колонка] = Массив[0];
тпТаблица[Индекс+1].[Колонка] = Массив[1];
тпТаблица[Индекс+2].[Колонка] = Массив[2];
ИначеЕсли РазложитьНа >= 3 Тогда
Стр[Колонка] = Массив[0];
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
|
|
1
RizONE
10.08.20
✎
21:19
|
часть после ИначеЕсли РазложитьНа = 2 Тогда естественно не работает, а как это сделать?
|
|
2
RizONE
10.08.20
✎
21:21
|
да, боюсь со всложенностью циклов тоже попутал, сначала цикл по Стр, потом по Колонка
|
|
3
RizONE
10.08.20
✎
21:25
|
так работает, но прописывать названия Колонок в явном виде не хотелось бы
Для Каждого Стр из тпТаблица Цикл
Для Колонка = 1 по 6 Цикл
Если Найти(Стр[Колонка], "*") > 0 Тогда
РазложитьНа = Стр.Длительность / 15;
Индекс = тпТаблица.Индекс(Стр);
Массив = РазложитьСтрокуВМассивПодстрок(Стр[Колонка], Символы.ПС);
Если РазложитьНа = 1 Тогда
Стр[Колонка] = Массив[0];
тпТаблица[Индекс].Колонка12 = Массив[1];
ИначеЕсли РазложитьНа = 2 Тогда
Стр[Колонка] = Массив[0];
тпТаблица[Индекс+1].Колонка5 = Массив[1];
тпТаблица[Индекс+2].Колонка5 = Массив[2];
ИначеЕсли РазложитьНа >= 3 Тогда
Стр[Колонка] = Массив[0];
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
|
|
4
Ёпрст
гуру
10.08.20
✎
22:28
|
(3)
тпТаблица[0][1]
|
|
5
RizONE
10.08.20
✎
23:08
|
(4) Чудно!
Спасибо!
|
|