Имя: Пароль:
1C
1С v8
8.2, УФ, Работа с периодической иерархией - нужны советы
,
0 Humandra
 
09.01.12
05:46
Прошу совета по выбору структуры объектов в 8.2.
Решаю задачу:
есть справочник элементов, которые могут быть подчинены друг другу.
Но подчинение в иерархии непостоянное, а изменяется с течением времени, и необходимо хранить историю изменения родителя, собирая и отображая дерево по состоянию на дату.

Думаю решить задачу так:
1) справочник "Элементы"
2) периодический регистр сведений, измерение Элемент (СправочникСсылка.Элементы), ресурс ЭлементРодитель того же типа
3) Документ-регистратор, пишет в регистр сведений. На одну дату таким образом в регистре не может быть двух разных родителей у одного элемента.
4) Форма регистра, отображающая данные в иерархическом виде

Вопросы:
1) может в 8.2 есть более типовые механизмы для реализации данной задачи, которые я не знаю?
2) как лучше отобразить СрезПоследних из регистра? Хотелось бы построить запросом иерархию и вывести уже готовую иерархию в ДеревоЗначений, но вроде бы 1С-запросы ее умеют строить только по справочнику. Это так?
Если так, то получается единственный выход - сортировать строки по иерархии рекурсивно вручную, и только потом записывать в дерево? Хотелось бы, чтобы были визуальные компоненты, которые смогут визуально отсортировать по иерархии данные сами, лишь бы указать поля Индекса и Родителя, не сортируя строки запроса. Слишком многого хочу? Такого нет?
1 Чайник Рассела
 
09.01.12
07:08
смотри Версионирование
2 Humandra
 
09.01.12
07:28
(1) Посмотрела. Но ИМХО эта фича скорее для отслеживания косяков и злоупотреблений пользователей. Судя по описанию технологии, обратное получение значения после сериализации - это парсинг XML. Если я правильно поняла.
У меня от структуры дерева зависят финансовые расчеты и многие отчеты, и считать надо более-менее шустро... Так что мне кажется, что не подойдет.
Чтобы попонятнее стала задача - предметка - построение сети объектов энергоснабжения - т.е. иерархия Крутая подстанция - > Подстанция поменьше - > Трансформаторная будочка - Квартира.
Сегодня Трансформаторная будочка питается от Подстанции поменьше №1, а завтра - от Подстанции поменьше №2. Со всеми вытекающими :)
3 Humandra
 
09.01.12
14:56
Так как, придется реализовывать алгоритм построения дерева?
Кстати, может у кого есть готовый написан?
4 Reaper_1c
 
09.01.12
15:08
Родителей хранить в периодическом регистре сведений. СКД позволит строить отчеты по произвольному источнику иерархии.
5 Filin
 
09.01.12
15:14
+4 А Управляемая форма позволит выводит список с иерархией по произвольному реквизиту. Так что особо мудрить не придется.
6 Humandra
 
09.01.12
15:38
(4) ок, я так и подумала
(5) а вот об этом поподробнее! Как? Нужно вывести не в отчет, а на форму.
7 Humandra
 
09.01.12
15:39
(6) Если через ДеревоЗначений - то его вроде как заполнять самому же надо, т.е. выполнять построение дерева из плоской таблицы.
А если что другое - то я пока не в курсе, жду советов :)
8 Filin
 
09.01.12
15:46
Есть такая замечательная штука, как динамический список. Источником данных для него можно сделать либо произвольный запрос, либо твой регистр.
9 Humandra
 
09.01.12
16:00
(8) Т.е. он может быть иерархическим? ок, поняла, попробую.
10 Filin
 
09.01.12
16:11
Может конечно. Сделай форму списка своего справочника "Элементы" и замени стандартный запрос на произвольный, где поле родитель будет брать из твоего регистра на какую-то дату.
11 Humandra
 
09.01.12
16:43
(10) Сделала. А как сделать, чтобы данные отображались иерархически в этом динамическом списке?
12 Humandra
 
09.01.12
16:45
(11) Сделала алиас в запросе - ЭлементыРодитель КАК Родитель итп. По имени не сечет, что данные иерархические. Группировка тут не поможет. Где копать? Я с 8.2 еще 2-й день копаюсь, звиняйте хлопцы :)
13 Humandra
 
09.01.12
16:56
(12) В инете пишут, что надо установить свойство "Иерархический". Где это свойство? Не могу найти :(
14 Filin
 
09.01.12
17:03
Для начала у тебя должен получиться динамический список с двумя колонками - "Элемент" и "Родитель". Потом в настройках УФ открываешь свойства динамического списка, нажимаешь "настроить список" и добавляешь группировку по родителю.
15 Humandra
 
09.01.12
17:08
(14) Это сделала. Но при таком подходе получается так:
Предположим, данные такие:

Элемент Родитель
РП-1   0
ТП-1   РП-1
ТП-2   РП-1
Фидер-1 ТП-1

При группировке по Родителю получается:

Пусто
 - РП-1
РП-1
 - ТП-1
 - ТП-2
ТП-1
 - Фидер-1

А надо:


Пусто
 - РП-1
   - ТП-1
     - Фидер-1
   - ТП-2
16 Humandra
 
09.01.12
17:10
Вот, нашла в инете топик:
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=576540

про свойство Отображение. Но где его искать?
17 Humandra
 
09.01.12
17:11
(16) А, дошло. Это свойство будет существовать только при ОсновнойТаблице - иерархической. Но у меня она обычная
18 Filin
 
09.01.12
17:15
Отображение - это свойство таблицы формы. Оно должно существовать для любого списка.
19 Humandra
 
09.01.12
17:18
(18) *Задумчиво* У меня нет такого свойства :( От чего это может зависеть? Платформа 1С:Предприятие 8.2 (8.2.15.289)
20 Filin
 
09.01.12
17:19
В конфигураторе нет?
21 Humandra
 
09.01.12
17:20
(20) Да. Это может зависеть от вида формы?
22 Torquader
 
09.01.12
17:20
А сложные подключения, когда часть мощности от одной подстанции, а вторая часть - от другой - мы не рассматриваем ? Думаю, что, во-первых, на "веточках" надо бы писать потребляемую мощность, а во-вторых, предусмотреть возможность создания нескольких веточек.
23 Filin
 
09.01.12
17:20
В конфигураторе открываешь свойства списка, который элемент на форме, то-есть в настройках формы в левой части расположен.
24 Humandra
 
09.01.12
17:22
(22) Спасибо за совет! Это пока просто тренировочная конфа, дойдет и до более сложных вещей...
(23) Свойства списка? У меня элемент - Таблица, ее свойства. Это оно или не оно?
25 Torquader
 
09.01.12
17:26
(24) Так если потом всё переделывать, зачем писать иерархию.
Лучше сразу начинать с работы с графом - будет проще понять, что нужно и как его хранить.
26 Filin
 
09.01.12
17:28
(24)Ну да, это оно вроде.
27 Humandra
 
09.01.12
17:28
(23) Вот что у меня видно: http://imageshost.ru/photo/119494/id1229077.html
Я вообще там, где надо? :)))

(25) Хм, может вы и правы. Но все равно эту тему добить надо тоже.
Хотя в общем-то переделывать все равно все будем, когда пойму как работать с 8-й. Ибо по любому по началу будут косяки.
28 Humandra
 
09.01.12
17:32
(25) А в 8-ке есть средства для отображения честных графов? В 7-ке у нас в обычном дереве отображалось все, просто действительно несколькими ветками...
29 Reaper_1c
 
09.01.12
17:35
(28) Вот и в восьмерке деревом. Не доросли еще дин. списки до иерархии произвольного уровня вложенности.
30 Humandra
 
09.01.12
18:40
(27) А можно скрин экрана, где настройка "Отображение" есть?
31 Dethmont
 
09.01.12
18:53
32 Humandra
 
09.01.12
19:03
О! Сенкс! Нашла причину разницы :) У меня была включена кнопка фильтра - "Показывать только важные" :)
33 Humandra
 
09.01.12
19:14
(32) Легче не стало. Сменила тип отображения на Дерево, все равно деревом данные не отображаются :(
Где еще может быть косяк?
34 Humandra
 
09.01.12
19:26
И все же у меня такое ощущение, что Дерево в динамическом списке предназначено таки только для иерархических справочников...
35 Torquader
 
09.01.12
20:39
Дерево на сайте рисуется Ajax-ом через вложенные списки на ура, а сокрытие определённых ветвей делается через css - может ну её эту 1С и писать на нормальном движке, если уж о многопользовательском доступе через Web идёт разговор и не мучить ни себя ни программу ?
36 Humandra
 
09.01.12
20:50
(35) А для этого действительно у нас разработка на Java запланирована, уже даже почти ведется :) Просто решение еще не принято, вот я и узнаю аргументы для разговора с руководством.
Скорее всего будет 2 системы. Одна на 1С - для внутренних расчетов и расчетов с юрлицами, другая на Java - для расчетов с физлицами и публичного веба. И интеграция между ними. 1C просто будет быстрее разработать за небольшие деньги, а Java зато будет гибче.
37 Torquader
 
09.01.12
20:56
(36) Тогда в 1С у вас будет только бухгалтерия, то есть номера договоров, оплаты и услуги по ним, и что и куда подключено - бухгалтеру не так уж и важно.
Так что лучше сразу избавится от "почти" в Java-разработке и радоваться жизни.
38 Humandra
 
09.01.12
21:00
(38) Не выйдет, все же система начислений за электроэнергию юрлицами нужна чем скорее тем лучше. Есть внутренние причины. При всех достоинствах - Java разработка быстрее чем за полгода не справится. Так что расчеты с юриками - точно 1С. А там и технологический баланс нужен и все такое.
39 Humandra
 
09.01.12
21:01
(38) к (37)

(38) Ну а потом уже как 1С УФ себя покажет. Переведем на Java или оставим. Я думаю, все же оставим.
40 Torquader
 
09.01.12
21:02
(38) Можно делать по-частям, то есть сначала возможность что-то посмотреть, а потом всякие мелочи прикручивать - по порядку важности для клиентов.