Имя: Пароль:
1C
1С v8
Удалить повторяющиеся элементы справочника
0 Irbis05
 
29.11.12
10:19
Здрастуйте. Необходимо удалить в справочнике "Банковские счета" записи с одинаковым номером счета, что бы остался только один номер, как бы уникальный.  Я попробовал так:
Выборка = Справочники.БанковскиеСчета.Выбрать();
Пока Выборка.Следующий() Цикл
   Объект = Выборка.ПолучитьОбъект();
      ....
КонецЦикла;
и через запрос:
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    БанковскиеСчета.Ссылка,
                  |    БанковскиеСчета.НомерСчета,
                  |    БанковскиеСчета.Банк,
                  |    БанковскиеСчета.Наименование
                  |ИЗ
                  |    Справочник.БанковскиеСчета КАК БанковскиеСчета";
   Выбор = Запрос.Выполнить().Выгрузить();
//потом сравнение двух массивов
Но получается либо только сравнивать, либо только все удалять. Подскажите как сделать.
1 Шапокляк
 
29.11.12
10:23
Запросом выбери, сгруппируй по номеру и банку. Результат запроса выгрузи в ТЗ и перебирай ТЗ. Но вообще несколько странная идея удалять такие счета - для начала надо бы организовать замену значений в ссылках.
2 Вячеслав_1981
 
29.11.12
10:25
Есть такая обработка поиск и замена дублирующих элементов. Работает довольно просто выбираешь справочник  и дублируемые или похожие элементы удаляешь. ссылки перепривязываешь
3 mikecool
 
29.11.12
10:25
выбрать БС1.ссылка
из Справочник.БанковскиеСчета как БС1
где БС1.ссылка в (
выбрать ссылка
из Справочник.БанковскиеСчета
сгруппировать по ссылка
имеющие количество(ссылка) > 1)
и не БС1.ссылка в (
выбрать первые 1 БС2.Ссылка
из Справочник.БанковскиеСчета как БС2
сгруппировать по БС2.ссылка
имеющие количество(БС2.ссылка) > 1 и БС2.Ссылка = БС1.Ссылка)

ссылки на удаление, не проверял
4 0_Serg_0
 
29.11.12
10:26
стандартная - поиск и замена дублирующихся элементов - тебе в помощь!;)
5 Irbis05
 
29.11.12
10:26
(1)Я пробовал через ТЗ, но как мне потом записи удалить из справочника?
6 Steini
 
29.11.12
10:28
ВременнаяТаблица1: все элементы справочника;
ВременнаяТаблица2: все элементы справочника;
ВременнаяТаблица1 Левое соединение ВременнаяТаблица2 по
НомерСчета = НомерСчета И Ссылка <> Ссылка
7 Balabass
 
29.11.12
10:34
1. собрать в тз + колонка со значением = 1
2. свернуть.
3. удалить все, где колонка = 2
8 Irbis05
 
29.11.12
10:37
Всем спасибо за помощь. Я попробую.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший