Имя: Пароль:
1C
 
Выборка элементов Спр.Номенклатура с одинаковым кодом
0 pavlika
 
02.03.07
13:53
8.1 перенесли остатки из 7.7 через стандартную обработку. Потом была увеличена длина наименования Спр.Номенклатура и сделана новая загрузка остатков - естественно создались новые элементы Спр.Номенклатура (при первоначальной загрузке наименование некоторых позиций обрезалось). Вопрос - как выбрать и пометить на удаление те элементы справочника, которые имеют одинаковый код, и как из этой пары с одинаковым кодом выбрать тот элемент, который не имеют никаких движений (если есть, то оставляем его, если нет, то тот у которого большее наименование). Т.е. как проверить - есть ли у элемента справочника какие-либо движения по регистрам и есть ли на него ссылки в документах, которые не делают никаких движений.
1 rsv
 
02.03.07
14:08
(0)
select ссылка from справочник.Номенклатура where код in
(select код from справочник.номенклатура group by код having count(код)>1)
2 rsv
 
02.03.07
14:17
(1)  И при обходе выборки проверять через  НайтиПоСсылкам (Ссылка)
3 Woppi
 
02.03.07
14:18
Для начала найдем элементы с одинаковым кодом:

Запрос.Текст =
ВЫБРАТЬ
Код,
Ссылка КАК Номенклатура,
Наименование
ИЗ
Справочник.Номенклатура
ГДЕ Код В(
ВЫБРАТЬ
   Код
ИЗ
   Справочник.Номенклатура
СГРУППИРОВАТЬ ПО
   Код
ИМЕЮЩИЕ
   КОЛИЧЕСТВО(Код)>1
)
ИТОГИ ПО Код

Затем бежим по иерархии и пользуемся методом НайтиПоСсылкам или УдалитьОбъекты, смотрим, какие можно, какие нельзя удалить и удаляем.
4 pavlika
 
02.03.07
15:02
(1),(2),(3) спсбо, сейчас попробую
5 pavlika
 
02.03.07
15:59
А как изменится запрос, если нужно отобрать элементы имеющие не только одинаковый код, но и еще одинаковые первые 20-ть символов в наименовании?
6 Defender aka LINN
 
02.03.07
16:00
(5) Добавится условие со словом ПОДСТРОКА
7 Woppi
 
02.03.07
16:06
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Код)>1
И КОЛИЧЕСТВО(ПОДСТРОКА(Наименование,1,20)) > 1
8 Defender aka LINN
 
02.03.07
16:20
(7) Гениально. Догадываешься, что этот запрос тебе вернет?
9 Woppi
 
02.03.07
16:25
(8) Да, то что требовалось в (5).
10 Persimmon
 
02.03.07
16:27
А нельзя снести всю номенклатуру и заново нормально записать??
11 pavlika
 
02.03.07
16:29
(10) Это "обнаружили" после двух недель работы
13 Salvador Limones
 
02.03.07
16:31
В УПП есть обработка «Поиск и замена дублирующихся элементов справочников».
14 pavlika
 
02.03.07
16:49
(13) под 8.1 у меня не открылась - не может быть прочитана текущей версией программы.
15 Persimmon
 
02.03.07
16:53
Если элементов не очень много, можно было бы номенкл открыть в иерархии,упорядочить по наименованию, пометить на удаление, запустить обработку удаление помеч.объектов, те, что имеют движ по рег или на кот ссылаются док-ты, не получиться удалить, но обраб покажет где ссылки. Желательно все это творить с копией ИБ, а потом наживую...
16 VitaliySm
 
02.03.07
17:04
(14) а открыть обработку в конфигураторе и сконвертировать её?
17 pavlika
 
02.03.07
17:08
(16) спсбо - получилось
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший