|
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) В том то и дело что когда помечается владелец то автоматом помечаются все подчиненные.
Снятие с подчиненных пометки на удаление автоматом же снимает пометку удаления с владельца И все беда как раз в том что удаление помеченных удаляет все что можно , а что нельзя не удаляет, соответвенно подчиненный справочник не имеет других ссылок кроме как на объект помеченный на удаление, и значит удаляется беспрепятственно, хотя владельца не удаляет так как на него есть ссылка в документах |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |