Имя: Пароль:
1C
1C 7.7
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) В том то и дело что когда помечается владелец то автоматом помечаются все подчиненные.
Снятие с подчиненных пометки на удаление автоматом же снимает пометку удаления с владельца
И все беда как раз в том что удаление помеченных удаляет все что можно , а что нельзя не удаляет, соответвенно  подчиненный справочник не имеет других ссылок кроме как на объект помеченный на удаление, и значит удаляется беспрепятственно, хотя владельца не удаляет так как на него есть ссылка в документах
2 + 2 = 3.9999999999999999999999999999999...