Имя: Пароль:
1C
 
Удаление дублирующих элементов в ТЗ
0 Shaytan
 
19.10.04
17:21
Нужно из таблицы значений удалить одинаковые строки, оставить только последние из одинаковых (с сохранением порядка).
Делаю так
Для каждого СтрокаБазы Из ТЗ_БазаРасчетаСебест Цикл
           ПарамОтбора = Новый Структура("Номенклатура","ХарактеристикаНоменклатуры");
           ПарамОтбора.Вставить("Номенклатура",СтрокаБазы.Номенклатура);
           ПарамОтбора.Вставить("ХарактеристикаНоменклатуры",СтрокаБазы.ХарактеристикаНоменклатуры);
           МассивДублей = ТЗ_БазаРасчетаСебест.НайтиСтроки(ПарамОтбора);
           КолДублей = МассивДублей.Количество() - 2;
           Для А = 0 По КолДублей Цикл
               ТЗ_БазаРасчетаСебест.Удалить(МассивДублей[КолДублей - А]);
           КонецЦикла; //А = 0 По МассивДублей.Количество()
   КонецЦикла; //каждого СтрокаБазы
Вроде работает корректно, но есть сомнения как будет работать если элементы имеющие повторение идут подряд/
1 Волшебник
 
19.10.04
20:51
Сделай такую таблицу и проследи в отладчике.
2 Shaytan
 
20.10.04
09:06
Провелил - работает корректно.
3 Волшебник
 
20.10.04
09:21
(2) Значит сомнения были напрасны.

См. также:
http://www.citforum.ru/SE/testing/pankratov/criterion/
http://software-testing.ru/
4 Shaytan
 
26.11.04
18:50
Приношу свои извенения: Оказалось что всё-таки работает не корректно!
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.