![]() |
|
Обход ячеек табличного поля | ☑ | ||
---|---|---|---|---|
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) Чудно!
Спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |