Имя: Пароль:
1C
 
Как приходится создавать дерево по результатам запроса com из другой базы :)
0 Gossar1C
 
02.03.15
17:44
Для Каждого Элем Из Результат Цикл
                Если Не ЗначениеЗаполнено(Элем.Родитель.Наименование) Тогда
                    НоваяСтр1 = Дерево.Строки.Добавить();
                    НоваяСтр1.Наименование = Элем.Наименование;
                    НоваяСтр1.Картинка = БиблиотекаКартинок.Папка;
                Иначе
                    Если НоваяСтр1.Наименование = Элем.Родитель.Наименование Тогда
                        НоваяСтр2= НоваяСтр1.Строки.Добавить();
                        НоваяСтр2.Наименование = Элем.Наименование;
                        НоваяСтр2.Картинка = БиблиотекаКартинок.Папка;
                    Иначе
                        Если НоваяСтр2.Наименование = Элем.Родитель.Наименование Тогда
                            НоваяСтр3 = НоваяСтр2.Строки.Добавить();
                            НоваяСтр3.Наименование = Элем.Наименование;
                            НоваяСтр3.Картинка = БиблиотекаКартинок.Папка;
                        Иначе
                            Если НоваяСтр3.Наименование = Элем.Родитель.Наименование Тогда
                                НоваяСтр4 = НоваяСтр3.Строки.Добавить();
                                НоваяСтр4.Наименование = Элем.Наименование;
                                НоваяСтр4.Картинка = БиблиотекаКартинок.Папка;
                            Иначе
                                Если НоваяСтр4.Наименование = Элем.Родитель.Наименование Тогда
                                    НоваяСтр5 = НоваяСтр4.Строки.Добавить();
                                    НоваяСтр5.Наименование = Элем.Наименование;
                                    НоваяСтр5.Картинка = БиблиотекаКартинок.Папка;
                                Иначе
                                    Если НоваяСтр5.Наименование = Элем.Родитель.Наименование Тогда
                                        НоваяСтр6 = НоваяСтр5.Строки.Добавить();
                                        НоваяСтр6.Наименование = Элем.Наименование;
                                        НоваяСтр6.Картинка = БиблиотекаКартинок.Папка;
                                    Иначе
                                        Если НоваяСтр6.Наименование = Элем.Родитель.Наименование Тогда
                                            НоваяСтр7 = НоваяСтр6.Строки.Добавить();
                                            НоваяСтр7.Наименование = Элем.Наименование;
                                            НоваяСтр7.Картинка = БиблиотекаКартинок.Папка;
                                        Иначе
                                            Если НоваяСтр7.Наименование = Элем.Родитель.Наименование Тогда
                                                НоваяСтр8 = НоваяСтр7.Строки.Добавить();
                                                НоваяСтр8.Наименование = Элем.Наименование;
                                                НоваяСтр8.Картинка = БиблиотекаКартинок.Папка;
                                            Иначе
                                                Если НоваяСтр8.Наименование = Элем.Родитель.Наименование Тогда
                                                    НоваяСтр9 = НоваяСтр8.Строки.Добавить();
                                                    НоваяСтр9.Наименование = Элем.Наименование;
                                                    НоваяСтр9.Картинка = БиблиотекаКартинок.Папка;
                                                Иначе
                                                    НоваяСтр10 = НоваяСтр9.Строки.Добавить();
                                                    НоваяСтр10.Наименование = Элем.Наименование;
                                                    НоваяСтр10.Картинка = БиблиотекаКартинок.Папка;
                                                КонецЕсли;
                                            КонецЕсли;
                                        КонецЕсли;
                                    КонецЕсли;
                                КонецЕсли;
                            КонецЕсли;
                        КонецЕсли;
                    КонецЕсли;
                КонецЕсли;    
            КонецЦикла;



Есть методы попроще? :)
1 Gossar1C
 
02.03.15
17:46
это иерархия номенклатуры соответственно взял максимум 10 уровней) да я псих ;)
2 D_E_S_131
 
02.03.15
17:47
(1) И еще ты не знаешь про рекурсивный вызов процедур и функций.
3 Gossar1C
 
02.03.15
17:48
(2) к сожалению, если можно пару полезных статеек бы :)
4 ДенисЧ
 
02.03.15
17:49
(3) Доналд Кнут, "Искусство программирования", том 3
5 Timekiller
 
02.03.15
17:53
(0) Почему нельзя Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией)?
6 ДенисЧ
 
02.03.15
17:54
(5) А ты уверен, что у него в дереве только числа, строки и даты?
7 Gossar1C
 
02.03.15
17:56
(6) можно выгрузить по обходу, но как я передам результат из модуля? в хранилище com пихать нельзя
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший