|
Помогите разобраться с ДеревоЗначений(сохранить) | ☑ | ||
---|---|---|---|---|
0
Razzle Kay
10.04.18
✎
06:09
|
На форме документа ТабличноеПоле с типом ДеревоЗначений
дерево заполняется, жму записать, а дерево не сохраняется подскажите, как правильно сделать ? |
|||
1
Mankubus
10.04.18
✎
06:13
|
(0) нужно его записать в табличную часть документа
|
|||
2
Razzle Kay
10.04.18
✎
06:17
|
(1) Ну я и прошу подсказать, как это сделать )
|
|||
3
Mankubus
10.04.18
✎
06:21
|
(2) 1. Обходишь дерево в цикле
2. Заполняешь ТЧ 3. Профит Код за тебя писать я не буду |
|||
4
Razzle Kay
10.04.18
✎
06:22
|
(3) а дерево обходится рекурсией ?)
|
|||
5
Razzle Kay
10.04.18
✎
06:41
|
(3) за меня не надо код писать, просто пример можно ?
|
|||
6
catena
10.04.18
✎
06:44
|
(5) Процедура ОбойтиВсеСтроки(стр)
Для каждого стрДочь из стр.Строки() Цикл ОбойтиВсеСтроки(стрДочь) КонецЦикла; КонецПроцедуры |
|||
7
Razzle Kay
10.04.18
✎
06:45
|
(6) я не про рекурсию, а про сохранить в тч
|
|||
8
Razzle Kay
10.04.18
✎
06:56
|
(6) не пойму, как сохранять в ТЧ дерево, а не как обойти
|
|||
9
hhhh
10.04.18
✎
06:59
|
(8) Для каждого стрДочь из стр.Строки() Цикл
НоваяСтрокаТЧ = ТЧ.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрокаТЧ, СтрДочь); ОбойтиВсеСтроки(стрДочь) КонецЦикла; |
|||
10
Razzle Kay
10.04.18
✎
07:02
|
(9) ПриЗаписи ?
|
|||
11
hhhh
10.04.18
✎
07:09
|
(10) Блин, ну что за люди? Ну миллион раз уже говорено, что процедура ПриЗаписи вызывается уже после реальной записи в базу.
В ПередЗаписью пишите |
|||
12
Razzle Kay
10.04.18
✎
07:10
|
Переменная не определена (Стр)
ОбойтиВсеСтроки(<<?>>Стр) (Проверка: Толстый клиент (обычное приложение)) |
|||
13
Razzle Kay
10.04.18
✎
07:24
|
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ОбойтиВсеСтроки(Стр) КонецПроцедуры |
|||
14
catena
10.04.18
✎
07:29
|
(13)Таки вы сказали, что код вам не нужен. Вы желаете, чтобы вам алгоритм рассказали или сами местами все-таки подумаете?
|
|||
15
Razzle Kay
10.04.18
✎
08:05
|
Процедура ОбойтиВсеСтроки(РезультатДерево)
Для каждого стрДочь из РезультатДерево.Строки Цикл НоваяСтрокаТЧ = Товары.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрокаТЧ, СтрДочь); ОбойтиВсеСтроки(стрДочь) КонецЦикла; КонецПроцедуры Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) ОбойтиВсеСтроки(РезультатДерево) КонецПроцедуры не сохраняет |
|||
16
hhhh
10.04.18
✎
08:17
|
(15) всё-таки
Объект.Товары.Добавить(); вы хотя бы немного почитайте про программирование в 1с. и видео полно в интернете. |
|||
17
Razzle Kay
10.04.18
✎
08:32
|
(16) всё равно не сохраняет
|
|||
18
Ёпрст
10.04.18
✎
08:58
|
(17) и правильно делает, код же бредовый..и задача странная
|
|||
19
Сияющий в темноте
10.04.18
✎
09:03
|
В дереве есть иерархия,нужно ее сохранить в линейную таблицу,а для этого в таблицу нужно добавить колонку,в которой будет сохраняться номер строки родительского элемента,к примеру,или нужно вводить свой идентификатор,чтобы соотносить родителя с детьми
свой идентификатор не будет бояться изменения порядка строк |
|||
20
Mankubus
10.04.18
✎
09:14
|
(15) >>не сохраняет
как ты это понял? потом при открытии еще нужно из таблицы в дерево заполнить. само оно не заполнится |
|||
21
catena
10.04.18
✎
10:15
|
(19)А если дерево строится на иерархии одного из реквизитов?
|
|||
22
Веселый собака
10.04.18
✎
10:24
|
бгг.
(0) сохрани в хранилище значения и не парься. Правда, чтобы прочитать, надо будет его считывать, в запросе не пройдешься. |
|||
23
Вафель
10.04.18
✎
10:49
|
если в дереве всего пару уровней, то можно и без рекурсии
|
|||
24
Franchiser
гуру
10.04.18
✎
11:03
|
В форме включаешь сохранение настроек, и в обработке указываешь сохранение в хранилище настроек, на форму кидаешь реквизит Дерево или же создаёшь реквизит обработки Дерево и так же кидаешь на форму, указываешь для него сохранение.
|
|||
25
Franchiser
гуру
10.04.18
✎
11:04
|
Ну и галочку "автоматическое сохранение при закрытии"
|
|||
26
Веселый собака
10.04.18
✎
11:11
|
(25) А теперь запросом выберите мне значения.. и побыстрее.
|
|||
27
Franchiser
гуру
10.04.18
✎
11:49
|
(26) зачем?
|
|||
28
catena
10.04.18
✎
11:52
|
(27)Наверное затем, что у ТС документ, а не обработка.
|
|||
29
Razzle Kay
10.04.18
✎
11:52
|
(20) а можно поподробнее ?
|
|||
30
catena
10.04.18
✎
11:58
|
(29)Это как писать, только наоборот - читать
|
|||
31
Razzle Kay
10.04.18
✎
12:23
|
(30) ну я имею ввиду как из таблицы в дерево заполнить
|
|||
32
Franchiser
гуру
10.04.18
✎
12:40
|
Сколько уровней в дереве?
|
|||
33
Franchiser
гуру
10.04.18
✎
12:41
|
Можно сделать несколько тс, которые связываются по идентификатору, примеры есть в типовых
|
|||
34
Franchiser
гуру
10.04.18
✎
12:42
|
(31) например, рекурсивным обходом тч
|
|||
35
Razzle Kay
10.04.18
✎
12:43
|
(34) сейччас я обхожу дерево, чтобы сохранить дерево в тч, теперь мне надо обходить, чтобы из тч в дерево сохранить ??????
Процедура ОбойтиВсеСтроки(РезультатДерево) Для каждого стрДочь из РезультатДерево.Строки Цикл НоваяСтрокаТЧ = ДокументОбъект.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрокаТЧ, СтрДочь); ОбойтиВсеСтроки(стрДочь) КонецЦикла; КонецПроцедуры Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) ОбойтиВсеСтроки(РезультатДерево) КонецПроцедуры |
|||
36
Razzle Kay
10.04.18
✎
12:44
|
(32) уровней разное кол-во в разных доках
|
|||
37
Малыш Джон
10.04.18
✎
12:48
|
Я конечно нисколько не хочу прерывать это увлекательное действо...
но что мешает завести реквизит документа с типом ДеревоЗначений и сохранять дерево таки там? |
|||
38
catena
10.04.18
✎
12:49
|
(35)Сделай запрос к ТЧ с нужными группировками и выгружай без обхода.
|
|||
39
Razzle Kay
10.04.18
✎
12:51
|
(38) я не совсем понимаю, я сделал дерево из-за иерархии, меня всё устраивает, только не пойму, как записывать дерево в документе
|
|||
40
catena
10.04.18
✎
12:53
|
(37)Я вот щас дико извиняюсь, а что, сейчас уже и такое реализовано?
|
|||
41
Franchiser
гуру
10.04.18
✎
13:07
|
(40) тип хранилище значения можно
|
|||
42
Малыш Джон
10.04.18
✎
13:08
|
(40) хммм... был уверен, что уже таки да... странно...
|
|||
43
catena
10.04.18
✎
13:09
|
(41)Хранилище ссылочную целостность не поддерживает, к сожалению.
|
|||
44
Razzle Kay
10.04.18
✎
13:10
|
жесть, не могу понять и всё
|
|||
45
catena
10.04.18
✎
13:11
|
(44)Забей, не твое это.
|
|||
46
Fish
10.04.18
✎
13:13
|
(44) Что именно непонятно?
|
|||
47
Razzle Kay
10.04.18
✎
13:26
|
(46) ну мне сказали нужно сохранить дерево в тч обойди рекурсией, я сделал, как показали
а что теперь делать не понятно как я понял нужно теперь обойти тч рекурсией и сохранить в дереве что ли ?? |
|||
48
hhhh
10.04.18
✎
13:44
|
(47) ну как ты понял, что оно не сохранилось? Внутренний толчок в мозг был? Или сон приснился? Типа у тебя не сохранилось?
|
|||
49
Franchiser
гуру
10.04.18
✎
13:47
|
Тч у тебя уже есть сохранённое дерево, обратно чтобы восстановить дерево рекурсия не нужна, просто обходишь ТЧ и заполняешь реквизит Дерево на форме, сохранять его не надо.
|
|||
50
Razzle Kay
10.04.18
✎
13:54
|
(49) но у меня же изначально в документе дерево моё заполнено данными из запроса
|
|||
51
Franchiser
гуру
10.04.18
✎
13:59
|
(50) что есть дерево у тебя, это реквизит формы? Какой там путь?
|
|||
52
hhhh
10.04.18
✎
14:09
|
(50) ну значит запрос этот надо было изучить сначала. Какие данные он грузит в дерево.
|
|||
53
Razzle Kay
10.04.18
✎
14:12
|
(52) в смысле ?
|
|||
54
Razzle Kay
10.04.18
✎
14:14
|
||||
55
Franchiser
гуру
10.04.18
✎
14:16
|
(54) ну если это реквизит формы, что мешает в процедуре причтениинасервере() выполнить его заполнение из ТЧ документа?
|
|||
56
Razzle Kay
10.04.18
✎
14:18
|
(55) опыт)
|
|||
57
Franchiser
гуру
10.04.18
✎
14:21
|
В ТЧ тебе нужны все колонки из дерева + Номер строки + Родительский номер строки. По этим данным восстановить дерево не составляет труда.
|
|||
58
Franchiser
гуру
10.04.18
✎
14:23
|
можно еще уровень в тч записать, дальше дело техники
|
|||
59
Franchiser
гуру
10.04.18
✎
14:29
|
||||
60
Radkt
10.04.18
✎
15:03
|
на инфостарте есть решение готовое. Ищется как Дерево значений в ТЗ или ТЧ
|
|||
61
MrCoffin
10.04.18
✎
15:12
|
(6) Какой-то сексистский код.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |