Имя: Пароль:
1C
1С v8
Удалить дубли в регистре сведений ШтрихКоды.
0 haggart
 
25.07.13
19:36
При переносе из 77 задвоились записи регистра сведений штрихкоды.
Написал такую обработку, но не знаю как удалить запись независимого регистра.
Запрос= Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 |    ВложенныйЗапрос.Штрихкод,
                 |    ВложенныйЗапрос.Владелец,
                 |    ВложенныйЗапрос.записей
                 |ИЗ
                 |    (ВЫБРАТЬ
                 |        Штрихкоды.Штрихкод КАК Штрихкод,
                 |        Штрихкоды.Владелец КАК Владелец,
                 |        СУММА(1) КАК записей
                 |    ИЗ
                 |        РегистрСведений.Штрихкоды КАК Штрихкоды
                 |    
                 |    СГРУППИРОВАТЬ ПО
                 |        Штрихкоды.Штрихкод,
                 |        Штрихкоды.Владелец) КАК ВложенныйЗапрос
                 |ГДЕ
                 |    ВложенныйЗапрос.записей > 1
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ВложенныйЗапрос.Штрихкод,
                 |    ВложенныйЗапрос.Владелец,
                 |    ВложенныйЗапрос.записей";
    Табл=Запрос.Выполнить().Выгрузить();
    
    
    
    
    Для каждого стр из Табл цикл
        Запись=РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
        Запись.Отбор.ШтрихКод.Установить(Стр.ШтрихКод);
        Запись.Отбор.Владелец.Установить(Стр.Владелец);
        Запись.Прочитать();  
        Сообщить(""+Запись[0]);
        
        
        
        
    КонецЦикла;
1 Fragster
 
гуру
25.07.13
19:51
ВМЕСТО прочитать()  записать()
2 Fragster
 
гуру
25.07.13
19:52
хотя правильнее прочитать, удалить из набора все, кроме одной записи, записать
3 haggart
 
25.07.13
19:57
а мне надо только одну запись удалить а не две :)
4 haggart
 
25.07.13
20:03
к моему удивлению, действительно записать() сработало.
Закон Брукера: Даже маленькая практика стоит большой теории.