Удаление номенклатуры, которая давно не используется. #724697


#0 by LastSoldier
Всем привет! Ребят, выручить плиз нужна обработка для чистки базы от неиспользуемой номенклатуры. УТ 11.1.9.44 1С Предприятие 8.3.5.1231 Нам перенесли из 1С 7.7 всю номенклатуру, ее там около 100 000, из этого всего мы используем всего 10-20к, остальное нам бы удалить, но просто так все удалить не получается обычным методом. При переносе на весь товар (100к) были созданы документы "установка цен". Поделитесь обработкой плиз. Или подскажите может можно как-то простым методом все это сделать?
#1 by Chameleon1980
остатки, движения на глубину. как вам нужно?
#2 by Фокусник
"Нам перенесли из 1С 7.7 всю номенклатуру" Проще было НЕ переносить лишнюю номенклатуру. Теперь нужно формулировать признак "не нужности" и оплачивать дополнительные работы по очистке. Готовую обработку врядли найдёте. ИМХО.
#3 by marvak
Можно попробовать такой экстремальный метод. :)) Предварительно сделай копию базы! Помечаешь на удаление всю номенклатуру и все документы Установка цен номенклатуры. Потом делаешь Удаление помеченных объектов. Та номенклатура, которая есть еще где то кроме документов Установка цен, должны удалиться. Вроде прокатит.
#4 by marvak
+ Хотя нет, доки установки цен номенклатуры же не все должны удалиться.. :(
#5 by marvak
++ "Та номенклатура, которая есть еще где то кроме документов Установка цен, НЕ должна удалиться" Но все равно не прокатит.
#6 by КонецЦикла
Если есть она где-то кроме установки цен - не удалится, не сцать
#7 by H A D G E H O G s
Он будет ждать до морковкиного заговения.
#8 by КонецЦикла
Потом вернуть движения установкам цен... но это если тупенько
#9 by H A D G E H O G s
Ира ему не простит.
#10 by Chameleon1980
тут крутить нужно от того, что вам в оконцове нужно.
#11 by marvak
Это да.
#12 by LastSoldier
мне нужен только тот товар который участвовал в доках продаж, перемещений, ОС, есть остатки. по сути вы правы, мне примерно так и надо сделать, есть такое конечно прокатит )
#13 by marvak
Попробовать то можно. Только копию базы не забыть сделать.
#14 by LastSoldier
установка цен не удалится, если там есть хотя бы один не удаленный товар? А как тогда удалять товар который есть в установке цен, он же попросит удалить и установку цен, а так как там есть хоть один товар, он ее и не удалит, я прав?
#15 by LastSoldier
обижаете )
#16 by marvak
Не удалит установку цен тогда. Неизвестно же как там у вас она создана, по какому принципу. Надежнее конечно обработку самому написать. Так все моменты можно проконтролировать.
#17 by LastSoldier
согласен, но я пока еще не постиг таких знаний ) Со временем обязательно напишу
#18 by Chameleon1980
последний из вояк :)
#19 by marvak
А установка цен по какому принципу создалась? Для каждой номенклатуры своя или как?
#20 by КонецЦикла
Тогда руками потиху удаляй, пока чай пьешь... за пару месяцев подчистишь И пользователи спасибо скажут
#21 by Chameleon1980
чем/как переносили - не в курсе? база уже в бою?
#22 by LastSoldier
не, общие их всего при переносе создалось 10 штук
#23 by LastSoldier
база новая уже с марта в бою. Переносили они все у себя в офисе, как говори, все стандартными средствами делали
#24 by LastSoldier
Товар не удаляется, так как он есть в установке цен ( Получается что его надо сначала удалить из установки цен. Я щас попробовал поставить на удаление группу товаров и установку цен по ним, но не получилось так просто
#25 by Chameleon1980
ну типа запрос состряпать по использованным за период боя товарам. далее по ним получить цены на определенные нужные периоды. для этих товаров с этими ценами на те даты создать новые доки установки цен. а старые доки установки цен - долой. самое простое решение. просто прямое
#26 by Otkr
Так а ты на что, утешишь)))
#27 by H A D G E H O G s
1) Добавить в номенклатуру признак Булево "Рабочая". 2) Обойти метаданные регистров накопления, (измерения, реквизиты), найти ссылки на номенклатуру. 3) Для каждого регистра по данному полю номенклатуры сделать запрос, вытаскивающий содержащиеся в нем номенклатуры, не имеющие флага "Рабочая" по результату запроса - простановка флага. 4) Находим все Установки цен, в которых есть хоть одна нерабочая номенклатура, делаем их копии, копируем в них строки с нерабочими номенклатурами, из исходных - удаляем. 5) Копии Установки цен помечаем на удаление, нерабочую номенклатуру помечаем на удаление. 6) Для каждых 500 удаляемых номенклатур делаем УдалитьОбъекты и смотрим интерактивный результат
#28 by Chameleon1980
ну типа того. ну только можно без доп реквищитов
#29 by КонецЦикла
Поколение некст уже не мыслит существование без доп. реквизитов И типовые тому подтверждение...
#30 by Chameleon1980
ага. ну понял :)
#31 by H A D G E H O G s
Поясни.
#32 by H A D G E H O G s
Поколение семерошников, переползших с баз в которых можно самому захерачить индекс на любую колонку (не задумываясь о последствиях), и табличек достаточно мало, не мыслит о том, что запросы могут выполняться достаточно долго и пользователю может понадобиться прервать выполнение и пофиксить результат.
#33 by Chameleon1980
дык реквизит то все равно не обязателен внешнее
#34 by Chameleon1980
нах в структуру то лезть
#35 by Chameleon1980
в данной постановке для определенных конфиг можно, допустим использовать рс "ном. контров", с опред. контром. Не вариант как замена реквизита?
#36 by H A D G E H O G s
РС - лучше (быстродействие), но не критично. Я идею подал. Но только в конфе, там все на транзакциях делать надо.
#37 by Семинарист
Рекомендую за основу обработки удаления неиспользуемых взять с ИТС алгоритм обработки "Удаление помеченных объектов". В ней используется метод получения таблицы со всеми ссылками на подсунутый в функцию массив проверяемых объектов. Потом она анализируется на возможность удаления проверяемого объекта. В штатной обработке это помеченные на удаление, вместо них можно подсовывать порциями, например по 100 штук справочник Номенклатура. В полученной таблице смотрим ссылки на текущую номенклатуру и если есть только "Установка цен" и всякие регистры сведений грохаем программно номенклатуру непосредственно. Потом почистим доки установки цен от битых ссылок на удаленные. Или если аккуратно только помечаем номенклатуру на удаление и удаляем строки с ней в документах. Так я чистил базы от неиспользуемой номенклатуры, контрагентов и т.п.
#38 by Sasha_1CK
так как ссылок на на документы установки цен нет - то при удалении помеченных объектов 0 все документы установки цен удалятся вместе с ценами рабочей номенклатуры - это не есть хорошо - а вдруг у номенклатуры с марта не менялась цена или кто нить в старые документы полезет? надо довести до логического завершения. 1. Сделать копию базы. 2. В копии пометить на удаление документы устанвоки цен, созданные припереносе 3. В копии пометить на удаление все элементы справочника "Номенклатура"  (правда в УФ - это может занять немало времени если делать через выделение в динамическом списке) 4. Провести удаление помеченных объектов в копии базы. 5. Написать обработку 5.1. Подключиться через СОМ к копии базы и получить оттуда коды рабочей номенклатуры. 5.2 Обработать справочник номенклатуры в рабочей - если ее кода нет в списке рабочих кодов из копии - то пометить их на удаление. 5.3 обработать документы установки цен в рабочей базе - удалить из них помеченные на удаление элементы справочника Номенклатура. 6. Удалить помеченные объекты в рабочей базе.
#39 by alle68
Если список объектов, где может присутствовать ссылка на номенклатуру известен, то запросом получить встречающиеся товары (кроме установки цен), а остальные удалить, вычистив установку цен. Если лень запрос писать, то: 1. Копия базы 2. Сносим полностью установку цен. 3. Метим всю номенклатуру. 4. Удаляем помеченные (ждём денёк-другой). 5. Переносим установку цен из копии для оставшихся в живых.
#40 by Sasha_1CK
узкий момент - если у номенклатуры не изменялась цена с момента ввода остатков - то может не очень хорошо получиться. Все ж таки ИМХО лучше удалять в копии - и оттуда взять список рабочей номенклатуры
#41 by DrZombi
Разрешаю вам создать обработку и удалить лишние позиции :) ... А потом её заново создать ;)
#42 by DrZombi
Шот народ какие то сложности придумывает :) Просто анализируешь обороты и другие регистры на момент использования номенклатуры... Если энто не используется, то находишь документ установка цен и удаляешь позицию. После помечаешь на удаление элемент Номенклатуры. И так далее. Как только документ установки цен опустеет, то и его помечаешь на удаление. Затем запускаешь контроль удаления объектов и смотришь, где что еще зацепилось и по обстоятельству допиливаешь свою обработку до "совершенства"... В итоге все удалено, обработку можно выложить на инфостарте в эту клоаку :)
#43 by Кай066
Вариант на любителя. Получаешь остатки. Далее групповой обработкой в Отбором не в Списке(ставишь список где есть остатки) меняешь наименование на "Старая номенклатура". Далее поиском и удалением дублей по наименованию удаляешь дублирующиеся Старая номенклатура
#44 by МимохожийОднако
Обработкой удалить из документов Установка цен номенклатуру без остатков, одновременно помечая на удаление. Потом удалить. Час работы с перекурами.
#45 by Рэйв
Перенеси неиспользуемые в отдельную папку и забудь про них. Нафиг себе проблемы искать на пустом месте?
#46 by mTema32
Вот так и убиваются базы. Час работы? Ну-ну... В нормальное решение. Без написания обработки думаю только проблем больше создашь. Чего-нить нужное грохнешь.
#47 by H A D G E H O G s
"Вот так и убиваются базы. " Это они только потом понимают. Когда хлебнут гемморойчика по синхронизации копии и рабочей базы в которой наработали с момента начала пиздеца.
#48 by H A D G E H O G s
Час работы с перекурами, хренли. Че тут думать, прыгать надо.
#49 by vlandev
Если вдруг база на DBF то можно ускорить: удалить все регистры и удалить все документы "установка цен номенклатуры" , ну а потом удалять помеченные на удаление.
#50 by Chameleon1980
чет я не понял народ про удаление доков установки цен - а нам что цены актуальные не нужны на живые позиции?
#51 by Chameleon1980
или я че не догоняю или вы счас насоветуете поудалять доки установки цен
#52 by vlandev
Это удаление будет в отдельной базе , а цены все равно там хранятся в периодике , при удалении документа они должны остаться.
#53 by H A D G E H O G s
Но не останутся. Хехехе. Толпа самородков.
#54 by mTema32
О_О РС ЦеныНоменклатуры как бы подчинен регистратору (в типовой УТ и Рознице точно). Грохнешь документы и записи в регистрах почистятся. И чего все привязались к этим документам установки цен? Они вааще не нужны и не важны для процедуры, которую ТС хочет провернуть. Эти доки просто потом почистить нужно от битых ссылок на удаленные объекты.
#55 by anatoly
зачем фигней и гемороем страдать? порциями скажем по 1000 номенклатур делать ПоискСсылок для них, если есть объекты тип НЕ док.УстановкаЦен - оставляем, иначе пометка удаления и удаляем их из УстановкиЦен. потом удаляем все помеченые. ВСЕ.
#56 by vlandev
Я предлагаю грохнуть документы в обход движка 1С удалением соотвествующих дбф-ок.
#57 by H A D G E H O G s
Хорошая попытка.
#58 by magicSan
выгрузить доки установки цен, удалить номенклатуру, загрузить установку цен
#59 by mTema32
Не читатель? "При переносе на весь товар (100к) были созданы документы "установка цен"." "УТ 11.1.9.44 1С Предприятие 8.3.5.1231" Какие дбф-ки? Или я что-то пропустил при изучении платформы 8.х??
#60 by magicSan
выгрузи все документы и удали, затем удали номенклатуру а доки обратно загрузи
#61 by magicSan
и почисти от леввых ссылок (^^)
#62 by stix2010
не используется значит нет ссылок в базе на эту номенклатуру. Перебираем справочник номенклатуры используем НайтиПоСсылкам если ссылок на элемент нет помечаем на удаление Удаляем средствами платформы помеченное, PROFIT!!! все остальное от лукавого
#63 by vlandev
ДБФ-ки потому как перенести надо из под платформы 77 , читайте внимательней !
#64 by H A D G E H O G s
Хорошая ветка по выявлению клювожопых. Надо этот вопрос запомнить, он идеален для тестирования кандидатов при приеме на работу.
#65 by mikecool
какой?
#66 by magicSan
ахахаха
#67 by mTema32
Такой обработкой будет удалено 0 объектов) 146%
#68 by mTema32
+ Да. И можно будет состариться к тому времени как она отработает.
#69 by ssh2QQ6
>  ну только можно без доп реквищитов После обработки реквизит можно удалить за ненадобностью, или РС, если его использовать
#70 by Chameleon1980
ну записи РС "Номенклатура контрагентов" потом и убить. вообще безболезненно. я уж думал решение давно есть. а то крутят тут фигню с разных сторон.
#71 by Domovoi
Раз не получается удалить, значит нужная для удаления номенклатура уже помечена. Вычеркиваем помеченную номенклатуру из доков установки цен и перезаписываем(перепроводим) доки и спокойно удаляем ненужную номенклатуру.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям