Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 92
1

Дерево Значений в квадрате

27.04.2016, 17:05. Показов 2523. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ помогите
Есть Дерево Значений (Иерархия) "Наборы"
и Есть Дерево Значений (Иерархия) "Конкуренты"
Нужно перекинуть данные с Наборов в Конкуренты
Пытаюсь таким вот

1C
1
2
3
4
5
6
7
8
9
Дерево  = ДанныеФормыВЗначение(Наборы,Тип("ДеревоЗначений"));
ДеревоКонкурентов  = ДанныеФормыВЗначение(Конкуренты,Тип("ДеревоЗначений"));
Для Каждого СтрокаДерева из Дерево.Строки Цикл
    Если СтрокаДерева.Комплектность = Ложь Тогда 
     СтрокаКонкурент = ДеревоКонкурентов.Строки.Добавить();
     СтрокаКонкурент.Набор = СтрокаДерева.Набор;
    КонецЕсли;
КонецЦикла;
ЗначениеВДанныеФормы(ДеревоКонкурентов,Конкуренты);
Не могу понять как программно перевязать Родителя и сохранить иерархию
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2016, 17:05
Ответы с готовыми решениями:

Как из таблицы значений получить дерево значений?
Есть Таблица значений (Полученная из Запроса). Нужно из ТЗ сделать ДЗ. Родитель и Элемент = это...

Нарисовать квадрат в квадрате, в квадрате и так далее
Прошу помощи, мне подкинули задачку. Необходимо вывести на экран вот это: * * * * * * * * * *...

Вычислить и напечатать таблицу значений функции y=e(в степени)x/х в квадрате, для х=[-3;6] с шагом 1,8.
Помогите решить хоть что нибуть. на паскале 1. Вычислить и напечатать таблицу значений функции...

Найти сумму чисел 1 в квадрате до 10 в квадрате
Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с...

4
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
27.04.2016, 17:14 2
ТрисТан, попробуйте так:
1C
1
2
3
4
ДеревоНаборы = РеквизитФормыВЗначение("Наборы");
ДеревоКонкуренты = РеквизитФормыВЗначение("Конкуренты");
ДеревоКонкуренты = ДеревоНаборы; //создаем копию дерева
ЗначениеВРеквизитФормы(ДеревоКонкуренты,"Конкуренты");
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 92
28.04.2016, 12:13  [ТС] 3
Пробовал нюанс в том что мне нужно только иерархия по полю наборы
При возвращении реквизитов Ошибка
ЗначениеВРеквизитФормы(ДеревоКонкуренты,"Конкуренты");

{Документ.ЭР_КомплексныеЗакупкиКлиентов.Форма.ФормаДокумента.Форма(154)}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)
ЗначениеВРеквизитФормы(ДеревоКонкуренты,"Конкуренты");
по причине:
Недопустимое значение параметра (параметр номер '2')
Недопустимое значение параметра (параметр номер '2')

Добавлено через 5 минут
Там поля разные в таблицах

Добавлено через 2 часа 23 минуты
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Дерево  = ДанныеФормыВЗначение(Наборы,Тип("ДеревоЗначений"));
    ДеревоКонкурентов  = ДанныеФормыВЗначение(Конкуренты,Тип("ДеревоЗначений"));
    Для Каждого СтрокаДерева из Дерево.Строки Цикл
        Если СтрокаДерева.Комплектность = Ложь Тогда
            СтрокаКонкурент = ДеревоКонкурентов.Строки.Добавить();
            СтрокаКонкурент.Набор = СтрокаДерева.Набор;
            Для Каждого Строка из СтрокаДерева.Строки Цикл
                Если Строка.Комплектность = Ложь Тогда
                    СтрокаКонкурент = ДеревоКонкурентов.Строки.Добавить();
                    СтрокаКонкурент.Набор = Строка.Набор;
                    Строка.Набор.Владелец = Строка.Владелец; 
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
    
    ЗначениеВДанныеФормы(ДеревоКонкурентов,Конкуренты);
Отрабатывает нормально только вот иерархия не сохраняется что делать ?
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
28.04.2016, 12:19 4
ТрисТан, тогда используем рекурсию:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
&НаКлиенте
Процедура Команда1(Команда)
    ИзОдногоДереваВДругое();
КонецПроцедуры
 
&НаСервере
Процедура ИзОдногоДереваВДругое()
    ДеревоНаборы = РеквизитФормыВЗначение("Наборы");
    ДеревоКонкуренты = РеквизитФормыВЗначение("Конкуренты");
    
    ЗаполнениеДерева(ДеревоНаборы, ДеревоКонкуренты);
    
    ЗначениеВРеквизитФормы(ДеревоКонкуренты,"Конкуренты");
КонецПроцедуры
 
&НаСервере
Процедура ЗаполнениеДерева(ДеревоНаборы, ДеревоКонкуренты)
    Для Каждого СтрокаДерева Из ДеревоНаборы.Строки Цикл
        Если СтрокаДерева.Комплектность = Ложь Тогда
            НоваяСтрока = ДеревоКонкуренты.Строки.Добавить();
            НоваяСтрока.Набор = СтрокаДерева.Набор;
            ЗаполнениеДерева(СтрокаДерева, НоваяСтрока);
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 92
28.04.2016, 15:54  [ТС] 5
Уже сделал спасибо тему можно считать закрытой
0
28.04.2016, 15:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2016, 15:54
Помогаю со студенческими работами здесь

Найти сумму от N в квадрате, до 2N в квадрате
Дано N(>0) Найти сумму sqr(N)+sqr(N+1)+sqr(N+2)+...+sqr(2*N)

Дерево значений
Здравствуйте подскажите пожалуйста как в 1с предприятие 8.2. имеется документ Заявления, у него...

Очистить дерево значений
Доброе утро! Как очистить элемент формы ДеревоЗначений? У меня оно так и называется - Дерево. Я...

Дерево значений из запроса
как создать дерево значений, полноценное дерево значений из результата запроса. можно ли это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru