![]() |
|
Структура изделия | ☑ | ||
---|---|---|---|---|
0
renowka
15.07.11
✎
15:46
|
Привет
Из внешней базы данных нужно получить структуру изделия и построить дерево в 1с. Есть запрос, который умеет возвращать состав изделия. Использовав его в рекурсивной функции можно пройтись по структуре изделия. А как теперь эту структуру вывести в деревозначений? Пока делаю вот так. но если полуфабрикат входит в несколько других полуфабрикатов, то его состав будет задваиваться, так как используется Поиск уже записанного элемента. Процедура ВыполнитьЗапрос(Номенклатура) Экспорт Состояние("Выполнение запроса на SQL сервере"); //Выборка - результат выполнения запроса во внешней бд Выборка.MoveFirst(); Пока Выборка.EOF() <> True Цикл Гп = Выборка.Fields("Izd").Value; Ном = Выборка.Fields("Mat").Value; Если СтруктураИзделия.Строки.Найти(Гп,"Изделие", Истина) = Неопределено Тогда //Этот элемент добавили когда добавляли родителя НовСтр = СтруктураИзделия.Строки.Добавить(); НовСтр.Изделие = Гп; Иначе СтрокаКуда = СтруктураИзделия.Строки.Найти(Гп, "Изделие", истина); Если СтрокаКуда <> Неопределено Тогда НовСтр = СтрокаКуда.Строки.Добавить(); НовСтр.Изделие = Ном; КонецЕсли; КонецЕсли; Если Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Ном).ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоКоду("000000005") Тогда ВыполнитьЗапрос(Ном); КонецЕсли; СтрокаКуда = СтруктураИзделия.Строки.Найти(Гп, "Изделие", истина); Выборка.MoveNext(); КонецЦикла; КонецПроцедуры |
|||
1
renowka
18.07.11
✎
09:59
|
т.е у одноко полуфабрика состав будет задвоенный, а у второго такого-же - пустой
|
|||
2
renowka
18.07.11
✎
13:33
|
кто-нибудь работал с деревьями?
|
|||
3
renowka
18.07.11
✎
16:49
|
Готовая продукция
-материал1 -материал2 -Полуфабрикат1 ---Полуфабрикат3 ------материал3 -Полуфабрикат2 ----Полуфабрикат3 ------материал3 Если при обходе дерева пользоваться функцией строк Найти, то материал3 запишется дважды в Полуфабрикате3. Как этого можно избежать? |
|||
4
palpetrovich
18.07.11
✎
17:05
|
выгрузи в ТЗ, ТЗ - в запрос, запрос - в дерево
зы: сегодня почти такая-же ветка была |
|||
5
palpetrovich
18.07.11
✎
17:06
|
||||
6
renowka
18.07.11
✎
23:10
|
Даже если заполнить таблицу значений, материалы будут задваиваться
|
|||
7
renowka
19.07.11
✎
10:24
|
up
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |