Имя: Пароль:
1C
 
УТ 11.4 Удаление дублей спр НоменклатураПрисоединенныеФайлы
,
0 leoshko84
 
12.07.18
07:40
Есть алгоритм
Запрос=новый Запрос();
    Запрос.Текст="ВЫБРАТЬ
                     |    НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка
                     |ИЗ
                     |    Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
                     |
                     |СГРУППИРОВАТЬ ПО
                     |    НоменклатураПрисоединенныеФайлы.ВладелецФайла,
                     |    НоменклатураПрисоединенныеФайлы.Ссылка";

    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    а=1;
    Пока Выборка.Следующий() Цикл
        
        Если а=1 Тогда
            ПЭ=Выборка.Ссылка.Наименование;
            а=а+1;
            продолжить;
        КонецЕсли;
        
        
        Если Выборка.Ссылка.Наименование="" Тогда
            Продолжить;
        КонецЕсли;
        
        Если ПЭ=Выборка.Ссылка.Наименование Тогда    //совпадение
             Сообщить(Выборка.Ссылка.ВладелецФайла);
             текЭлемент=Выборка.Ссылка.ПолучитьОбъект();
             текЭлемент.Удалить();
                
        иначе
             ПЭ=Выборка.Ссылка.Наименование;
        КонецЕСли;
                
        а=а+1;
    КонецЦикла;
1 leoshko84
 
12.07.18
07:41
Алгоритм должен удалить дубли катртинок из справочника. Дубли находит, но не удаляет. Даже не вываливается с ошибкой. В чем может быть дело?
2 novichok79
 
12.07.18
08:27
(0) пипец, а че запросом сразу нельзя выбрать дубли?
3 novichok79
 
12.07.18
08:45
ВЫБРАТЬ
    ТаблицаСлева.ВладелецФайла КАК ВладелецФайла,
    ВЫБОР
        КОГДА ТаблицаСлева.Ссылка < ТаблицаСправа.Ссылка
            ТОГДА ТаблицаСлева.Ссылка
        ИНАЧЕ ТаблицаСправа.Ссылка
    КОНЕЦ КАК СсылкаСлева,
    ВЫБОР
        КОГДА ТаблицаСлева.Ссылка > ТаблицаСправа.Ссылка
            ТОГДА ТаблицаСлева.Ссылка
        ИНАЧЕ ТаблицаСправа.Ссылка
    КОНЕЦ КАК СсылкаСправа
ИЗ
    Справочник.НоменклатураПрисоединенныеФайлы КАК ТаблицаСлева
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НоменклатураПрисоединенныеФайлы КАК ТаблицаСправа
        ПО (ТаблицаСлева.ВладелецФайла = ТаблицаСправа.ВладелецФайла)
            И (ТаблицаСлева.Ссылка <> ТаблицаСправа.Ссылка)
            И (ТаблицаСлева.Наименование ПОДОБНО ТаблицаСправа.Наименование)

СГРУППИРОВАТЬ ПО
    ВЫБОР
        КОГДА ТаблицаСлева.Ссылка < ТаблицаСправа.Ссылка
            ТОГДА ТаблицаСлева.Ссылка
        ИНАЧЕ ТаблицаСправа.Ссылка
    КОНЕЦ,
    ВЫБОР
        КОГДА ТаблицаСлева.Ссылка > ТаблицаСправа.Ссылка
            ТОГДА ТаблицаСлева.Ссылка
        ИНАЧЕ ТаблицаСправа.Ссылка
    КОНЕЦ,
    ТаблицаСлева.ВладелецФайла

УПОРЯДОЧИТЬ ПО
    ВладелецФайла,
    СсылкаСлева
ИТОГИ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СсылкаСправа)
ПО
    ВладелецФайла,
    СсылкаСлева
4 13_Mult
 
12.07.18
08:46
Есть же стандартные обработки для этого.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.