|   |   | 
| 
 | v7: Удаление/Пометка подчиненных-владельцев справочников | ☑ | ||
|---|---|---|---|---|
| 0
    
        lals 27.01.14✎ 22:33 | 
        Собственно ситуация (и мопед не мой коментарии про дебильность ситуации не приветствуются)
 Есть справочник Номенклатура у него 4 подчиненных справочника; Цены, ветСвидетельства, ДопГруппа и ДопНаименование. допГруппа и Доп наименование юзаются если к примеру контр1 желает чтобы яйцо было обозначено как "Яйцо овальное" а котр2 только "Овальное яйцо" Все остальные берут просто "Яйцо" но бог бы с ним, как то уж не знаю как сложилось что этот справочник какими то манипуляциями с копированием элементов созданием папок в номенклатуре чуть ли не для каждого контрагента своей и так далее. Задача Почистить Справочник Номенклатуры,имеющий всего навсего 20 тыс записей. была попытка пометить автоматом на удаление всех лементов и те которые не юзались в 203-2014 годах просто удалить затем те что не удалились вернуть в исходное состояние. Но... Подчиненные не имеют ссылок на документы а только на элементы своих хозяев а те уже помечены на удаление, соответственно подчиненные удаляются все под линеечку без разбору при отмене пометок на удаление в номенклатуре все подчиненные оказываются пустые Попытка отменить пометку удаления во ВСЕХ подчиненных приводит к отменепометок и в номенклатуре, понимаю целостность ссылок. Вижу только один вариант Верней два ПЕребирать доки за год и месяц и все что есть в них и помеченнгое на удаление отменять пометку его и всех подчиненных или перебирать элементы и искать сыылки на них в доках ну в общем что так что так это многочасовая обработка. Никто не знает другого способа?? и как посмотреть на жкстрим вариант - Скопировать файлы с подчиненными справочниками, заныкать их Почистить номенклатуру, вернуть файлы, прогнать справочники подчиненных на предмет имеющегося владельца, кто без батьки того в расход!! | |||
| 1
    
        lals 27.01.14✎ 22:34 | 
        203 = 2013 недоглядел изв.     | |||
| 2
    
        GreyK 27.01.14✎ 22:42 | 
        Надо уже нам клиннику организовать для "своих", ну торкнет кого-то создавать вопрос без номеров конфигов и платформ, а там ему палата 27/9.     | |||
| 3
    
        lals 27.01.14✎ 22:46 | 
        (3)Бухгалтерия, перекурочена до неузнаваемости
 Если быть точнее Бухгалтерский Учет редакция 3,1 клюшки на 027 | |||
| 4
    
        lals 27.01.14✎ 22:48 | 
        И тут мне кажется вопрос как бы не привязан к конфе. ни в одной типововй я не встречал такого как дополнительное наименование для контрагента - Дядя Ваня     | |||
| 5
    
        Бертыш 27.01.14✎ 22:53 | 
        Разруха в голове.     | |||
| 6
    
        lals 27.01.14✎ 22:54 | 
        (5) Согласен. но ситуацию хотелось бы разрулить     | |||
| 7
    
        lals 27.01.14✎ 23:02 | 
        Вот скрин который поможет наглядно оценить бардак
 http://saveimg.ru/show-image.php?id=710c506ec2f0b3b17052ecff733bb9e0 | |||
| 8
    
        КонецЦикла 27.01.14✎ 23:14 | 
        Ничего не понял
 Так что мешает попробовать произвести удаление помеченных объектов? Все нахрен пометить, запустить и пойти спать? | |||
| 9
    
        КонецЦикла 27.01.14✎ 23:15 | 
        Плясать от номенклатуры если на нее ссылки в других объектах     | |||
| 10
    
        lals 27.01.14✎ 23:22 | 
        У меня на Украине огрызок базы, а база гдето в Питере. 
 щас играюсь с подменой файлов | |||
| 11
    
        КонецЦикла 27.01.14✎ 23:25 | 
        Да больше времени потратишь
 Велика потеря ссылочной целостности и понадобится ТиИ 99% | |||
| 12
    
        КонецЦикла 27.01.14✎ 23:26 | 
        Если точно знаешь структуру и где могут быть ссылки - можно запросами (чтобы не перебирать то что не нужно)
 Можно это сделать на SQL если база ДБФ | |||
| 13
    
        lals 27.01.14✎ 23:37 | 
        Подмена прошла успешно каэцца 
 база ДБФ. | |||
| 14
    
        lals 27.01.14✎ 23:43 | 
        Спр = СоздатьОбъект("Справочник.ДопНаименование");
 Спр.ВыбратьЭлементы(0); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если ПустоеЗначение(Спр.Владелец) = 1 Тогда сообщить("бесхозный"); Иначе Сообщить(" Элемент - " + Спр.Наименование + " Владелец - " + Спр.Владелец.Наименование ); КонецЕсли; Пытаюсь вот таким макаром глянуть что к чему как бы не срабатывает пустое значение все идет под иначе хотя вледельцев показывает соответсвтенно есть или нет Вчем заковыка? или правильней Если Спр.Владелец ="" | |||
| 15
    
        acanta 28.01.14✎ 00:12 | 
        Правильней ТиИ. Владелец там заполнен всегда, но если ссылка битая - это нужно либо пытаться отловить через ..
 Спр.Владелец.ТекущийЭлемент().Выбран() или что-то в этом роде, либо сразу ТиИ с очисткой ссылок на невинно убиенных. | |||
| 16
    
        lals 28.01.14✎ 00:15 | 
        ТиИ   это будет последний вариант , ща буду еще коряитьсчя     | |||
| 17
    
        acanta 28.01.14✎ 00:17 | 
        На крайний случай Если Строка(Спр.Владелец) =""     | |||
| 18
    
        Torquader 28.01.14✎ 00:21 | 
        На самом деле, сначала решается вопрос с номенклатурой - выбираете, что удалять, а что - нет.
 Потом, той, что не удаляется, можно "восстановить" все дочерние (подчинённые) элементы, если они помечены на удаление. Хотя, я бы, сначала, посмотрел бы и в сторону контрагентов - если их тоже "метят", то и зачем для них номенклатуру хранить ? | |||
| 19
    
        lals 28.01.14✎ 00:36 | 
        (18) В том то и дело что когда помечается владелец то автоматом помечаются все подчиненные.
 Снятие с подчиненных пометки на удаление автоматом же снимает пометку удаления с владельца И все беда как раз в том что удаление помеченных удаляет все что можно , а что нельзя не удаляет, соответвенно подчиненный справочник не имеет других ссылок кроме как на объект помеченный на удаление, и значит удаляется беспрепятственно, хотя владельца не удаляет так как на него есть ссылка в документах | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |