Имя: Пароль:
1C
 
Как в Таблице значений удалить одинаковые строки.
0 Serdolik55
 
14.10.10
21:02
Народ такая проблема. Имеется таблица значений из двух столбцов. Строки в этой таблице значений повторются, то есть:

Контрагент1
Контрагент2
Контрагент2
Контрагент3
Контрагент1
Контрагент4
..............

Как правильно обойти её циклом, чтобы сравнить строки и удалить одинаковые, то есть привеси к виду:
Контрагент1
Контрагент2
Контрагент3
Контрагент4
Суть, чтобы не было одинаковых строк с такой таблице значений.
1 ll13
 
14.10.10
21:04
А что во втором столбце ?
2 Serdolik55
 
14.10.10
21:05
Да просто порядковый номер. Я из Excel гружу контагентов в таблицу значений, потом надо в справочник. В экселе они повторяются. Суть просто удалить повторяющиеся строки. Можно сказать, что таблица значений содержит одну колонку Контрагент
3 ll13
 
14.10.10
21:08
Если он не нужен то
Таблица.Свернуть("НазваниеКолонкиКонтрагент")
4 Serdolik55
 
14.10.10
21:14
Он нужен, просто названия повторяются в колонке, а нужно удалить повторяющиеся названия и оставить только одно.
Допустим таблица:
Иван
Пётр
Иван
Петр
Нужно привести к виду:
Иван
Пётр
Если не сложно описать это более подробно в цикле, буду благодарен. Я новичок.
5 Просто Лёха
 
14.10.10
21:16
(4) А какой нужен, который первый раз встретился, или второй?
6 МихаилМ
 
14.10.10
21:16
отсортировать и удалить.
либо просто свернуть.
7 NcSteel
 
14.10.10
21:17
(4) Чем тебе свернуть не нравится ?
8 ll13
 
14.10.10
21:18
(4) читать умеешь, я ж тебе написал (3)
9 Serdolik55
 
14.10.10
21:21
Да наверное любой, у них наименования одинаковые полностью.
А для того, чтобы свернуть нужно указывать наименование строки для каждого повторяющегося контрагента? Либо она на всех сработает?

То есть:
Для каждого Стр Из Таблица Цикл
Таблица.Свернуть("Контрагент")
КонецЦикла

Я так понимаю?
10 NcSteel
 
14.10.10
21:22
емае !
11 NcSteel
 
14.10.10
21:23
(9) Где ты в сообщении (3) Увидел цикл? одной строчки достаточно !
12 Serdolik55
 
14.10.10
21:23
Ок! Понял! Спасибо!
13 Вальдемар
 
14.10.10
23:42
(11) Забыл сказать, что вторая колонка удалится.
14 Лефмихалыч
 
14.10.10
23:55
(0) Запросом сгруппировать и результат запроса выгрузить в потом с ту же таблицу

Поля = "";
Для каждого Колонка из ТвояТЗ.Колонки Цикл
 Поля = поля + Символы.ПС+" ТЗ."+Колонка.Имя;
КонецДля;
Поля = СтрЗаменить(СокрЛП(Поля), Символы.ПС, ", ");
ЗапросТекст = "Выбрать "+Поля+
"ПОМЕСТИТЬ ТЗ ИЗ &ТЗ КАК ТЗ;
|ВЫБРАТЬ "+Поля+"
|ИЗ ТЗ КАК ТЗ
|СГРУППИРОВАТЬ ПО "+Поля;
Запрос = новый ЗАпрос(ЗапросТекст);
Запрос.УстановаитьПараметр("ТЗ", ТвояТЗ);
ТвояТЗ = Запрос.Выполнить().Выгрузить();

требуется некоторый напилинг наверное
15 AlexNew
 
15.10.10
00:14
(14) Сильно, тока напилинг кому?
16 Лефмихалыч
 
15.10.10
00:24
(15) напилинг, чтобы заработало - там пара синтаксических ошибок сделато
17 guevara74
 
15.10.10
05:11
(14) Самый простой и безгеморойный вариант. Только явно надо в ТЗ прописать типизацию полей, а то не заглотится в временную
18 Рэйв
 
15.10.10
06:34
ТЗ.Сортировать("Контрагент");
ДО="вапыфвыва";
сп=новый СписокЗначений;
Для каждого Стр Из ТЗ Цикл
  Если ДО= ТЗ.Контрагент Тогда
     сп.Добавить(Стр);
  КонецЕсли;
  ДО=Стр.контрагент;
Конеццикла;

Для Каждого Эл Из сп Цикл
  ТЗ.Удалить(Эл.Значение);
Конеццикла;
19 Klinov
 
15.10.10
08:26
А как такой вариант?

ТЗ1 = ТЗ.Скопировать();
ТЗ_НаВыходе = ТЗ.СкопироватьКолонки();
ТЗ1.Свернуть("Контрагент");
Для Каждого Текстрока Из ТЗ1 Цикл
   Отбор = Новый Структура("Контрагент",Текстрока.Контрагент);
   МассивСтрокОдногоКонтранта = ТЗ.НайтиСтроки(Отбор);
   стрТЗ_НаВыходе = стрТЗ_НаВыходе.Добавить();
   ЗаполнитьЗначенияСвойств(стрТЗ_НаВыходе,МассивСтрокОдногоКонтранта[0]);
КонецЦикла;
Независимо от того, куда вы едете — это в гору и против ветра!