Добрый день. Тема чисто для обучения.
Встал вопрос работы с Таблицей значений.
Создал запрос, выгрузил из него в Таблицу значений.
Нужно часть записей, не соответствующих условию убрать.
Сначала решил Просто их удалить.
Для Каждого Стр Из ТЗ Цикл
Если ... Тогда
ТЗ.Удалить(Стр);
КонецЕсли;
КонецЦикла;
Позиции удаляются, но не все. Если позиции идут подряд, то удаляются нечетные, а четные остаются. Я так понимаю что при удалении указатель записи переходит на следующую строку таблицы значений, а при выполнении цикла Для еще раз переходит на строку ниже, и в результате четная строка пропускается и не обрабатывается в цикле. Грустно. Как можно исправить?
Попробовал по советам из инета через цикл Пока по индексам снизу вверх, т.е. в обратном порядке.
КолТЗ = ТЗ.Количество()-1;
Пока КолТЗ >=0 Цикл
СтрТЗ = ТЗ.Получить(КолТЗ);
Если ... Тогда
ТЗ.Удалить(КолТЗ);
КонецЕсли;
КолТЗ = КолТЗ - 1;
КонецЦикла;
Тут все работает на УРА.
Прочитал еще вариант через функцию ЗаполнитьЗначенияСвойств.
И вот тут засада. Ничего не заполняется.
Для Каждого Стр Из ТЗ Цикл
Если ... Тогда
ЗаполнитьЗначенияСвойств(ТаблЗН.Добавить(),Стр);
КонецЕсли;
КонецЦикла;
В новой Таблице значений создаются пустые строки с полем строка таблицы значений и таким же типом данных и все. Ни одна колонка из ТЗ не переноситься. В исходной Таблице 4 колонки.
Что я делаю не так. Почему колонки не переносятся??