Имя: Пароль:
1C
1С v8
Создать копию структуры справочника
0 Chum
 
21.11.13
16:55
Задача следующая:
Выбрать неактивных за последний год контрагентов и переместить их в отдельную папку с сохранением иерархии, т.е. грубо говоря, создать клон структуры справочника и заменить родителей у нужных элементов. Подскажите: как можно это сделать просто и быстро?
1 zak555
 
21.11.13
16:57
если в этой иерархии будет контры, которые "работают" ?
у тебя иерархия задвоится
2 Maxus43
 
21.11.13
16:57
небольшая обработочка. там запрос + перенос на нового родитея. Предварительно перенос всех родителей в новую папку
3 zak555
 
21.11.13
16:58
проще всего в комментарий перенесённого элемента засунуть уид настоящей группы
4 Chum
 
21.11.13
16:58
(2) нового родителя искать по полному наименованию?
5 Maxus43
 
21.11.13
16:59
(4) можно и так, но я чесно гря не понимаю зачем в папке "Неактивные" создавать копию иерархии
6 Infsams654
 
21.11.13
17:00
(1) (5) не копию, написано же "заменить родителей у нужных элементов"
7 Chum
 
21.11.13
17:03
(5) я тоже не понимаю, но местный колхоз, который привык раскладывать контрагентов по папкам, названием которых являются дирекция/отдел/еще чего-то

Им, видите-ли, так удобнее, а выслушивать истерики этих бабУшек нет ни малейшего желания.

Короче говоря, нужно:
было:
Родитель1/Родитель2/Родитель3/Контрагент1

станет:
Неактивные/Родитель1/Родитель2/Родитель3/Контрагент1
8 unregistered
 
21.11.13
17:05
Итог по иерархии.
При обходе, если тип элемента - иерархия, то создаем (или ищем по каким-либо признакам) группу с таким же наименованием.

Тут больше вопросов должно быть
1. как определить, что контрагент неактивный.
2. что и как делать если неактивный завтра вдруг станет активным. Заводить нового (появятся дубли), возвращать существующего.
3. Как отрабатывать ситуацию, когда иерархия будет менять (а рано или поздно она обязательно будет меняться даже если пользователи клянутся всеми богами, что этого никогда не будет)? Иерархия неактивных тоже перелопачивать будете и как?
4. Ну и наконец главный вопрос "а нафуя это вообще надо"?
9 Chum
 
21.11.13
17:09
(8)
1. по движениям 60, 62, 76
2. вернут ручками и оставят, как есть
3. хорошо бы синхронизировать, но это на будущее
4. платят и ладно
10 МихаилМ
 
21.11.13
17:13
создать - просто
но нужно еще будет её еще синхронизировать.
11 wms
 
21.11.13
17:15
а какие проблемы? определяешь неактивных, формируешь дерево
и в папку неактивные переносишь контрагентов. родителей создаешь рекурсивной одной функцией , а потом пройтись и пустые группы удалить- на них ссылок не будет и удалить полностью штатно потом
12 wms
 
21.11.13
17:18
спр=текконтрагент.получитьобъект();
//1 рекурсивная ф-я и в ней если нет родителя то папка неактивные
спр.родитель=ПоискСозданиеРодителя(текконтрагент);
спр.записать();
главное по иерархии цикл
13 mr_K
 
21.11.13
17:20
может не в тему, но аналогичную задачу решал так: ночью регламентом помечаем неактивных. в формах списка справочника отмечаем помеченные элементы красненьким )
14 mr_K
 
21.11.13
17:21
(13) + в ряде документов при выборе контрагента прописал невозможность выбора "красненького" )
15 hhhh
 
21.11.13
17:54
(8) всё-таки иерархию внутри папки неактивные они должны сесть и создать вручную. Зачем на обработку вешать эту ненужную ей работу? Она пусть просто раскладывает по папкам.
16 0xFFFFFF
 
21.11.13
18:27
А вариант с сотрудниками ЗУПа не канает? Когда скрываются "неактивные" сотрудники.
17 Classic
 
21.11.13
18:51
Лень писать

Смысл
1. Написать запрос с итогами по иерархии
2. Грузануть в дерево
3. Рекурсивный обход дерева с передачей в рекурсивную функцию клона владельца строки